Ms access 我得到了一个C++;运行access vba模块时出现运行时错误。一致可复制

Ms access 我得到了一个C++;运行access vba模块时出现运行时错误。一致可复制,ms-access,vba,runtime-error,Ms Access,Vba,Runtime Error,我从网上收集了两个示例数据库——一个用于日历,另一个用于拖放功能——并将一些代码整合在一起,结果几乎如我所希望的那样 有一个构建/刷新日历的功能,可以完美地工作。 拖放功能非常有效。(表中的项目将更新以反映新日期。) 当我拖放时,日历不会自动刷新。如果单击“下个月”,然后单击“上个月”(使用新日期调用刷新函数),则更改会按预期反映出来 问题是当我尝试在拖放事件后自动调用刷新函数时。每次我在拖放后调用代码刷新时,Access都会崩溃,无论我将调用放在何处 错误显示: 微软Visual C++运行库

我从网上收集了两个示例数据库——一个用于日历,另一个用于拖放功能——并将一些代码整合在一起,结果几乎如我所希望的那样

有一个构建/刷新日历的功能,可以完美地工作。 拖放功能非常有效。(表中的项目将更新以反映新日期。)

当我拖放时,日历不会自动刷新。如果单击“下个月”,然后单击“上个月”(使用新日期调用刷新函数),则更改会按预期反映出来

问题是当我尝试在拖放事件后自动调用刷新函数时。每次我在拖放后调用代码刷新时,Access都会崩溃,无论我将调用放在何处

错误显示:

微软Visual C++运行库< /P> 运行时错误

节目:C:

此应用程序已请求运行时在 不寻常的方式。请联系应用程序的支持团队以了解更多信息 信息

我试过:

  • 我想它可能试图刷新得太快了,所以我加了一个暂停 函数,并让程序在退出后等待10秒 令人耳目一新的仍然崩溃

  • 我对数据库进行了压缩和修复

  • 我从accdb文件的命令行运行/反编译

  • 我将相关表单、表、查询和模块导出到一个新的accdb 文件

  • 我已尝试重新注册在参考资料下检查的库。 (RegSvr32“库文件路径”)唯一成功的是 vbe7.dll。“MS access 14.0对象库”、“OLE自动化”和 “MS Office 14.0 Access数据库引擎对象”不包含 DllRegisterServer方法,因此regsvr32未能成功地使用这些方法。没有别的了 查阅参考资料。仍然崩溃

  • 我尝试了无数个地方来插入对refreshcalendar()的调用

  • 我已经检查了代码并确认了 车祸发生了。它在代码中被注释

这是一本书

要重现问题,请执行以下操作:

打开frmsubCalendar。 2014年5月有2个条目可以删除到日历上的其他日期。然后,我可以单击表单上的上一个月/下一个月按钮,当May重新加载时,更改已经完成。但是如果我进入子dropdetect()下的mod_drag_drop并取消注释注释中的行,刷新将使dropdetect()子末尾的访问崩溃


我不知道如何在拖放事件后自动刷新日历,而不让access在床上乱扔垃圾。

我意识到这有点过时,但我有一个类似的问题,没有看到这个问题得到解决,我想我应该为后代添加这个答案。:)我发现这是由表单名引用函数引起的。我在模块中进行了以下调用:

LContract=表格普查。LContract\u f(BIS成员)

如果lContract是一个Long,则有一个名为Census的表单和一个名为lContract\u f的公共函数

我将函数移到了一个模块中(因此不再需要Form_Census引用)。并将呼叫更改为:

LContract=LContract\u f(BIS成员)


这修复了错误。所以,我会检查是否有任何公共函数引用从模块到表单,并将这些公共函数移动到模块中。我还看到了一个类似的线程,带有不同的表单引用,via Forms![Census],例如。

您是否尝试使用调试器?我以前从未使用过调试器。我会用谷歌搜索fu,看看是怎么回事。编辑:我想你说的是在系统级使用调试器(我不太了解这个)?或者你说的是逐步通过vba代码?因为我已经这么做了。哎呀,现在我明白了。那就别管了;)我找到了这个答案:但是我没有安装VisualStudio,对话框只给我一个OK按钮,没有debug按钮。我认为我没有在那个级别进行调试的工具。GDB能达到这个目的吗?这对我来说是一个新的领域,我希望避免安装错误的软件,如果它没有帮助的话。谢谢。啊,你没有通过gdb吗?那你是怎么一步一步走完的?