News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

So verhindern Sie in Access unerwünschte Abbrüche durch die Esc-Taste

Access 365 2021 2019 2016 2013 2010

Wenn die Ausführung einer Abfrage mit Esc abgebrochen wird, kann das bei Aktualisierungs- oder Löschabfragen fatale Folgen haben, weil ein Teil der Datensätze bereits geändert oder gelöscht wurde, weitere zu aktualisierende oder zu löschende Datensätze jedoch unverändert bleiben. Lösen können Sie dieses Problem durch den Einsatz einer API-Funktion, die alle Tastatureingaben und Mausklicks blockiert und später wieder freigibt.

Public Declare Function _
       BlockInput _
       Lib "user32" _
       (ByVal fBlock As Long) As Long

Über den Parameter "fBlock" steuern Sie, ob Tastatur und Maus blockiert werden sollen "True, -1" oder ob Tastatureingaben und Mausklicks erlaubt sind (False, 0). Die Blockade gilt nur für die aktuelle Anwendung, also Access. Andere Anwendungen und Windows können weiterhin per Tastatur und Maus bedient werden!

Möchten Sie während der Ausführung einer Abfrage Maus und Tastatur blockieren und nach Abschluss der Ausführung wieder freigeben, nutzen Sie folgende Konstruktion:

BlockInput True
DoCmd.OpenQuery "Name"
BlockInput False

Damit ist sichergestellt, dass der Anwender die Abfrage nicht mit der Esc-Taste beendet oder per Maus eine Aktion ausführt, die die Abfrage abbricht.

Wichtig ist, dass in jedem Fall ein "BlockInput False" ausgeführt wird, weil Access - und auch die VBA-Entwicklungsumgebung - sich sonst nicht mehr bedienen lassen! Sie müssen Access dann über den Task-Manager schließen und neu starten! Schlimmstenfalls gehen so ungespeicherte Änderungen verloren!

So nutzen Sie zum Beispiel "BlockInput":

Debug.Print "Maus und Tastatur sind für 10 Sekunden gesperrt!"
BlockInput True
Sleep 10000
BlockInput False
Debug.Print "Maus und Tastatur sind wieder freigegeben!"
DoEvents

Die Anweisungen sperren Maus und Tastatur nach einem Hinweis im Direktbereich für 10 Sekunden.