微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Access 2016 vba - 断点消失

如何解决Access 2016 vba - 断点消失

数周以来,我一直在更新 Access 2016 数据库中的表单,使用 vb 断点对更改进行故障排除。今天我进来,在我的代码添加断点,我可以看出它没有中断。查看代码,断点不见了!将它们以另一种形式放在同一个数据库中,同样的事情 - 断点消失。所以,我知道这不是表格。尝试对数据库进行修复——同样的事情——断点在添加和保存后消失。尝试复制一个好的数据库副本,看看当前的数据库是否已损坏 - 同样的事情 - 断点消失。尝试进入另一个数据库,断点工作。尝试进入我正在处理的数据库的良好副本(修改前的一个)和同样的事情 - 断点消失。尝试修复 Office - 同样的问题。请记住,断点在星期五下午起作用,我没有对 Access 的配置进行任何更改。我确实检查过以确保检查了访问特殊密钥,并且确实如此。还有其他想法吗???

解决方法

VBE 中的断点是短暂的。它们无法在某些操作(例如关闭文档)中幸存下来。我遇到了一些错误,其中断点存在而没有红色标记,还有运行超过红色标记的代码。

最容易重复的是,如果您正在调用任何类型的外部代码。 VBA 是单线程的,如果程序流离开当前应用程序上下文,它通常会跳过断点。例如,如果您在加载项或外部 DLL 中调用代码。

如果您绝对需要在代码的某个部分设置断点以进行调试,那么您可以临时添加一个 Stop 语句。我建议将其设置为有条件的。

例如:

If myVariable = vbNullString Then Stop

如果变量为空,而您认为它不应该为空,这只会中断。这很像其他语言中的 Assert 子句。

请务必在完成调试后移除这些停止点。这样做的一个好方法是发表如下评论:

' BUGBUG:

然后您可以在生产中使用新版本代码之前快速搜索错误。

Click here for more information about Stop

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。