0

在我开发我的 MS Access 应用程序时,我使用 shift click 打开它。当错误发生时,没有被捕获(由 ON ERROR ...),会弹出一个消息框,通知我该错误。这是一件好事。

当用户打开我的应用程序时,他不会移动单击,并且会打开相应的开始表单。但是,现在未捕获的错误不会显示,应用程序的行为就像用户单击消息框上的停止按钮一样。我不想要这种行为。

是否有选项/属性/变量在生产代码中提供与开发中相同的行为(最好即使应用程序 id 转换为 mde),即为每个未捕获的错误显示一个消息框?或者是否有必要在每个事件例程中捕获错误并通过程序弹出一个消息框?

4

3 回答 3

1

事实证明,这是将 AllowSpecialKeys 属性设置为 False 的副作用。这可以通过编程方式完成,但我是在工具 > 启动下的菜单中完成的。

由于此属性允许用户打开代码编辑器,这有点道理,但描述的现象与此选项的关系让我感到困惑。

这是否意味着,如果我想隐藏我的代码,我需要编写所有这些错误处理程序?或者是否有一个可以调用错误处理程序的中心位置(如 Java 中的 main 方法)。或者,我可以允许使用特殊键并只用关键字保护代码吗?

于 2008-12-10T16:37:40.937 回答
0

您可以创建自己的错误处理程序并将其添加到所有 procs、subs 和函数中。你有这个非常好的MZ Tools VBA 插件,它允许你做很多事情,比如在你的代码中添加行号,“预编程”你的错误标签等。

如果您足够聪明,您将能够使用此插件生成标准的“错误管理”代码,显示诸如 err.number、err.description 和 undocument erl 值(即发生错误的行(您必须首先对行进行编号才能获得此值)。

编辑:我刚刚就类似的主题打开了这个问题。

于 2008-12-10T22:09:17.413 回答
0

如前所述,MZ-Tools 3.0 是帮助快速添加错误处理程序的好工具。还要记住,在没有错误处理程序的过程中发生的错误会“冒泡”到最后调用的 On Error 语句。(如果不存在任何语句,您会看到灰色的小调试框。)这样做的最终效果是,您只需将错误处理程序添加到那些公共(或朋友)或由事件调用的过程中,就可以进行最少的错误处理。这将确保您始终调用至少 1 个“顶级”错误处理程序。如果您想在此之后为您的私人程序添加特殊处理,请随意。如果不是,当它们发生错误时,它们将“冒泡”到顶级错误处理程序。

于 2009-05-22T02:04:38.983 回答