从另一个表单调用SubForm例程

时间:2015-06-26 11:35:45

标签: forms vba ms-access access-vba ms-access-2007

我有一个包含子表单Y的表单X.有一个以Y表单定义的例程。我需要在关闭此表单Z的事件时从另一个表单Z(在用户单击子表单Y上的某个按钮时打开)调用该例程。表单X已打开。我到目前为止所尝试的是不起作用:

//表格Z

Call Forms("X").SomeRoutine
Call Forms("Y").SomeRoutine

但每次我得到RunTime Error 2450时,Access都找不到表单。

3 个答案:

答案 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