Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 避免在调试模式下出错时停止Access 97_Ms Access_Debugging_Vba_Ms Access 97 - Fatal编程技术网

Ms access 避免在调试模式下出错时停止Access 97

Ms access 避免在调试模式下出错时停止Access 97,ms-access,debugging,vba,ms-access-97,Ms Access,Debugging,Vba,Ms Access 97,当我在Access 97中进入调试模式时,程序将在出现任何错误时停止,即使该错误是在“错误恢复下一步”之后发生的 我有一个函数,它使用 On Error Resume Next var = Col.Item(key) 'Here the error is raised, and makes debug mode useless ... InConnection = Not (Err.Number = 5) 这在生产环境中运行得很好,但它使在调试模式下运行程序变得毫无用处 有没有办法避免程序在

当我在Access 97中进入调试模式时,程序将在出现任何错误时停止,即使该错误是在“错误恢复下一步”之后发生的

我有一个函数,它使用

On Error Resume Next
var = Col.Item(key)  'Here the error is raised, and makes debug mode useless
...
InConnection = Not (Err.Number = 5)
这在生产环境中运行得很好,但它使在调试模式下运行程序变得毫无用处

有没有办法避免程序在调试模式下因某些错误而停止


据我所知,无法测试Access 97中的集合中是否存在密钥,除了尝试使用上述方法捕获错误。

在VBA编辑器中
工具|选项…
选项卡上
常规
错误捕获
组中激活
中断未处理的错误
,使所有部分静音

要检查
VBA.Collection
w/o错误捕获中是否存在键,需要一个特制的typelib,如中所述


此外,这样的类型库是练习编写VBA代码的一个先决条件,它具有
Break-on-All-Errors
set——这本身就是一个小技巧:-)

通常,我使用for-Each循环遍历集合中的所有项,以测试某个项是否存在(或者改用字典)。然而,Access 97远远早在我开始编程的时候。这对于Access 97不可行吗?@ErikvonAsmuth每个循环都可以使用
,但这将创建不必要的嵌套循环,并将时间复杂度提高到
O^2
。至于
字典
它似乎不存在于Access 97中。
字典
是一个COM对象(例如
Set dict=CreateObject(“Scripting.Dictionary”)
)。虽然循环确实会增加时间复杂度,但我通常会考虑避免过早的优化,在小集合上循环通常不需要超过几毫秒,并且避免它是杂乱的,因为我们没有尝试…catch,因此它需要您重新声明处理错误的方式。谢谢配置提示。不幸的是,就我所知,typelib的使用是不可能做到的:(