Access
 sql >> база данни >  >> RDS >> Access

КАК ДА:Изпълнявайте планирани задачи с Microsoft Access

Искали ли сте някога да стартирате код за достъп по автоматичен график?

Ще ви покажа как да използвате съществуващо приложение на Access, за да стартирате и излизате грациозно, когато бъде стартирано чрез Task Scheduler, като същевременно представяте удобен потребителски интерфейс, когато се стартира от краен потребител.

Ключът към това да работи е /cmd флаг.

Подаване на аргументи от командния ред за достъп

За да предадете аргумент от командния ред за достъп, използвате /cmd Аргумент на командния ред при стартиране на вашето приложение:

Указва, че това, което следва в командния ред, е стойността, която ще бъде върната от Командата функция. Тази опция трябва да е последният превключвател в командния ред. Можете да използвате точка и запетая (;) като алтернатива на /cmd .

Използвайте този превключвател, за да посочите аргумент от командния ред, който може да се използва в кода на Visual Basic за приложения (VBA)

За да извлечете текста, предавате на командния ред след /cmd аргумент, използвате VBA.Command функция.

Можете да използвате тази функция при стартиране, за да пренасочите кода си за изпълнение на всяка повтаряща се задача.

Практически пример

  1. Създайте нова база данни
  2. Добавете следния код към нов стандартен модул:
Public Function Startup()
    
    If Trim(VBA.Command) = "Nightly" Then
        Shell "winver", vbNormalFocus
        Application.Quit
    End If
    MsgBox "Start up"
   
End Function
  1. Създайте нов макрос
  2. Изберете „RunCode “ от падащото меню „Добавяне на ново действие“
  3. Задайте „Име на функцията“ на Startup()
  4. Затворете и запазете макроса като „AutoExec "

Изпълнявайте като нормален потребител

За да тествате приложението като обикновен потребител, просто компактирайте и поправете базата данни.

Ще видите поле за съобщение, което казва „Стартиране.“

Изпълнение като планирана задача

За да имитирате изпълнение като планирана задача, затворете вашата база данни и я стартирайте със следната команда:

"C:\Path\To\msaccess.exe" "C:\Path\To\MyDb.accdb" /cmd Nightly

Access ще мига за кратко на екрана, след което ще видите диалоговия прозорец „За Windows“ и Access ще се затвори сам.

Някои бележки

  • AutoExec е специален макрос, който се изпълнява автоматично при стартиране
  • Въпреки че Startup() рутина не връща стойност, ние я декларираме като Function защото не можем директно да извикаме Sub от макрос в Access
  • При нормална употреба кодът на cmd прозореца се пропуска
  • Изрично извиквам Application.Quit вътре в моя блок „Nightly“, за да избегна блокирането на достъпа върху код, който изисква взаимодействие с потребителя (като кода MsgBox в моя пример)
  • Винаги извиквам Trim() около VBA.Command функция за избягване на грешки, въведени от водещи или крайни бели интервали в командния ред
  • Като алтернатива на /cmd , можете също да използвате /x превключете и му предайте името на персонализиран макрос (Не го правя, защото мразя макроси със страстта на хиляди бели горещи слънца; единствените два макроса, които използвам са Autoexec и Autokeys защото предоставят специална функционалност )

Последна бележка за планировчика на задачи и автоматизирането на други офис приложения

Ако изглежда, че задачата ви не работи, когато я настроите да се изпълнява през нощта, опитайте да превключите опцията за планирана задача на „Изпълнение само когато потребителят е влязъл в системата.

Office приложенията не са предназначени да работят в това, което Windows нарича "неинтерактивен" режим. Ако зададете насрочена задача на „Изпълнение, независимо дали потребителят е влязъл или не“, тази задача ще се изпълнява в неинтерактивен режим. Това може да причини различни проблеми, особено ако автоматизирате Excel като част от повтарящия се процес.

Най-простото решение е да заключите работната станция, вместо да излизате, и да оставите опцията, зададена на „Изпълни само когато потребителят е влязъл“.

Това може да не е практично във вашата ситуация, но е важно съображение, което трябва да знаете. Считайте, че сте предупредени:

Понастоящем Microsoft не препоръчва и не поддържа автоматизиране на приложения на Microsoft Office от ненадзорено, неинтерактивно клиентско приложение или компонент


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведение в поддържането на записи

  2. СЛУЧАЙ:ARKWARE MS ACCESS CRM

  3. Изключителен! Присъединете се към нас с нашия гост Михал Бар, мениджър на програмата Access

  4. Как да използвам конструктора на изрази в Access 2016?

  5. Използване на навигация само с клавиатура в Word, Excel и PowerPoint (Част 2:Диалогови кутии)