У меня есть документ Excel, у которого есть макрос, который при запуске изменит CommandText
этого соединения, чтобы передать параметры из электронной таблицы Excel, например:
Sub RefreshData()
ActiveWorkbook.Connections("Job_Cost_Code_Transaction_Summary")
.OLEDBConnection.CommandText = "Job_Cost_Code_Transaction_Summary_Percentage_Pending @monthEndDate='" & Worksheets("Cost to Complete").Range("MonthEndDate").Value & "', @job ='" & Worksheets("Cost to Complete").Range("Job").Value & "'"
ActiveWorkbook.Connections("Job_Cost_Code_Transaction_Summary").Refresh
End Sub
Я бы хотел, чтобы обновление не только изменяло команду соединения, но и изменяло соединение, поскольку я хотел бы использовать его и с другой базой данных:
Так же, как макрос заменяет параметры команды на значения из электронной таблицы, я хотел бы, чтобы он также заменил имя сервера базы данных и имя базы данных на значения из электронной таблицы.
Полная реализация не требуется, просто код для изменения соединения со значениями из листа будет достаточным, я должен иметь возможность заставить его работать оттуда.
Я попытался сделать что-то вроде этого:
ActiveWorkbook
.Connections("Job_Cost_Code_Transaction_Summary")
.OLEDBConnection.Connection = "new connection string"
но это не сработает. Спасибо.