刷新ODBC连接后,VBA无法刷新OLEDB连接

问题描述

在我的工作簿中,有两个数据连接使用不同的查询访问同一DB2数据库

connection1 是ODBC连接。 ThisWorkbook.Connections("connection1").ODBCConnection.Connection是: "ODBC;DSN=MYDSN;",DSN正在连接到GS_DB

connection2 是OLEDB连接。 ThisWorkbook.Connections("connection2").OLEDBConnection.Connection是:"OLEDB;Provider=IBMDADB2.DB2copY1;Persist Security Info=True;Mode=ReadWrite;Extended Properties="Database=GS_DB;HOSTNAME=MYHOST;PROTOCOL=TCPIP;PORT=50000;uid=db2inst1;pwd=abc123""

现在,我要刷新两个连接,顺序为:connection1-> connection2

在我的子场中,

Sub test()

Dim b As WorkbookConnection
Set b = ThisWorkbook.Connections("connection1")
b.ODBCConnection.Refresh

Dim c As WorkbookConnection
Set c = ThisWorkbook.Connections("connection2")
c.OLEDBConnection.Refresh

End Sub

运行子程序时,可以刷新connection1,但不能刷新connection2。它给了我错误

Run-time error '-2147417848 (80010108'

Method 'Refresh of object  'OLEDBConnection' Failed

但是,我重新打开excel,然后更改刷新顺序:

Sub test()

Dim c As WorkbookConnection
Set c = ThisWorkbook.Connections("connection2")
c.OLEDBConnection.Refresh

Dim b As WorkbookConnection
Set b = ThisWorkbook.Connections("connection1")
b.ODBCConnection.Refresh

End Sub

没有错误。然后,我将顺序改回connection1-> connection2,再次出现相同的错误

似乎每当刷新ODBCConnection时都无法刷新OLEDBConnection吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)