Windows10下MS Access2016 VBA编辑器致运行对象置空问题咨询
提问:Win10+Access2016中打开VBA编辑器选中代码行导致全局对象被置为Nothing?
我最近在Windows 10系统上运行MS Access 2016调试VBA代码时,碰到了一个特别诡异的交互问题,想请教下有没有同行遇到过类似情况,或者能帮忙分析下可能的原因?
问题详情:
- 我的Access应用启动时,启动窗体的
Form_Load方法里会实例化一个全局对象,供后续所有依赖的窗体使用,代码是:Set musrInfo = New usrInfo,其中usrInfo是我自己写的存储用户信息的类模块。 - 一旦我打开VBA编辑器,并且在任意代码模块中选中某一行代码之后,之前已经实例化好的
musrInfo对象就会被自动置为Nothing! - 后续再打开依赖这个对象的窗体时,直接触发运行时错误,我已经通过插桩代码(在关键位置添加
Debug.Print musrInfo Is Nothing输出)确认了这个现象是稳定复现的。
额外信息:
- 这个应用的之前版本,以及我维护的其他MS Access VBA应用,都没有出现过这个问题;
- 当前的.accdb编译文件大小约20MB,其中数据表只包含少量参数数据,窗体、报表等对象占了13MB以上。
补充测试结果:
- 将该文件放到Win7/MS Access 2010环境下运行,未出现任何异常;
- 在出现问题的原PC上,把文件复制到其他文件夹中运行,也没有出现这个对象被置空的问题。
内容的提问来源于stack exchange,提问作者Earthman55




