使用VBA更改数据连接

时间:2019-03-07 03:46:29

标签: excel vba data-connections

我发现了一些与此有关的问题,这些问题使用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连接有效,但不适用于数据库查询数据连接。

0 个答案:

没有答案