Tastensteuerung abfangen

Nicht immer sind die Steuerungen, die Access über zahlreiche Tasten und Tastenkombinationen ermöglicht, auch wirklich erwünscht. Anwender kennen diese oft gar nicht und sind dann manchmal über Reaktionen der Oberfläche irritiert, die durch versehentliche Anschläge zustande kamen. Unter Umständen kann es auch zu Datenverlust kommen. Wir stellen dar, wie Sie dem Problem mit unterschiedlichen Ansätzen beikommen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1603_Tastenhandling.accdb

Spezialtasten

Wie viele andere Applikationen auch kennt Access eine große Zahl von Tastenkombinationen, über die sich die Oberfläche steuern lässt. Eigentlich ist das sinnvoll, da der ständige Wechsel zwischen Tastatur und Maus nicht unbedingt komfortabel ist. Voraussetzung aber ist, dass Sie diese Tastenkombinationen auch kennen.

Aus der Hilfe zu Access wurde über einige Umwege die Tabelle AccessTasten der Beispieldatenbank gewonnen, welche alle aktuell möglichen Tastenfunktionen auflistet (siehe Bild 1). Der Umfang ist mit etwa 450 Funktionen erschlagend. Je nach Kontext kommen bestimmte Kombinationen mehrfach vor. ALT+F4 etwa schließt in der Regel ein Fenster oder Formular, beendet aber auch Access selbst, wenn gerade kein Fenster offen ist. Ist das erwünscht Wenn der Anwender sich auskennt, dann schon, andernfalls ist es eine Gefahr.

Tabelle AccessTasten mit allen unter Access möglichen Tastenkombinationen

Bild 1: Tabelle AccessTasten mit allen unter Access möglichen Tastenkombinationen

Blättern Sie ruhig einmal die Tabelle durch. Sie finden in ihr garantiert viele Kombinationen, die Sie noch nicht kannten, oder über deren Funktion Sie in einem anderen Kontext erstaunt sein werden. Dem Benutzer Ihrer Datenbank werden diese Funktionen sicherlich erst recht unbekannt sein. Sie sind deshalb auf der sicheren Seite, wenn Sie die Spezialtasten von Access in den Optionen der Datenbank abstellen. Sie finden die zugehörige Checkbox in den Optionen unter Aktuelle Datenbank und dem Eintrag Access Spezialtasten verwenden, wie in Bild 2.

Spezialtasten in den Optionen der Datenbank ein- und ausschalten

Bild 2: Spezialtasten in den Optionen der Datenbank ein- und ausschalten

Entfernen Sie hier besser das Häkchen, wenn die Datenbank auch von anderen Benutzern verwendet werden soll.

Leider ist keinesfalls klar definiert, was Microsoft unter Spezialtasten versteht. Sehr viele der Kombinationen in der Tabelle funktionieren auch dann noch, wenn die Option deaktiviert ist. Aus diesem Grund müssen wir uns Gedanken machen, welche zusätzlichen Lösungen zum Umgang mit Tastenereignissen infrage kommen.

Autokeys

Dass ein mit AutoExec benanntes Makro von Access unmittelbar nach dem öffnen einer Datenbank ausgeführt wird, wissen Sie wahrscheinlich. Das zweite automatisch ausgeführte nennt sich AutoKeys. So vorhanden liest Access die dort definierten Tasten und Tastenkombinationen sofort ein und belegt diese mit den von ihnen bestimmten Aktionen. Die eingebauten Funktionen werden so außer Kraft gesetzt.

Das Thema wurde bereits in der Ausgabe 09/2012 von Access Basics ausführlicher dargestellt. Lesen Sie sich dort ein, wenn Sie über die Anlage des Makros mehr erfahren möchten. An dieser Stelle zeigen wir Ihnen am Beispiel von Bild 3, wie unerwünschte Tasturereignisse mit dem AutoKeys-Makro abgefangen werden können.

Beispiel eines kurzen Autokeys-Makros

Bild 3: Beispiel eines kurzen Autokeys-Makros

Grundsätzlich muss hier für eine Taste oder eine Tastenkombination eine Aktion angegeben werden. Ohne diese ergibt eine Makrozeile ja keinen Sinn. Was aber mit den unerwünschten Tasten anfangen, damit gar nichts passiert Am geeignetsten dafür ist die Aktion Kommentar. In der untersten Zeile finden Sie die Angabe von ^{P}, was im AutoKeys-Dialekt der Kombination Strg + P entspricht. Diese Kombination führt zum Drucken des aktuell angezeigten Objekts. Wäre das ein Formular mit Tausenden von Datensätzen, so würde diese Aktion wohl eher zum Unmut des Anwenders führen, falls sie versehentlich ausgelöst worden wäre. Also ist als Reaktion auf dieses Tastenereignis ein Kommentar mit der Beschreibung Drucken unterbinden eingefügt, der dann in grüner Schrift erscheint. Ausgeführt wird demnach bei Strg + P lediglich der Kommentar – also gar nichts!

ähnlich wird mit Strg + G verfahren, was üblicherweise den VBA-Editor öffnet. Auch das will man in produktiver Umgebung sicher nicht haben, wobei hier allerdings auch das Abschalten der Spezialtasten in den Optionen der Datenbank greifen würde.

Anstelle des kompletten Deaktivierens einer Tastenkombination über eine Kommentar-Aktion können Sie aber auch eigene Funktionen aufrufen lassen. Die Tasten F9 bis F12 im Beispiel etwa rufen alle die Funktion fuGlobalKey auf, wobei jeweils ein anderer Parameter übergeben wird. Diese Funktion muss öffentlich in einem Modul Ihrer Datenbank vorhanden sein. In der Beispieldatenbank finden Sie diese im Modul mdlGlobalKeys. Listing 1 verdeutlicht die Routine.

Public Function fuGlobalKey(ByVal sKey As String)
     On Error Resume Next
     Select Case sKey
     Case "F11"
         DoCmd.OpenForm "frmTastatur"
     Case "F12"
         DoCmd.OpenForm "frmAdressen"
     Case "F10"
         DoCmd.OpenForm "frmIntro"
     Case "F9"
         DoCmd.Close acForm, Screen.ActiveForm.Name
     Case "STRG-P"
         If MsgBox("Möchten Sie das Objekt drucken", vbYesNo) = vbYes Then
             DoCmd.PrintOut acPrintAll
         End If
     End Select
End Function

Listing 1: Abfangen der Tastenereignisse über die Funktion fuGlobalKey

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar