Vba windows 10上的access 2003-RaiseEvent似乎不起作用

Vba windows 10上的access 2003-RaiseEvent似乎不起作用,vba,ms-access,Vba,Ms Access,一个非常简单的mdb:form1只有一个按钮命令0,form2只有一个按钮命令0 form1上的按钮加载form2 form2上的按钮引发事件“doit” 此事件永远不会被触发 为什么?? 以下是表格中的所有代码: 表格1 表格2 您需要使用包含事件的适当(特定)接口 对于表单,Access.Form接口是通用接口(对于所有表单),仅包含内置方法和事件,Access.Form\u MyFormName是包含您声明的所有公共方法和事件的特定接口 您唯一需要更改的是: Private WithE

一个非常简单的mdb:form1只有一个按钮命令0,form2只有一个按钮命令0

  • form1上的按钮加载form2
  • form2上的按钮引发事件“doit”
  • 此事件永远不会被触发
为什么?? 以下是表格中的所有代码:

表格1

表格2


您需要使用包含事件的适当(特定)接口

对于表单,
Access.Form
接口是通用接口(对于所有表单),仅包含内置方法和事件,
Access.Form\u MyFormName
是包含您声明的所有公共方法和事件的特定接口

您唯一需要更改的是:

Private WithEvents msg As Form_form2

然后它就可以工作了。

可能是我从未见过的在VBA中使用的RaiseEvent的副本。你到底想完成什么?@June7这是另一个问题(事件不适用于对话框类型的表单,因为它们会中断其他正在运行的代码)。事件并不少见,如果您希望多个不同的代码段能够检测表单上的操作(或任何其他操作),则事件非常有用。我不经常使用它们,但对于大型应用程序,它们肯定是有用的。
Option Compare Database
Public Event doit()

Private Sub Command0_Click()
    RaiseEvent doit
End Sub
Private WithEvents msg As Form_form2