Access
 sql >> Baza danych >  >> RDS >> Access

JAK:Uruchamiać zaplanowane zadania w programie Microsoft Access

Czy kiedykolwiek chciałeś uruchomić kod dostępu zgodnie z automatycznym harmonogramem?

Pokażę ci, jak korzystać z istniejącej aplikacji Access, aby płynnie uruchamiać się i zamykać po uruchomieniu za pomocą Harmonogramu zadań, jednocześnie prezentując przyjazny interfejs użytkownika po uruchomieniu przez użytkownika końcowego.

Kluczem do jego działania jest /cmd flaga.

Przekazywanie argumentów wiersza poleceń do dostępu

Aby przekazać argument wiersza poleceń w celu uzyskania dostępu, użyj /cmd argument wiersza poleceń podczas uruchamiania aplikacji:

Określa, że ​​to, co następuje w wierszu poleceń, jest wartością, która zostanie zwrócona przez Polecenie funkcjonować. Ta opcja musi być ostatnim przełącznikiem w wierszu poleceń. Możesz użyć średnika (;) jako alternatywy dla /cmd .

Użyj tego przełącznika, aby określić argument wiersza polecenia, który może być użyty w kodzie Visual Basic for Applications (VBA)

Aby pobrać tekst, który przekazujesz w wierszu poleceń, postępując zgodnie z /cmd argument, używasz VBA.Command funkcjonować.

Możesz użyć tej funkcji podczas uruchamiania, aby przekierować kod w celu wykonania dowolnego zadania cyklicznego.

Przykład praktyczny

  1. Utwórz nową bazę danych
  2. Dodaj następujący kod do nowego modułu standardowego:
Public Function Startup()
    
    If Trim(VBA.Command) = "Nightly" Then
        Shell "winver", vbNormalFocus
        Application.Quit
    End If
    MsgBox "Start up"
   
End Function
  1. Utwórz nowe makro
  2. Wybierz „RunCode " z menu "Dodaj nową akcję"
  3. Ustaw „Nazwa funkcji” na Startup()
  4. Zamknij i zapisz makro jako „AutoExec "

Uruchom jako zwykły użytkownik

Aby przetestować aplikację jako zwykły użytkownik, po prostu skompaktuj i napraw bazę danych.

Zobaczysz okno komunikatu z napisem „Uruchom”.

Uruchom jako zaplanowane zadanie

Aby naśladować działanie jako zaplanowane zadanie, zamknij bazę danych i uruchom ją za pomocą następującego polecenia:

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

Program Access zacznie migać na ekranie, a następnie zobaczysz okno dialogowe „Informacje o systemie Windows”, a program Access zamknie się.

Niektóre notatki

  • AutoExec to specjalne makro, które uruchamia się automatycznie przy starcie
  • Nawet jeśli Startup() procedura nie zwraca żadnej wartości, deklarujemy ją jako Function ponieważ nie możemy bezpośrednio wywołać Sub z makra w programie Access
  • Przy normalnym użytkowaniu kod okna cmd jest pomijany
  • Jawnie wołam Application.Quit wewnątrz mojego bloku „Nightly”, aby uniknąć zawieszania się programu Access na kodzie wymagającym interakcji użytkownika (takiego jak kod MsgBox w moim przykładzie)
  • Zawsze wołam Trim() wokół VBA.Command funkcja pozwalająca uniknąć błędów wprowadzanych przez początkowe lub końcowe białe znaki w wierszu poleceń
  • Jako alternatywa dla /cmd , możesz również użyć /x przełącz i przekaż mu nazwę niestandardowego makra (Nie robię tego, ponieważ nienawidzę makr z pasją tysiąca białych, gorących słońc; jedyne dwa makra, których kiedykolwiek używam, to Autoexec i Autokeys ponieważ zapewniają specjalną funkcjonalność )

Ostatnia uwaga na temat Harmonogramu zadań i automatyzacji innych aplikacji pakietu Office

Jeśli zadanie wydaje się nie działać po ustawieniu go na noc, spróbuj zmienić opcję zaplanowanego zadania na „Uruchom tylko wtedy, gdy użytkownik jest zalogowany”.

Aplikacje pakietu Office nie są przeznaczone do uruchamiania w trybie, który system Windows nazywa „nieinteraktywnym”. Jeśli ustawisz zaplanowane zadanie na „Uruchom bez względu na to, czy użytkownik jest zalogowany, czy nie”, to zadanie zostanie uruchomione w trybie nieinteraktywnym. Może to powodować różne problemy, zwłaszcza jeśli automatyzujesz program Excel w ramach powtarzającego się procesu.

Najprostszym rozwiązaniem jest zablokowanie stacji roboczej zamiast wylogowania się i pozostawienie opcji „Uruchom tylko, gdy użytkownik jest zalogowany”.

Może to nie być praktyczne w twojej sytuacji, ale jest to ważna kwestia, o której należy pamiętać. Uważaj się za ostrzeżonego:

Microsoft obecnie nie zaleca i nie obsługuje automatyzacji aplikacji Microsoft Office z dowolnej nienadzorowanej, nieinteraktywnej aplikacji klienckiej lub składnika


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podstawy MongoDB:konfigurowanie kontroli dostępu opartej na rolach (RBAC)

  2. Czy powinienem używać makr czy kodu VBA?

  3. Funkcje statyczne i subs

  4. Łączenie lub importowanie danych z Salesforce

  5. Czy możesz skorzystać z niestandardowej aplikacji bazodanowej?