重复重建右键单击菜单会引发错误

时间:2019-04-04 09:27:59

标签: drop-down-menu access-vba ms-access-2010 right-click

我有一个最初在Access 2000中内置的Access应用程序。几个文本框和组合框使用自定义的右键单击菜单来调用筛选器例程。 RC菜单是用代码构建的,其中一些菜单非常广泛-数百个项目,最多嵌套四层。

当字段中的数据更改时,我需要重建该字段的菜单,因为菜单会根据数据库的实际内容进行过滤。

在2000年,一切正常,但是在较新的版本中,重复的重建会引发错误。

代码的相关部分在这里:

    Dim rst0 As DAO.Recordset, rst1 As DAO.Recordset, rst2 As DAO.Recordset, rst3 As DAO.Recordset, qdf0 As DAO.QueryDef, qdf1 As DAO.QueryDef, qdf2 As DAO.QueryDef, AEp As CommandBarPopup, AEp1 As CommandBarPopup, AEp2 As CommandBarPopup, aec As CommandBarButton
    On Error GoTo ErrHndlr
    With Application.CommandBars("RCDatum")
        Do Until .Controls.count = 0
            If .Controls.count Then .Controls(1).Delete
        Loop
        Set rst0 = CurrentDb.QueryDefs("RCDatumDekady").OpenRecordset(acReadOnly)
        Set qdf0 = CurrentDb.QueryDefs("RCDatumRok")
        Set qdf1 = CurrentDb.QueryDefs("RCDatumRokMesic")
        Set qdf2 = CurrentDb.QueryDefs("RCDatumRokMesicDen")
        Do
            qdf0.Parameters("LoRok") = rst0.Fields("Dekada")
            qdf0.Parameters("HiRok") = rst0.Fields("Dekada") + 9
            Set rst1 = qdf0.OpenRecordset(acReadOnly)
            Set AEp = .Controls.Add(msoControlPopup)

最后一行是它轰炸的地方,错误为“无法添加控件”,但并非总是如此。它运行了好几次,但是经过大约四到五次重建后,它突然开始在该行上引发错误。关闭它,执行C&R并重试会使它再次工作,再几次也可以,然后开始轰炸。

我有点怀疑我在滥用RC系统,该系统原本打算用于一些物品,或多或少地永久留在原地,而不是如此密集的构建/重建活动,所以有这么多物品,但是我没有发现有关该主题的任何文档,或声称有相关经验的任何人。

有人有什么主意吗?

0 个答案:

没有答案