Beitrag aus SmartTools Access Weekly
Makro automatisch zeitgesteuert ausführen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Einige Tabellen in unserer Access-Datenbank müssen in regelmäßigen Abständen aktualisiert werden. Die manuelle Ausführung von Aktualisierungsabfragen ist zeitraubend und wird natürlich auch häufig vergessen. Wir würden den Vorgang daher gerne automatisieren. Ich habe keine entsprechende Option gefunden, aber gibt es eventuell eine möglichst einfache Möglichkeit, ein Makro zeitgesteuert in der Datenbank ablaufen zu lassen?
H. Gregor
ANTWORT Verwenden Sie dazu ein Formular und den Zeitgeber für eine zeitgesteuerte Ausführung zum Beispiel mit den folgenden Einstellungen:
- Zeitgeberintervall: 60000
- Bei Zeitgeber: [Ereignisprozedur]
In der Ereignisprozedur lassen Sie folgende Anweisungen ausführen:
Private Sub Form_Timer()
DoEvents
If Format(Now, "hh:mm") = "22:00" Then
DoCmd.RunMacro "MakroName"
'Doppelte Ausführung verhindern
While Format(Now, "hh:mm") <= "22:01"
DoEvents
Wend
End If
End Sub
Mit "Zeitgeberintervall = 60000" wird eine Ausführung der Ereignisprozedur alle 60 Sekunden festgelegt. Dann prüft die Ereignisprozedur, ob der gewünschte Zeitpunkt, hier 22:00 Uhr erreicht ist. Ist das der Fall, wird das Makro "MakroName" ausgeführt und anschließend zur Vermeidung einer Doppelausführung bis 22:01 Uhr gewartet.