一个非常简单的mdb:form1只有一个按钮Command0,form2只有一个按钮Command0。
- 窗体
- 1 上的按钮加载窗体 2。
- form2 上的按钮引发事件"doit"。
- 此事件永远不会触发。
为什么?这是以下形式的所有代码:
表格1
Option Compare Database
Private WithEvents msg As Form
Private Sub Command0_Click()
DoCmd.OpenForm "form2"
Set msg = Forms("form2")
End Sub
Sub msg_doit()
Stop
End Sub
表格2
Option Compare Database
Public Event doit()
Private Sub Command0_Click()
RaiseEvent doit
End Sub
您需要使用包含事件的正确(特定(接口。
对于窗体,Access.Form
接口是常规接口(适用于所有窗体(,并且仅包含内置方法和事件,Access.Form_MyFormName
是包含您声明的所有公共方法和事件的特定接口。
您唯一需要更改的是:
Private WithEvents msg As Form_form2
那么它应该可以工作。