Не уверен, что это возможно, но похоже, что это должно быть выполнимо .... это в 2013 году! И некоторые сообщения на форуме, которые я нашел, предлагают, но я не добился успеха в том, чтобы заставить его работать ...Запуск макроса VBA в Access 2010 от внешнего VBScript
У меня есть Access 2010 db с макросом, который загружает файлы с трех разных веб-сайтов, а затем переходит к импорту данные и обрабатывать его. Он работает в течение 1 часа и 17 минут.
Я хочу запланировать выполнение этого макроса в 4 часа ночи, так что все это сделано и вычищено кофе временем и началом работы 8 утра ... Итак, я создал VBScript для его запуска, который затем будет помещен в Планировщик заданий для желаемое время.
Это единственная пользовательская БД, которую я использую только на своем ПК.
Я провел некоторое исследование, но я не могу заставить его работать. Вот то, что я до сих пор:
Macro внутри модуля "Main" в Access 2010 внутри "Ценообразование Model.accdb":
Public Sub Download_And_Import()
ProcStep = ""
ExecStep = 1
DoCmd.SetWarnings False
'Empty the Execution Progress table
DoCmd.RunSQL "DELETE * FROM EXECUTION_PROGRESS"
Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Starting Download_Files Main Procedure...")
Call Download_Files.Download_Files
Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Finished Download_Files Main Procedure...")
Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Starting Import_Files Main Procedure...")
Call Import_Files.Import_Files
Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Finished Import_Files Main Procedure, closing application now...")
DoCmd.SetWarnings True
End Sub
Затем я создал следующий VBScript для запуска Access VBA макросов внешне:
dim accessApp
set accessApp = createObject("Access.Application")
accessApp.OpenCurrentDataBase("G:\Pricing DB\Pricing Model.accdb")
accessApp.Run "Download_And_Import"
accessApp.Quit
set accessApp = nothing
Я получаю сообщение "вызов функции Нелегальная, строка 4", который является шагом:
accessApp.Run "Download_And_Import"
Любые идеи/помощь приветствуются! Заранее спасибо!
M
Код работал отлично для меня после определения переменных 'ProcStep' и' ProcExec'. Сделайте приложение видимым ('accessApp.Visible = True'), поэтому вы можете использовать редактор макросов для отладки. –
Я не могу проверить это прямо сейчас, но попробуйте добавить круглые скобки: 'accessApp.Run (« Download_And_Import »)'. – UberNubIsTrue
Hi Ansgar Wiechers, извините, но я новичок в VBS (хотя у меня немного опыта VBA). По вашему предложению, когда я добавляю строку (accessApp.Visible = True), Access открывается, когда я запускаю VBS, но я все равно получаю сообщение об ошибке Illegal Function Call. Я не уверен, что вы имеете в виду при определении ProcStep и ProcExec, можете ли вы разработать PLS. Спасибо за помощь. – TheRealPapa