我在一个VBA模块中工作,用于查询链接表,根据数据生成报告,然后使用PDF打印机将报表保存到磁盘。主表单中有一个计时器,每N秒钟对"JOBQUEUE“表运行一个访问查询,以查看是否有新的作业。
如果数据库服务器不可用,此操作当然会超时。运行时错误3051正在记录中,循环将尝试继续.但是,循环不能完成,因为下面的错误是在VB运行时错误之后出现的;
标题是“”,因此据我所知,它不在VB中。
Connection Failed:
SQLState: '01000'
SQL Server Error: 53
[Microsoft][ODBC SQL Server Driver][DBNETLIB][ConnectionOpen(Connect()).
Connection Failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not
exist or access is denied.在我发现的每一个论坛和讨论中都提到了这个错误,询问者关心错误的原因。在这种情况下,我可以假设错误是暂时的,并且它需要继续尝试连接,因为安装是无人参与的。进入进入一个“没有回应.”当它对DB进行超时时状态,这也是可以的,如果连接在进入上面描述的MsgBox之前被恢复,它将恢复到中断的位置并继续工作。
有谁知道我可以用一种方法来静音这个msgbox,最好是用编程的方式,但是在这一点上,我可以采取任何可以远程完成的事情,而不是RDP会话。
编辑: 链接到图像
发布于 2013-03-07 17:35:55
我得到的错误确实不是可以从代码中捕捉到的运行时错误。相反,这是SQL超时,因为我已经吞并了VBA模块中运行时的超时。
这个错误似乎从来没有出现过,因为我已经引入了一个新的计时器,它重置了对链接表运行查询的循环。它不能被记录和吞并,但是可以通过更聪明地处理运行时的超时来防止它。
https://stackoverflow.com/questions/15120143
复制相似问题