Я видел много таких вопросов, но ни одно из предлагаемых решений не работает для меня.Access 2010 Macro on Server 2008 R2 Task Scheduler Unattended
У меня есть макрос Access 2010 под названием «MAIN» (в 32-разрядном Office). База данных содержит связанные таблицы ODBC с различными серверами баз данных и сложные запросы присоединения для сравнения и анализа данных для создания файлов CSV для импорта в стороннюю систему. Макрос предназначен для автоматического запуска этих запросов и сохранения результатов в CSV-файлах для последующего использования сторонним инструментом импорта.
Мое желание состоит в том, чтобы запустить этот макрос «без присмотра», чтобы файлы создавались по установленному расписанию независимо от того, зарегистрирован ли пользователь в системе или нет. В целевой системе работает Server 2008 R2 (изначально 64-разрядная версия Windows).
Многие из ответов, которые я вижу в Интернете, указывают на то, что для макросов Office Automation может потребоваться вход пользователя в систему, чтобы программа Office имела действующий сеанс рабочего стола пользователя. Есть несколько человек, которые дают противоположный ответ: говоря, что может запустить макрос Microsoft Access без использования с помощью Планировщика задач Windows с параметром «Запустить, был ли пользователь включен или нет».
Действие устанавливается в "Запуск программы", с Программой/скрипт установлен в "C: \ Program Files (x86) \ Microsoft Office \ Office14 \ MSACCESS.EXE" и аргументы, изложенные в «C: \ Test_Dir \ Test_DB.accdb»/nostartup/х MAIN
Когда я запускать запланированное задание либо в заданное время или по требованию, он быстро завершает с MSACCESS ResultCode (возвращаемое значение) 2004 года (эквивалент 0x7D4 hex Run Result). Просмотр папки вывода показывает, что файлы не были созданы.
Если, однако, я задал «Параметры безопасности» задачи «Выполнять только при входе пользователя», она успешно выполняется с правильным кодом результата 0 (0x0 hex). Выходные файлы создаются, как ожидалось, в желаемой папке, но это работает только во время входа в систему.
Просьба представить потенциальные решения, если у вас есть предложения, которые могут сработать. Похоже, я пробовал так много альтернатив, но мне, должно быть, что-то не хватает, потому что ничего не работает для планирования автоматического доступа к макросу при выходе из системы.
Следите за тем, как только он начнет производство. Я создал аналогичную установку несколько лет назад и обнаружил, что иногда процесс «осиротевшей» MSACCESS.EXE остался после завершения запланированной задачи, что может вызвать странное поведение с последующими задачами. Я закончил писать небольшую программу на C#, чтобы работать как * другая * Запланированная задача, ища оставшиеся процессы MSACCESS.EXE и завершая их. –
Спасибо за предложение @GordThompson, я буду следить за этими сиротскими процессами MSAccess.exe. Если они происходят часто, я уверен, что мне нужно будет выполнить задачу очистки, как вы упомянули. Рад слышать, что я не единственный с этой проблемой. –