Запуск макроса MS-Access с использованием командного файла, когда вы не вошли в систему - PullRequest
0 голосов
/ 06 марта 2012

У меня на сервере настроено следующее

  1. Два запроса MS-Access
  2. Экспортировал данные из запросов и сохранил шаги экспорта
  3. Созданомакрос для запуска этих шагов экспорта, затем выйдите из MS-Access
  4. Создайте командный файл, чтобы открыть ms-access и запустите макрос

    • Это прекрасно работает, если яВойдите на сервер и дважды щелкните командный файл, но если я настроил запланированную задачу на «запуск, даже если не вошел в систему», то макрос ms-access, похоже, не запускается .... так что, похоже, доступникогда не бежал.

У кого-нибудь есть идеи?Можете ли вы сделать такой процесс, когда «не вошли»?Есть ли что-то еще, что мне нужно сделать?Я действительно застрял и мне нужно это автоматизировать.

Спасибо!

1 Ответ

1 голос
/ 07 марта 2012

Мне кажется, вы пытаетесь получить доступ к сопоставленной сетевой папке, которая недоступна.

Во многих сетях есть сценарии входа, которые отображают сетевые диски на буквы локальных дисков. Эти сценарии входа в систему не запускаются при настройке запланированной задачи на «запуск, даже если она не вошла».

Так что, если вы либо:

A ) экспортируют результаты вашего запроса в файл на подключенном сетевом диске (т. Е. N: \ MyExport.txt) или
B ) имеет одну или несколько таблиц в источнике вашего запроса, которые связаны с .mdb на подключенных сетевых дисках (т. Е. CurrentDb.Tables("MyTable").Connect = "N:\MyBackend.mdb")

тогда процесс завершится неудачей.

Если вы ожидаете увидеть сообщение об ошибке при входе в систему, вы не увидите его, потому что процесс доступа не отображается при выполнении запланированной задачи. Однако если вы зайдете в диспетчер задач, вы увидите список процессов MSACCESS.EXE.


Если это проблема, есть два возможных обходных пути:

  1. Использовать UNC-пути (то есть \\fileserver\folder\MyExport.txt вместо N:\MyExport.txt)
  2. Настройте запланированное задание для запуска пакетного файла, который:
    1. сопоставляет сетевые диски с помощью NET USE команд
    2. открывает вашу программу MS Access с соответствующими аргументами командной строки
...