Beitrag aus SmartTools Access Weekly
Status zur Ausführung einer Abfrage anzeigen
Access 365 2021 2019 2016 2013 2010
FRAGE In einem Formular rufe ich über eine Schaltfläche nacheinander mehrere Abfragen per DoCmd.OpenQuery auf. In einem Bezeichnungsfeld gebe ich als Fortschrittsanzeige zwischendurch den Text "Abfrage '1..10' (Name) wird ausgeführt..." aus. Diese Anzeige erfolgt aber nicht korrekt. Im Feld steht der Name der ersten Abfrage und wechselt erst nach Ausführung der letzten Abfrage in "Abfrage 10 (Name) wird ausgeführt...".
T. Gruber
ANTWORT Während der Ausführung einer VBA-Routine ist die Ausführung anderer Access-Aktionen gesperrt. Dazu zählt auch die Aktualisierung von Formularinhalten. Um Access Gelegenheit dazu zu geben, müssen Sie in VBA-Routinen nach der Änderung von Formularinhalten wie beispielsweise dem Schreiben einer Statusmeldung in ein Bezeichnungsfeld die Anweisung
DoEvents
Ausführen; dann werden auch die Änderungen Ihrer Statusmeldungen korrekt angezeigt. Wenn Sie in VBA-Routinen Daten in Tabellen ändern, sollten Sie Access zusätzlich noch Gelegenheit geben, ausstehende Datentransaktionen zu erledigen. Fügen Sie dazu folgende Anweisungen beispielsweise nach dem Anlegen oder Ändern eines Datensatzes per Recordset ein:
DoEvents
DBEngine.Idle
Damit erhält Access Gelegenheit, eventuell erforderliche Bildschirmaktualisierungen und ausstehende Datentransaktionen durchzuführen.