В настоящее время я пытаюсь выяснить, как запустить файл .sql из VBA. Я могу заставить VBA запустить sql-код внутри него, но поскольку у меня уже написан скрипт SQL, я бы хотел просто вызвать этот файл, запустить код и передать данные обратно в Excel. Даже если он вызывает файл и передает код обратно в VBA для запуска, все будет хорошо, но вместо этого проще сохранить код там, а не в редакторе VBA.Запуск SQL-файла из VBA
База данных Oracle, но у меня есть соединение и работающие atm.
' Makes the SQL call to collect the data.
Dim strConOracle As String
Dim oConOracle, oRsOracle
Dim strSQL As String
Dim lngCount As Long
Dim strCount As String
strConOracle = "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)"
strConOracle = strConOracle & "(HOST=" & HOST & ")(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=" & DBNAME
strConOracle = strConOracle & "))); uid=" & ORACLE_USER_NAME & " ;pwd=" & ORACLE_PASSWORD & ";"
Set oConOracle = CreateObject("ADODB.Connection")
Set oRsOracle = CreateObject("ADODB.RecordSet")
oConOracle.Open strConOracle
strSQL = ""
Set oRsOracle = oConOracle.Execute(strSQL)
ActiveSheet.Cells.CopyFromRecordset oRsOracle
oConOracle.Close
Set oRsOracle = Nothing
Set oConOracle = Nothing
Это код, который у меня есть, минус соединение с базой данных, которое объявлено в верхней части.
В идеале я бы просто изменил часть strSQL.
Спасибо за любую помощь
Можно ли добавить две переменные в VBA для дат, которые будут переданы в SQL и используются. В идеале пользователь просто вводит две даты в две ячейки, запускает макрос, и как только код будет выполнен, он будет заполняться в excel. Или это будет слишком много вне того, что могут делать VBA и Excel? Если кто-нибудь может порекомендовать какие-либо хорошие книги или руководства по обучению VBA, я был бы признателен. Только начинать делать что-либо подобное – user1087906
, это не должно быть проблемой. Вы можете поместить что-то вроде ## date ## в ваш файл SQL. После импорта этого файла вы можете использовать функцию replace() для замены его значениями ячейки. – cboden