Я просто пытаюсь получить VBA для обновления строки подключения OLEDB. Когда я перехожу к коду, я не получаю никаких ошибок, но обновление соединения завершается с ошибкой, и когда я проверяю строку подключения в пользовательском интерфейсе, очевидно, что мой код вообще не изменил его (следовательно, сбой обновления). Что я пропустил?Excel VBA; Обновление строки подключения
Вот код:
Sub UpdateQueryConnectionString(ConnectionString As String)
With ActiveWorkbook.Connections("Connection Name"). _
OLEDBConnection
.Connection = StringToArray(ConnectionString)
End With
ActiveWorkbook.Connections("Connection Name").Refresh
End Sub
ConnectionString, подаваемого в это:
ConnectionString = = "Provider=SLXOLEDB.1;Data Source=SERVER;Initial Catalog=DATABASE" _
& ";User ID=" & Username & ";Password=" & Password & _
";Persist Security Info=True;Extended Properties=" _
& Chr(34) & "PORT=1706;LOG=ON;CASEINSENSITIVEFIND=ON;INCLUDECALCFIELDS=ON;" & Chr(34)
Функция StringToArray копируется прямо из примера 4 на http://support.microsoft.com/kb/105416
Я предлагаю вам тщательно проверить каждое из свойств в окне местных жителей, чтобы убедиться, что они на самом деле существуют - я не знаю, синтаксис наизусть. Массив (ConnectionString) выглядит как странный синтаксис, учитывая тот факт, что ConnectionString - это строка. – Trace
@KimGysen кажется правильным - что это за 'array()' for, попробуйте без 'array()', просто с 'ConnectionString'. –
Я думаю, что часть массива генерируется Macro Recorder, и, как говорит @KimGysen, здесь не применяется. Попробуйте использовать только «ConnectionString». –