我在 MS Access 中有一个带有图像的表单。该图像有一个 Click 事件,它打开一个模态表单。模态表单有一个确定和取消按钮。当您单击 OK 按钮时,应该触发一个事件,告诉主窗体单击了哪个按钮。(这是为了模拟 C# 中的 DialogResult 功能)。但是,事件处理程序中的代码永远不会运行。
模态形式在一般声明中具有以下内容:
Public Event OnDialogBoxClose(NewRecordID As Long, DialogResult As DialogResults)
以及单击“确定”按钮的以下代码:
RaiseEvent OnDialogBoxClose(NewHardwareBaseItemID, dlgresBtnOKClicked)
主要形式在一般声明中具有以下内容:
Dim WithEvents RespondQuickAddClose As Form_qckfrmHardwareBaseItemCreate
和以下事件处理程序:
Private Sub RespondQuickAddClose_OnDialogBoxClose(NewRecordID As Long, DialogResult As DialogResults)
MsgBox "Responding to closing of the dialog box" 'Never happens
Me.Requery
End Sub
有人可以解释为什么永远不会调用事件处理程序吗?谢谢!
背景:
这一切的目的是让模态对话框添加一个条目,然后将条目的ID返回给主窗体以设置控件的值。例如,假设您正在填写一份保险单,并且您需要选择一个不存在的汽车品牌。您单击一个随模式对话框弹出的图标,以允许您添加汽车品牌。然后,当您单击“确定”时,它会将您带回保险表格并选择您刚刚创建的汽车品牌。
这遵循我在这里找到的一个例子:http: //database.itags.org/ms-access-database/80292/