使用acDialog
WindowMode参数,您的调用代码在窗体关闭OpenForm
之前不应继续。
OpenForm
发生在从您的代码调用的另一个过程中应该没有关系。在此示例中,运行 时func1
,MsgBox
直到窗体关闭才显示 。
Public Function func1()
Call func2
MsgBox "form closed"
End Function
Public Function func2()
'DoCmd.OpenForm "Form3", , , , , acDialog
DoCmd.OpenForm "Form3", WindowMode:=acDialog
End Function
请注意,只要表单尚未打开,代码就会按照描述的方式运行。如果它在设计视图中打开,则调用OpenForm
仅将其切换到表单视图而不应用acDialog
. 如果在表单视图中打开,则没有任何反应,这意味着acDialog
也没有应用。
如果您想保证acDialog
已应用,请确保在调用之前关闭表单OpenForm
...
Public Function func2()
Const cstrForm As String = "Form3"
If CurrentProject.AllForms(cstrForm).IsLoaded Then
DoCmd.Close acForm, cstrForm
End If
'DoCmd.OpenForm cstrForm, , , , , acDialog
DoCmd.OpenForm cstrForm, WindowMode:=acDialog
End Function