【发布时间】:2018-09-02 16:18:09
【问题描述】:
在 Windows 10 上运行的 MS Access 2016。
我正在调试 MS Access 应用程序的 VBA 更改,并看到 VBA 编辑器和运行代码之间出现一些意外交互。步骤基本上是:
- 打开应用程序,这会打开启动表单。
- 启动 form_load 实例化一个对象,该对象由用户随后可能打开的其他表单使用。
- 打开 VBA 编辑器
- 使用 VBA 编辑器,在任何代码模块中选择一行,实例化的对象将设置为空。
- 使用该对象的其他表单打开时会引发错误。
所以基本上,VBA 编辑器操作已将对象设置为空。我已经添加了检测代码来确认这一点。
有人看到这种行为吗?有没有人对可能发生的情况和造成这种情况有什么想法?
提前谢谢...
附加信息: 在 Form_Load 方法中实例化对象的代码是:
Set musrInfo = New usrInfo
其中 usrInfo 是一个包含用户信息的类模块。
此外,它的早期版本没有问题 - 我从未遇到过任何其他 MSA VBA 应用程序所描述的问题。这个特定 MSA 文件的编译版本略大于 20MB,几乎没有数据表 - 只有几个参数等 - 超过 13MB 的表格、报告等。
我希望这会有所帮助...林赛
还有更多... - 我在另一台装有 Win7/MSA2010 的 PC 上尝试了这个 .accdb 文件,这个 行为没有发生。 - 然后我在原始PC上的不同文件夹中尝试了它 没有发生。
也许这些发现将开辟一条前进的道路,但我仍然想知道为什么会发生这种情况 - 为什么文件夹选择会有所不同?
【问题讨论】:
-
你能把实例化对象的启动表单中的代码贴出来吗?如果您在 VBA 中进行某些更改或停止项目正在运行的代码(特别是如果您更改表单本身的代码导致表单停止),它可能会被丢弃。
-
已发布代码 - 没什么特别的。此外,我对 VBA 编辑器所做的唯一事情就是在 VBA 代码中选择 - 我不做任何更改,并且对象变量设置为空。