【发布时间】:2020-07-27 23:32:35
【问题描述】:
我的函数当前接受一个表单并将其保存到一个变量中,以便在此模块中捕获表单的事件。事实是,表单是强类型的——每个表单都需要自己的功能。这是很多重复的代码,所以我尝试通过将变量输入为Access.Form 来使其通用,但事件停止触发。
我认为这可能是因为现在表单仅在运行时定义。不管是什么原因,有谁知道是否可以匿名传递表单而不会丢失其事件?
当前代码
Private WithEvents frm As [Form_Create]
Public Sub Run(parentForm As [Form_Create])
Set model = New mdlKita
Set frm = parentForm
End Sub
// then I can do things like
Public Sub frm_OnCreate()
当前代码已更新为通用代码 - 事件不会触发
Private WithEvents frm As Access.Form
Public Sub Run(parentForm As Access.Form)
Set model = New mdlKita
Set frm = parentForm
End Sub
// this never fires
Public Sub frm_OnCreate()
在表格内以防有人感兴趣
Private ctrl As ctrCreate
Private Sub btnContinue_Click()
Set ctrl = New ctrCreate
ctrl.Run Me
RaiseEvent OnCreate
End Sub
【问题讨论】:
标签: vba forms ms-access events