MS Excel: использование Shell в VBA для запуска пакета служб SSIS в качестве встроенного объекта на листе - PullRequest
0 голосов
/ 02 ноября 2018

Что я пытаюсь сделать: Я хочу загрузить таблицу 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
...