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

时间:2019-06-01 11:02:38

标签: vba ms-access access-vba

一个非常简单的mdb:form1只有一个按钮Command0,form2只有一个按钮Command0。

  • form1上的按钮将加载form2。
  • form2上的按钮引发事件“ doit”。
  • 此事件永远不会触发。

为什么? 这是所有具有以下形式的代码:

FORM1

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

FORM2

Option Compare Database
Public Event doit()

Private Sub Command0_Click()
    RaiseEvent doit
End Sub

1 个答案:

答案 0 :(得分:0)

您需要使用包含事件的正确(特定)界面。

对于表单,Access.Form接口是通用的(对于所有表单),并且仅包含内置方法和事件,Access.Form_MyFormName是特定的接口,其中包含所有公共方法和事件您也声明过。

您唯一需要更改的是:

Private WithEvents msg As Form_form2

然后它应该可以工作。