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.
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