Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在加载新表单时对表单运行vba代码,但仅当以前的表单具有特定名称时才运行_Ms Access_Vba_Form Load - Fatal编程技术网

Ms access 在加载新表单时对表单运行vba代码,但仅当以前的表单具有特定名称时才运行

Ms access 在加载新表单时对表单运行vba代码,但仅当以前的表单具有特定名称时才运行,ms-access,vba,form-load,Ms Access,Vba,Form Load,我想有一个按钮来打开一个表单,然后在该表单上运行VBA代码。所以要么使用Form_加载,要么使用中间模块。有人知道怎么做吗 谢谢使用 第一种形式: Set Prev = Screen.ActiveForm DoCmd.OpenForm“SecondForm”,OpenArgs:=Me.Name 第二种形式: Dim Prev As Form Private子表单_Load() 如果Me.OpenArgs=“FirstForm”,则 “东西 如果结束 端接头 使用 第一种形式: Set Pr

我想有一个按钮来打开一个表单,然后在该表单上运行VBA代码。所以要么使用Form_加载,要么使用中间模块。有人知道怎么做吗

谢谢使用

第一种形式:

Set Prev = Screen.ActiveForm
DoCmd.OpenForm“SecondForm”,OpenArgs:=Me.Name
第二种形式:

Dim Prev As Form
Private子表单_Load()
如果Me.OpenArgs=“FirstForm”,则
“东西
如果结束
端接头
使用

第一种形式:

Set Prev = Screen.ActiveForm
DoCmd.OpenForm“SecondForm”,OpenArgs:=Me.Name
第二种形式:

Dim Prev As Form
Private子表单_Load()
如果Me.OpenArgs=“FirstForm”,则
“东西
如果结束
端接头

以第二种形式声明模块级变量:

Dim Prev As Form
在第二个表单的加载事件中(这将设置对第一个表单的引用):

在关闭事件中:

Set Prev = nothing
现在,您可以使用以下选项检查上一个表单的名称:

If Prev.Name = "..." Then
    ... your actions
End If

此外,您可以通过这种方式检查第一个/上一个表单中的任何属性或字段。Prev现在的行为和我一样。

以第二种形式声明模块级变量:

Dim Prev As Form
在第二个表单的加载事件中(这将设置对第一个表单的引用):

在关闭事件中:

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的回答对新表单进行参数化。

假设可以从应用程序中的多个表单打开新表单

一次可以打开多个呼叫表单吗

如果没有,请使用以下选项:

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的回答,将新表单参数化