问题描述
在我的工作簿中,有两个数据连接使用不同的查询访问同一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 (将#修改为@)