错误处理 - 服务器连接丢失

时间:2016-10-18 01:54:12

标签: ms-access access-vba

我正在寻找一点指导。我有一个连接到服务器以运行SQL查询的Access应用程序。我可以在运行任何查询之前测试连接(ping),但是当流中断连接丢失时,我无法正常处理(这似乎过于频繁)。

我有err_Handing就地,但我似乎得到一个嵌套的错误消息集合,包括:

3146 - ODBC Error
3151 - ODBC Connection Error
3704 - Object is Closed
2046 - Quit not available
>> Requires Ctl-Break, or Task Mgr to break loose...

我使用以下命令考虑长时间查询:db.QueryTimeout = 0;我不认为这是我的问题。

为了开始解决我的问题,我最近从全局变量转换为TempVars,因此我的应用程序不再对这些处理和未处理的错误感到失望。现在似乎我有更多的控制权,但我的Access应用程序仍然挂在Err Msg地狱。

我对LOST连接的期望回应:

  1. 陷阱错误情况
  2. 向用户发出消息,宣布情况
  3. 写入日志以获取当前状态
  4. 从Access轻松退出
  5. 任何建议或指示开始解决这个问题?

    谢谢!

1 个答案:

答案 0 :(得分:0)

您可以自由使用全局变量(VBA),如果您使用已编译的accDE,它们永远不会丢失它们的值。因此,不需要将这些变量转换为tempVars。由于accDE(已编译的应用程序)永远不会丢失VBA值(即使没有错误处理),因此结果是一个更加强大和可靠的应用程序。编译后的accDE还可以防止VBA代码被解编,并且还可以防止应用程序的设计被篡改。

至于失去联系,目前还没有一个可行的解决方案。在应用程序启动时,您可以检查连接并使用此方法正常退出:

ACC2000:如何捕获ODBC登录错误消息 http://support.microsoft.com/kb/210319

但是,在具有绑定表单的会话期间,网络连接的丢失无法真正被困在一个优雅的庄园中 - 唯一真正的解决方案是解决连接丢失并首先防止它。 / p>