Я создал макрос, который отправляет новый CommandText в ODBC-соединение в моей электронной таблице Excel, а затем обновляет таблицу результатов, связанных с запросом. Это работает отлично, но я заметил, что каждый раз, когда я запускаю макрос, он перезаписывает строку соединения с некоторыми значениями по умолчанию, которые работают на моей машине, но не будут работать на компьютерах других пользователей, потому что у них нет сохраненного файла подключения что у меня есть. Более конкретная строка подключения, определяющая адрес сервера, работает при вводе вручную, но будет перезаписана в любое время, когда выполняется макрос.Настройка строки подключения ODBC в VBA
Я понял, что просто хочу, чтобы макрос записывал строку соединения в то же время, когда он отправляет новый CommandText, но я сталкиваюсь с ошибками.
Мой код выглядит следующим образом:
Sub NewData()
Dim lStr As String
lStr = ""
lStr = lStr & " USE myDBname; "
lStr = lStr & " WITH X AS ("
lStr = lStr & " SELECT"
lStr = lStr & " column1, column2, column3, etc"
lStr = lStr & " FROM"
lStr = lStr & " etc. etc. etc."
With ActiveWorkbook.Connections("PayoffQuery").ODBCConnection
.CommandText = lStr
.Connection = "SERVER=myserveraddress;UID=SYSTEM;Trusted_Connection=Yes;APP=2007 Microsoft Office system;WSID=SYSTEM;DATABASE=myDBname;"
End With
End Sub
.CommandText все еще обновляет просто отлично, но .Connection выбрасывает сообщение об ошибке выполнения 1004: Application или объекта определенные ошибки.
Любая идея, что я делаю неправильно здесь? ТИА.
Спасибо, это сработало! Интересно, что эта часть не отображается в окне свойств соединения после запуска макроса. Но это должно иметь влияние, поскольку оно не работает, если эта часть опущена. – CactusCake