我有一个包含子表单Y的表单X.有一个以Y表单定义的例程。我需要在关闭此表单Z的事件时从另一个表单Z(在用户单击子表单Y上的某个按钮时打开)调用该例程。表单X已打开。我到目前为止所尝试的是不起作用:
//表格Z
Call Forms("X").SomeRoutine
Call Forms("Y").SomeRoutine
但每次我得到RunTime Error 2450时,Access都找不到表单。
答案 0 :(得分:2)
我的 X 表单包含一个名为 Child1 的子表单控件。 Y 是 Child1 中作为子表单包含的表单。
表单 Y 包含此Public
VBA程序:
Public Sub SomeRoutine()
Debug.Print "this SomeRoutine in form " & Me.Name
End Sub
在窗体视图中打开父窗体( X ),我可以转到立即窗口( Ctrl + g )并调用像这样的 SomeRoutine ......
Forms!X!Child1.Form.SomeRoutine
this SomeRoutine in form Y
关键是我使用了包含 Y 子表单的子表单 control 的名称。 (请注意Y
)
Forms!X!Child1.Form.SomeRoutine
甚至不存在
子窗体控件名称可能与它包含的窗体名称相同......但它不必相同。检查你的,以确保你使用控件的名称。
答案 1 :(得分:1)
它的Forms!X!Y.Form.SomeRoutine
- 你必须明确地处理表格
答案 2 :(得分:0)
不能只是朋友吗?像这样
Friend Sub cmd_Click()
'code
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.cmd_Click
End Sub