Umschalttaste sperren mit AllowByPassKey

Unter Access können Sie einige Einstellungen vornehmen, damit der Benutzer kaum noch etwas davon sieht, dass es sich bei der Anwendung um eine Access-Anwendung handelt. Sie können beispielsweise den Navigationsbereich ausblenden oder die eingebauten Ribbon- und Backstage-Einträge mit einer benutzerdefinierten Ribbon-Definition ausblenden. Pfiffige Anwender finden allerdings schnell heraus, wie sich diese Änderungen beim Öffnen einer Datenbank blockieren lassen: durch einfaches Gedrückthalten der Umschalttaste. Also zeigen wir in diesem Beitrag noch einen Weg, wie Sie auch das noch ein wenig erschweren können. Eine wichtige Rolle spielt dabei eine Eigenschaft namens AllowByPassKey.

Das Öffnen einer Datenbankanwendung bei gedrückter Umschalttaste ist ein gängiges Mittel, um sämtliche vom Entwickler programmierten Aktionen, die beim Starten der Anwendung ausgeführt werden sollen, zu unterbinden. Unter anderem blockieren Sie die folgenden Aktionen:

  • das Öffnen des als Startformular angegebenen Formulars
  • das Ausführen des AutoExec-Makros
  • die Anwendung einer benutzerdefinierten Ribbondefinition aus der Tabelle USysRibbons, die über die Option Name des Menübands ausgewählt wurde
  • das Ausblenden des Navigationsbereichs über die Access-Optionen für die aktuelle Datenbank
  • Verwenden der Spezialtasten von Access wie beispielsweise F11 zum Anzeigen des Navigationsbereichs

Hält der Benutzer die Umschalttaste beim Öffnen gedrückt, wird die Datenbank so geöffnet, als ob all diese Änderungen nicht vorgenommen worden wären. Also wollen wir die Wirkung des Drückens der Umschalttaste unterbinden.

Wir haben in den Optionen der Beispieldatenbank die beiden Einstellungen aus Bild 1 vorgenommen. Diese sorgen dafür, dass erstens der Navigationsbereich nicht angezeigt wird und zweitens die Spezialtasten von Access nicht genutzt werden können, um beispielsweise mit F11 den Navigationsbereich doch noch zu aktivieren.

Zwei Beispiele für Optionen, die man per Umschalttaste aushebeln kann

Bild 1: Zwei Beispiele für Optionen, die man per Umschalttaste aushebeln kann

Die Eigenschaft AllowByPassKey

Es gibt eine Eigenschaft namens AllowByPassKey, welche die Funktion der Umschalttaste beim Öffnen einer Access-Anwendung erlaubt – oder auch nicht. Diese Eigenschaft wird als Element der Properties-Auflistung der aktuellen Datenbank angelegt. Dies können wir nur per VBA erledigen, weshalb wir die Prozedur aus Listing 1 angelegt haben.

Public Sub UmschalttasteErlauben(Optional bolSperren As Boolean = True)
     Dim db As DAO.Database
     Dim prp As DAO.Property
     Set db = CurrentDb
     On Error Resume Next
     Set prp = db.Properties("AllowBypassKey")
     If Err.Number = 3270 Then
         On Error GoTo 0
         Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, bolSperren)
         db.Properties.Append prp
     Else
         prp.Value = bolSperren
     End If
End Sub

Listing 1: Aktivieren oder Deaktivieren der Umschalttaste

Diese heißt UmschalttasteErlauben und erwartet einen Boolean-Wert als Parameter:

  • True: Erlaubt die Funktion der Umschalttaste beim Öffnen der Datenbankanwendung.
  • False: Sperrt die Funktion der Umschalttaste beim Öffnen der Datenbankanwendung.

Die Prozedur versucht bei deaktivierter Fehlerbehandlung, auf ein Element namens AllowByPassKey der Auflistung Properties für das mit CurrentDb ermittelte Database-Objekt der aktuellen Datenbank zuzugreifen. Löst dies einen Fehler aus, ist das Element noch nicht vorhanden und wir legen es mit der CreateProperty-Methode an. Diese erhält den Namen der zu erstellenden Property, den Datentyp (dbBoolean) und den Wert aus dem Prozedurparameter bolSperren als Parameter. Anschließend wird die Property noch mit der Append-Methode an die Liste der vorhandenen Properties angehängt.

Ist die Property bereits vorhanden, löst der Zugriff darauf keinen Fehler aus und wir können ihr einfach den gewünschten Wert zuweisen.

Der Aufruf zum Verhindern der Funktion der Umschalttaste, abgesetzt beispielsweise im Direktbereich, lautet:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar