从另一个窗体调用子窗体例程
Calling SubForm routine from another Form
我有一个包含子窗体 Y 的窗体 X。有一个在 Y 窗体中定义的例程。我需要在此表单 Z 的关闭事件中从另一个表单 Z(每当用户单击子表单 Y 上的某个按钮时打开)调用该例程。表单 X 已打开。到目前为止我尝试过的方法不起作用:
// 形式 Z
Call Forms("X").SomeRoutine
Call Forms("Y").SomeRoutine
但每次我都收到运行时错误 2450,表示 Access 无法找到表单。
它是 Forms!X!Y.Form.SomeRoutine
- 您必须明确说明表单
我的 X 表单包含一个名为 Child1 的子表单控件。 Y 是作为子表单包含在 Child1.
中的表单
表格 Y 包括此 Public
VBA 程序:
Public Sub SomeRoutine()
Debug.Print "this SomeRoutine in form " & Me.Name
End Sub
在窗体视图中打开父窗体 (X) 后,我可以转到立即 window (Ctrl +g) 并像这样调用 SomeRoutine ...
Forms!X!Child1.Form.SomeRoutine
this SomeRoutine in form Y
关键是我使用了包含Y子窗体的子窗体control的名称。 (注意字母 Y
甚至不存在于 Forms!X!Child1.Form.SomeRoutine
中)
子窗体控件名称可以与其包含的窗体名称相同...但不必相同。检查你的以确保你使用控件的名称。
你不能加好友吗?像这样
Friend Sub cmd_Click()
'code
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.cmd_Click
End Sub
我有一个包含子窗体 Y 的窗体 X。有一个在 Y 窗体中定义的例程。我需要在此表单 Z 的关闭事件中从另一个表单 Z(每当用户单击子表单 Y 上的某个按钮时打开)调用该例程。表单 X 已打开。到目前为止我尝试过的方法不起作用:
// 形式 Z
Call Forms("X").SomeRoutine
Call Forms("Y").SomeRoutine
但每次我都收到运行时错误 2450,表示 Access 无法找到表单。
它是 Forms!X!Y.Form.SomeRoutine
- 您必须明确说明表单
我的 X 表单包含一个名为 Child1 的子表单控件。 Y 是作为子表单包含在 Child1.
中的表单表格 Y 包括此 Public
VBA 程序:
Public Sub SomeRoutine()
Debug.Print "this SomeRoutine in form " & Me.Name
End Sub
在窗体视图中打开父窗体 (X) 后,我可以转到立即 window (Ctrl +g) 并像这样调用 SomeRoutine ...
Forms!X!Child1.Form.SomeRoutine
this SomeRoutine in form Y
关键是我使用了包含Y子窗体的子窗体control的名称。 (注意字母 Y
甚至不存在于 Forms!X!Child1.Form.SomeRoutine
中)
子窗体控件名称可以与其包含的窗体名称相同...但不必相同。检查你的以确保你使用控件的名称。
你不能加好友吗?像这样
Friend Sub cmd_Click()
'code
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.cmd_Click
End Sub