如何在“找不到文件”错误后增加 VBA 错误输出以诊断一致崩溃

Posted

技术标签:

【中文标题】如何在“找不到文件”错误后增加 VBA 错误输出以诊断一致崩溃【英文标题】:How to increase VBA error output to diagnose consistent crashing after "File not found" error 【发布时间】:2016-12-23 16:08:30 【问题描述】:

有没有一种方法可以让应用程序 MS Access 和 VBA 更详细,以便更好地诊断来自 IDE 的错误?

我打开我的 MS Access 项目,我得到一个消息对话框,标题为“Microsoft Visual Basic for Applications”,消息“找不到文件:”,没有指定任何路径。打开表单文件按预期工作。

当我进入 VBA 时,我可以从即时窗口运行一些命令。以下操作将导致 MS Access 崩溃,并显示标题为“Microsoft Access 已停止工作”的消息框:

关闭数据库 停止调试器(它打开时处于活动状态,试图加载表单) 选择 MS-Access / VBA 最初崩溃时我正在处理的过程的文本。

【问题讨论】:

【参考方案1】:

这没有回答问题,但似乎已通过删除相关过程、让 MS Access 崩溃并重新打开 VBA 解决了根本问题。

【讨论】:

【参考方案2】:

回答标题中的问题:如果错误实际上是由 VBA 代码引起的,您可以捕获错误(使用 On Error Goto ...)并根据您的方法的上下文提供其他信息(您尝试打开的文件等)。不幸的是,没有神奇的开关可以让内置的错误消息更有用。

回答问题正文中的问题:根据您的描述,该错误不是由用户提供的实际 VBA 代码引起的。相反,您的数据库或其 VBA 模块已损坏(访问崩溃或显示看似随机的错误是一个强烈的迹象)。修复、压缩和decompile 您的数据库。也可能值得查看 VBA 参考,因此请查看是否缺少其中的任何一个。

【讨论】:

【参考方案3】:

你能在即时窗口中执行命令 resume 吗?它应该将您发送回未找到文件的代码行。

【讨论】:

以上是关于如何在“找不到文件”错误后增加 VBA 错误输出以诊断一致崩溃的主要内容,如果未能解决你的问题,请参考以下文章

更新 GitLab 后,输出错误 CSS

使用 SenchaCmd 构建时出现 SenchaTouch 错误:找不到文件以供依赖参考

捕获静态“找不到文件”错误

如果找不到文件,如何跳过代码块?

启动包含管道命令的子进程时找不到文件错误

执行 CoCreateInstance 时出现 COM 错误 0x8007002(找不到文件)