我发现了一些与此有关的问题,这些问题使用vba来更新Excel数据连接,并且它们对于ODBC / OLEDB连接工作正常。
我有一个电子表格,作为“数据库查询”连接,而OLEDB / ODBC的代码不起作用,并且出现运行时1004错误。
当我运行VBA来检查它是哪种连接时,它是2类。
Sub test()
Dim conn As WorkbookConnection
For Each conn In ActiveWorkbook.Connections
Debug.Print conn.Name
Dim connName As String
connName = conn.Name
Debug.Print conn.Type
Next conn
End Sub
VBA中的代码使用
Sub RelaceSQLDriver()
Dim conn As WorkbookConnection
For Each conn In ActiveWorkbook.Connections
Debug.Print conn.Name
Dim connName As String
connName = conn.Name
Dim oleconn As OLEDBConnection
Set oleconn = conn.OLEDBConnection
'Debug.Print oleconn.Connection
Dim oleconntext As String
oleconntext = oleconn.Connection
oleconntext = Replace(oleconntext, "Provider=SQLOLEDB.1;", "Provider=MSOLEDBSQL.1;")
Debug.Print oleconntext
oleconn.Connection = oleconntext
Next conn
End Sub
在我的代码示例中,我将其设置为OLEDBConnection,它对于实际的OLE连接有效,但不适用于数据库查询数据连接。