在 Windows 10 上访问 2003 - RaiseEvent 似乎不起作用



一个非常简单的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

那么它应该可以工作。

最新更新