Запуск внешнего скрипта из Access - PullRequest
3 голосов
/ 22 июля 2010

Я хочу, чтобы мое приложение Access запускало внешнюю программу (в данном случае R-скрипт) после того, как пользователь нажимает кнопку. Я использую этот код:

Dim RetVal
RetVal = Shell("""C:\Program Files\R\R-2.10.1\bin\R.exe"" CMD BATCH --no-environ --silent --no-restore --no-save ""c:\test.R"" ""c:\test-result.txt""", vbHide)
MsgBox RetVal

Это работает нормально, но код VBA продолжает работать, пока выполняется мой скрипт. Как я могу заставить Access ждать завершения скрипта? Кто-нибудь предлагал, как вернуть сообщение об ошибке скрипта в Access?

1 Ответ

1 голос
/ 22 июля 2010

Комбинация OpenProcess и WaitForSingleObject, на которую ссылается @Remou, вероятно, является лучшим выбором для этого.Вы должны взглянуть на this , это хороший модуль для shell и ждать.

Для возврата сообщения из скрипта вы можете возиться с , перенаправивскрипты ввода и вывода .Это не для слабонервных.В качестве альтернативы я бы перенаправил вывод скрипта в текстовый файл , а затем прочитал бы этот файл после его выхода.

...