我想要一个按钮来打开一个表单,然后在该表单上运行 VBA 代码。所以要么使用 Form_Load 要么使用中间模块。有谁知道如何做到这一点?
谢谢
使用OpenArgs
.
第一种形式:
DoCmd.OpenForm "SecondForm", OpenArgs:=Me.Name
第二种形式:
Private Sub Form_Load()
If Me.OpenArgs = "FirstForm" Then
' Stuff
End If
End Sub
以第二种形式声明一个模块级变量:
Dim Prev As Form
在第二种形式的 On Load 事件中(这设置了对第一种形式的引用):
Set Prev = Screen.ActiveForm
在关闭事件中:
Set Prev = nothing
现在您可以使用以下命令检查先前表单的名称:
If Prev.Name = "..." Then
... your actions
End If
此外,您可以通过这种方式检查第一个/上一个表单中的任何属性或字段。Prev 现在表现得像我一样。
假设从您的应用程序中的多个表单中打开新表单;
是否可以同时打开多个呼叫表格?
如果没有,请使用:
Private Sub Form_Load()
If isLoaded("Form1") then
Form1_InstructionSet
ElseIf isLoaded("Form2") then
Form2_InstructionSet
...
End If
End Sub
Private Sub Form1_InstructionSet
...
End Sub
etc.
如果可以同时打开多个调用表单,则应按照上面@Andre 的回答对新表单进行参数化。