我正在使用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 *不会打开。
有人知道问题可能来自哪里吗?
谢谢
答案 0 :(得分:2)
VBA控制事件的一个怪癖是事件代码可以与控件对象分离。导致这种情况的因素往往是重新命名控件并在控件之间复制/粘贴类似的代码。要将列表框移动到选项卡控件上,您需要临时剪切和粘贴它。这打破了编写代码和对象名称之间的联系。正确链接代码和对象后, [事件处理] 会显示在属性表中(如@ 4dmonster所示)。
如果您在VBA编辑器中,选择Debug-> Compile将搜索所有代码并使用相似名称的控件重新链接事件代码。在重写之前,这个步骤值得一试,因为你可能最终得到
的孤儿块Private Sub OldControlName_DblClick(Cancel As Integer)
MsgBox "Why don't I work anymore?"
End Sub
被视为几乎不会被调用的表单级子例程。 的pT