ODBC 驱动程序在建立连接和处理 SQL 查询时变得不稳定



我有一个 Excel 宏工作簿(二进制扩展(,它突然偶尔出现 2 个问题(有时运行良好(。

#1 问题 - 偶尔第 5 行出现错误,连接似乎无法打开。 我们收到错误: Microsoft][ODBC Microsoft访问驱动程序]常规错误 无法打开注册表项 用于进程0x7f8的临时(易失性(ACE DSN 线程0x1174 DBC

#2 问题 - 偶尔在第 7 行出现错误,似乎 SQL 无法运行。 它指示找不到"工作表"选项卡,即使它确实存在。 请注意,对于此错误,我们对第 5 行(打开连接(没有问题。 显示的错误是: [Microsoft][ODBC Excel 驱动程序]Microsoft Jet 数据库引擎找不到对象"工作表名称"。确保对象存在... 对于问题#2,一旦我们关闭错误对话框,宏就会被删除

!!笔记

代码模块多年未更改 有些日子我们没有收到任何错误/问题

对于由运行不同 VBA 代码块的多个人员运行的多个 Excel 工作簿,会出现此问题。 但是,在所有这些宏中,其中一个代码块是相同的,即上面的代码片段。

源数据在格式或数量方面没有变化。

所有这些工作簿都位于网络服务器上。

我们在Windows7/Excel 2010/ODBC Excel驱动程序(xls xlsx xlsm xlsb( 14.00.7180.5000

代码片段

1-Set adoConn = Nothing
2-Set adoRS = Nothing
3-Application.EnableCancelKey = xldisabled
4-strConn = "Driver={Microsoft Excel Driver (*.xls,*.xlsx,*.xlsm,*.xlsb)};DriverId=1046;Dbq=" & strFileName & ";IMEX=1;"
5-Set adoConn = New ADODB.Connection: adoConn.Open strConn
6-Application.EnableCancelKey = xlInterrupt
7-Set adoRS = New ADODB.Recordset:adoRS.Open Source:=strSQL,ActiveConnection:=adoConn

我很好奇为什么您使用 ODBC 将 Excel 连接到另一个 Excel 文件,而不是直接链接数据。

间歇性连接问题表示存在网络问题。我建议删除并重新创建 ODBC 连接,但我首先要确认连接字符串中引用的strFileName值。 它是内部网络上的实际服务器,还是外部源? (即,它是UNC路径吗?

间歇性Unable to open registry key错误可能听起来比实际更糟糕;当出现连接问题时,Windows和Excel很容易混淆真正的问题是什么。

听起来您的设置已经存在很长时间了,可能没有维护。 客户端和服务器最后一次重新启动是什么时候?(应该是每晚。碎片整理、磁盘清理等?

至于关闭错误对话框时宏"被删除"的问题,我需要看到证据。 我认为你误解了什么,除非你每次发生这种情况时都从头开始重写宏。

最新更新