显示没有默认Access框架的Access GUI

Jus*_*tin 3 forms user-interface ms-access vba

有没有办法告诉访问只显示表单/报告而不显示访问窗口本身(访问表单填充在其中的"shell"窗口).

Alb*_*lal 13

实际上,这里的大部分帖子都相当陈旧,并且基于较旧版本的Access.自2007年以来,您只需点击几下鼠标和一行代码即可隐藏界面.在文件 - 选项 - >当前数据库下

选择选项卡式文档,选择隐藏文档选项卡.取消选中显示导航窗格以及是否要显示状态栏.

然后在加载的启动表单中放置这一行代码:

DoCmd.ShowToolbar "Ribbon", acToolbarNo
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述 因此,除非人们希望增加世界贫困,否则不需要所有这些带有API,代码破解等的疯狂解决方案.

只需点击几下鼠标,就可以在最后3个版本(2007年以后)中隐藏Access UI.


JP *_*oto 8

是的你可以.请参阅基础知识中的 "设置启动选项" 以构建基于Microsoft Office Access 2003运行时的解决方案.

您可以使用"启动"对话框指定以下内容:

  • 是否应在启动时显示数据库窗口.


Phi*_*ier 5

为此,我利用一些聪明人编写的代码并在网上提供(我认为它最初是由Terry Kreft编写的?)并引用了一些Windows API.

我有这个第一个:

Declare Function apiShowWindow Lib "user32" _
          Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long

Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
Run Code Online (Sandbox Code Playgroud)

然后

Function fSetAccessWindow(nCmdShow As Long)
      'Usage Examples
      'Maximize window:
      '       ?fSetAccessWindow(SW_SHOWMAXIMIZED)
      'Minimize window:
      '       ?fSetAccessWindow(SW_SHOWMINIMIZED)
      'Hide window:
      '       ?fSetAccessWindow(SW_HIDE)
      'Normal window:
      '       ?fSetAccessWindow(SW_SHOWNORMAL) 

      Dim loX  As Long
      Dim loForm As Form

   On Error Resume Next
   Set loForm = Screen.ActiveForm
   If Err <> 0 Then 'no Activeform
       If nCmdShow = SW_HIDE Then
           MsgBox "Cannot hide Access unless a form is on screen"
       Else
           loX = apiShowWindow(hWndAccessApp, nCmdShow)
           Err.Clear
       End If
   Else
       If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
           MsgBox "Cannot minimize Access with this form on screen:" & (loForm.Caption + " ")
       Else
           If nCmdShow = SW_HIDE And loForm.PopUp <> True Then
               MsgBox "Cannot hide Access with this form on screen:" & (loForm.Caption + " ")
           Else
               loX = apiShowWindow(hWndAccessApp, nCmdShow)
           End If
       End If
   End If
   fSetAccessWindow = (loX <> 0)

End Function
Run Code Online (Sandbox Code Playgroud)

启动程序时,我会以这种方式调用函数

'function is called by autoexec Macro'
...
fSetAccessWindow (SW_HIDE)
...
DoCmd.OpenForm my_Startup_Form
Forms(my_Startup_Form).Controls(my_Active_Control).SetFocus
Run Code Online (Sandbox Code Playgroud)

屏幕会"闪烁"一点,主窗口会短暂出现,然后消失.然后我的焦点窗口将单独显示.

  • 当您使用其他人的代码时,您确实应该包含源代码的URL.其URL是:http://www.mvps.org/access/api/api0019.htm,通过Google搜索功能的名称很容易找到. (2认同)