acDialog
and的一个小缺点.PopUp
是表单作为访问主窗口之外的窗口打开。这就是为什么我更喜欢尽可能使用.Modal
。
如果您只想阻止其他打开的表单,您可以Me.Modal = True
在表单的打开事件中临时做一个。
缺点.Modal
是不会等待。DoCmd.OpenForm , , , , , acDialog
在表单关闭之前不会返回。这种同步调用有时会非常有用。
要在访问主窗口中进行类似acDialog/PopUp
调用,您可以在表单中使用一个小技巧:
Private bFormOpen As Boolean
Public Sub ShowModal()
SetFocus ' Make the form visible
On Error GoTo ForcedClose
bFormOpen = True
Do While bFormOpen ' Wait until the form is closed
Sleep 50
DoEvents
Loop
ForcedClose:
Exit Sub
End Sub
Private Sub Form_Unload(Cancel As Integer)
bFormOpen = False
End Sub
您可以像这样实例化您的表单:
Dim f As New Form_Name
f.Modal = True
Call f.ShowModal
Set f = Nothing