0

我正在使用 VBA/Access 创建表单来访问我的数据库。

在一个表单中,我有一个 *lst_sinistres* 列表框,它显示我的 SQL 查询的结果,当我双击其中一个结果时,由于此代码,它会打开另一个表单

Private Sub lst_sinistres_DblClick(Cancel As Integer)

    DoCmd.OpenForm "F_SINISTRE_MRH", acNormal, , , , , Me.lst_sinistres.Value

End Sub

我想改变我的表格,并添加标签以使其更符合人体工程学。所以我把我的 *lst_sinistres* 列表框放在一个选项卡中。问题是当我双击此列表框中的一个结果(现在放在选项卡中)时,*F_SINISTRE_MRH* 表单没有打开。

有人知道问题可能出在哪里吗?

谢谢

4

1 回答 1

2

VBA 控件事件的一个怪癖是事件代码可以与控件对象分离。导致这种情况的原因往往是重命名控件并在控件之间复制/粘贴类似的代码。要将列表框移动到选项卡控件上,您需要临时剪切和粘贴它。这打破了书面代码和对象名称之间的联系。当代码和对象正确链接时,[Event Procedure]会显示在属性表中(如@4dmonster 所建议的那样)。

如果您在 VBA 编辑器中,选择 Debug->Compile 将搜索所有代码并将事件代码与同名控件重新链接。这一步值得在重写之前尝试一下,因为您最终可能会得到孤立块

Private Sub OldControlName_DblClick(Cancel As Integer)
MsgBox "Why don't I work anymore?"
End Sub

被视为表单级子例程,只是碰巧永远不会被调用。pT

于 2013-10-01T16:06:30.527 回答