изменение подключения к данным с помощью VBA - PullRequest
0 голосов
/ 07 марта 2019

Я нашел несколько вопросов, связанных с этим, с помощью 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, но не для соединений с данными из запроса к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...