Что я пытаюсь сделать:
Я хочу загрузить таблицу Excel в таблицу базы данных SQL Server, нажав кнопку, привязанную к макросу VBA.
Я хочу, чтобы макрос ожидал завершения процесса, прежде чем продолжить.
Мой текущий метод:
В настоящее время у меня есть пакет служб SSIS, встроенный как объект в ячейку за кнопкой, привязанной к макросу. На этом этапе мой макрос довольно грубый, потому что я все еще пытаюсь понять, как запустить пакет служб SSIS, не открывая его в приложении по умолчанию.
Я хочу, чтобы он запускался в фоновом режиме через скрипт оболочки. Макрос будет ожидать сигнала от сценария оболочки, сообщающего, что загрузка прошла успешно, прежде чем продолжить. У меня это было запущено ранее с пакетом служб SSIS в качестве внешнего файла и запустил оболочку (которая работала); но я действительно хочу, чтобы он содержался в файле Excel.
Мой код:
Sub UpdateGroupsMacro()
ActiveWorkbook.Save
ActiveSheet.Shapes.Range(Array("Object 1")).Select
Selection.Verb Verb:=Activate
' Shell ("DTEXEC.EXE /F " & ActiveWorkbook.FullName & "\xl\embeddings\oleObject1.bin""") <---This wasn't working even when I went one level deeper.
Application.Wait (Now + TimeValue("00:00:01"))
Worksheets("Macro").ListObjects("GetGroupsTableCount").Refresh
End Sub