Ms access 最小化MS访问窗口并保留弹出窗体

Ms access 最小化MS访问窗口并保留弹出窗体,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我有下面的代码,以尽量减少MS访问,但弹出形式消失的背景 Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hWnd As Long, _

我有下面的代码,以尽量减少MS访问,但弹出形式消失的背景

Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

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

Function fSetAccessWindow(nCmdShow As Long)

Dim loX As Long
Dim loForm As Form
On Error Resume Next
Set loForm = Screen.ActiveForm

If Err <> 0 Then
    loX = apiShowWindow(hWndAccessApp, nCmdShow)
    Err.Clear
End If

If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
    MsgBox "Cannot minimize Access with " _
    & (loForm.Caption + " ") _
    & "form on screen"
ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then
    MsgBox "Cannot hide Access with " _
    & (loForm.Caption + " ") _
    & "form on screen"
Else
    loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
fSetAccessWindow = (loX <> 0)

End Function
Global Const SW_HIDE=0
全局常数SW_SHOWNORMAL=1
全局常数SW_=2
全局常数SW_showmized=3
私有声明函数apiShowWindow库“user32”_
别名“ShowWindow”(ByVal hWnd,长度为_
ByVal nCmdShow As Long)As Long
函数fSetAccessWindow(nCmdShow As Long)
暗淡的loX和长的loX一样
形如形
出错时继续下一步
设置loForm=Screen.ActiveForm
如果错误为0,则
loX=apiShowWindow(hWndAccessApp、nCmdShow)
呃,明白了
如果结束
如果nCmdShow=SW_show最小化且loForm.Modal=True,则
MsgBox“无法使用最小化访问”_
&(loForm.Caption+“”)_
&“屏幕上的表单”
ElseIf nCmdShow=SW_HIDE And loForm.PopUp则为True
MsgBox“无法隐藏对的访问”_
&(loForm.Caption+“”)_
&“屏幕上的表单”
其他的
loX=apiShowWindow(hWndAccessApp、nCmdShow)
如果结束
fSetAccessWindow=(loX 0)
端函数

有人知道我如何离开弹出式窗体并最小化访问背景吗?

我知道的唯一方法是将
调用fSetAccessWindow(SW\u showmimized)
放入窗体加载事件中。这对我来说是可靠的

诀窍是在之后使用
Form.SetFocus cmd
。由于主屏幕将
SetFocus cmd
after最小化,因此将保持窗体正常运行:

Private Sub cmdMinimize_Click()
        Call fSetAccessWindow(SW_SHOWMINIMIZED)
        Form.SetFocus
End Sub

您在项目中从何处调用该函数?从一个模块中调用,因此从按钮单击(调用fSetAccessWindow(SW_)