我从网上获取了2个样本数据库 - 一个用于日历,一个用于拖放功能 - 并将一些代码拉到一起,以获得几乎完全正常运行的结果。
有一个构建/刷新日历的功能,它可以很好地工作。 拖放功能完美运行。 (该项目在表格中更新以反映新日期。)
当我拖放时,日历不会自动刷新。如果我在下个月点击上个月(使用新日期调用刷新功能),则更改将按预期反映。
问题是当我尝试在拖放事件后自动调用刷新功能时。每次我在拖放后调用代码中的刷新时访问都会崩溃,无论我在何处拨打电话。
错误说:
Microsoft Visual C ++运行时库
运行时错误!
节目:C:......
此应用程序已请求运行时将其终止 不寻常的方式请联系应用程序的支持团队获取更多信息 信息。
我试过了:
我认为它可能会尝试刷新太快,所以我添加了暂停 功能并让程序在下降之前等待10秒 令人耳目一新。仍然坠毁。
我在数据库上做了一个小型修复工作。
我在accdb文件的命令行中运行/反编译。
我将相关表单,表格,查询和模块导出到新的accdb 文件
我试图重新注册在引用下检查的库。 (RegSvr32"库文件的路径")唯一成功的是 vbe7.dll。 " MS访问14.0对象库"," OLE自动化",和 " MS Office 14.0访问数据库引擎对象"不包含 DllRegisterServer方法,因此regsvr32没有成功。没有别的 参考检查。仍然崩溃。
我已经尝试了无数个地方来插入对refreshcalendar()的调用
我已经完成了代码并验证了确切的位置 崩溃发生了。它在代码中被注释。
重现问题:
打开frmsubCalendar。 2014年5月有2个条目可以在日历上删除到其他日期。然后,我可以单击表单上的上一个/下个月按钮,当May重新加载时,已进行更改。但是如果我进入sub dropdetect()下的mod_drag_drop并取消注释注释中注明的行,则刷新将在dropdetect()子末尾崩溃访问。
我无法弄清楚如何在没有访问权限的拖放事件后自动刷新日历。
答案 0 :(得分:1)
我意识到这有点过时了,但是我有一个类似的问题,并没有看到这个被回答,我想我会为后代添加这个答案。 :)我发现它是由表单名称引用函数引起的。我在一个模块中进行了以下调用:
lContractCt = Form_Census.lContractCt_f(bIsMembers)
如果lContract是Long,则有一个名为Census的表单和一个名为lContractCt_f的公共函数。
我将函数移动到了一个模块(因此不再需要Form_Census引用)。并将呼叫改为:
lContractCt = lContractCt_f(bIsMembers)
这解决了错误。所以,我会检查你是否有从模块到表单的任何公共函数引用,并将这些公共函数移动到一个模块中。我还通过Forms![Census]看到了一个带有不同表单参考的类似帖子。