In der Artikelreihe Access-Optionen haben wir uns alle Optionen angesehen, die Sie über den Bereich Access-Optionen von Access steuern können. Die meisten davon können Sie auch per VBA beeinflussen. In diesem Artikel schauen wir uns an, welche verschiedenen Möglichkeiten es dazu gibt und wie Sie diese einsetzen. Dabei schauen wir uns genau an, wie die verschiedenen Optionen auf die unterschiedlichen Möglichkeiten der Programmierung aufgeteilt werden.
Techniken für verschiedene Optionen
Wenn Sie sich die Optionen ansehen, die der Dialog Access-Optionen für uns bereithält, können Sie diese in zwei Kategorien aufteilen:
- Optionen, welche die Access-Anwendung selbst betreffen
- Optionen, welche die Datenbank-Anwendung betreffen
Die meisten der Einstellungen betreffen die Access-Anwendung beziehungsweise die Benutzeroberfläche. Einige jedoch wirken sich nur auf die aktuell geöffnete Datenbankanwendung aus – zum Beispiel die im Bereich Aktuelle Datenbank.
Ob sich eine Option auf die Benutzeroberfläche von Access bezieht oder auf die aktuelle Datenbank, lässt sich in manchen Fällen nur schwer festmachen. Woran wir es tatsächlich erkennen können, ist der Speicherort der jeweiligen Option.
Speicherorte für Optionen
Als Speicherort für die Optionen kommen folgende Orte in Frage:
- Die Registry. Wird eine Option in der Registry gespeichert, handelt es sich um eine auf die Access-Anwendung bezogene Option.
- Die Datenbankdatei. Speichert Access eine Option in der Datenbankdatei, handelt es sich um eine auf die Datenbankdatei bezogene Option.
Wir wollen für die folgenden Abschnitte folgende Definition festhalten:
- Access-Option: eine auf das Access-Programm bezogene Option
- Datenbank-Option: eine auf eine Access-Datenbank bezogene Option
Speicherort der Access-Optionen
Die Access-Optionen landen in der Registry von Windows, damit sie für die aktuell auf dem Rechner installierte Access-Anwendung verfügbar sind – beziehungsweise für den Benutzer, der mit Access arbeitet.
Dementsprechend befinden sich die Optionen in einem Bereich der Registry, der für den aktuellen Benutzer definiert ist – nämlich HKEY-CURRENT USER.
Die Registry von Windows öffnen Sie durch die Eingabe des Befehls RegEdit in das Suchfenster von Windows.
Im nun erscheinenden Fenster namens Registrierungs-Editor navigieren Sie nun zu folgendem Pfad:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Settings
Damit landen Sie in einem Bereich mit einigen Optionen, die jeweils in englischer Sprache angegeben sind (siehe Bild 1).
Bild 1: Der Bereich der Registry für die Access-Optionen
Was haben Sie nun von diesen Einträgen Wir wollen ja vermutlich nicht die Registry bemühen, um Access-Optionen zu ändern, die wir auch direkt in den Access-Optionen bearbeiten können.
Nein: Wir möchten lediglich wissen, wie die Eigenschaften in der Registry heißen. Wozu Weil wir sie dann per VBA bearbeiten können! Wie das Mit den Befehlen GetOption und SetOption!
Access-Optionen per VBA bearbeiten
Die Access-Optionen bearbeiten wir mit dem Befehl SetOption. Dieser erwartet zwei Parameter – den Namen der zu bearbeitenden Option und den einzustellenden Wert.
Bevor wir Änderungen an der Registry vornehmen, schauen wir uns das Gegenstück zu SetOption an, nämlich GetOption. Dieser Befehl erlaubt das Abfragen der Access-Optionen. Probieren wir das gleich einmal mit der ersten Option aus, die wir in der Registry sehen:
GetOption("Arrow Key Behavior") 0
Das klappt schon einmal, denn der Wert lautet auch in der Registry 0. Nun wissen wir allerdings leider nicht, welche Bedeutung dieser Wert hat und welche Werte es noch gibt.
Wozu Access-Optionen per VBA bearbeiten
Eine Möglichkeit, für die sie Access-Optionen per VBA lesen und schreiben können, ist das Einlesen der aktuellen Einstellungen, um diese auf eine Access-Installation auf einem anderen Rechner zu übertragen.
Wenn Sie also viele der Access-Optionen für sich angepasst haben und gelegentlich beispielsweise neue Access-Installationen auf virtuellen Maschinen nutzen, wollen Sie dort vielleicht die gewohnten Einstellungen vorfinden.
Das gelingt leicht, indem Sie diese etwa in eine Tabelle einlesen und diese Tabelle dann für die neue Installation auslesen und in die Registry eintragen.
Bei der Änderung einer Einstellung der Access-Optionen per VBA gelten die gleichen Bedingungen wie beim Einstellen direkt im Optionen-Dialog:
- Manche Einstellungen wirken sich direkt auf die Benutzeroberfläche aus, wie zum Beispiel die Option zum Anzeigen von Systemobjekten.
- Andere Einstellungen wirken sich erst nach einem Neustart von Access aus – etwa das Festlegen eines neuen Ribbons über die Option Name des Menübands.
Beispiel Systemobjekte
Access enthält einige Systemtabellen, die standardmäßig nicht im Navigationsbereich erscheinen. Für manche Zwecke sind diese jedoch interessant und daher möchten wir diese gelegentlich einblenden.
Das erledigen wir normalerweise über eine Option des Dialogs Navigationsoptionen, den wir mit einem Rechtsklick auf den Titel des Navigationsbereichs und Auswahl des Befehls Navigationsoptionen… aktivieren.
Dies können wir jedoch auch mit dem Befehl SetOption erledigen. Vorher wollen wir jedoch einmal den aktuellen Wert ermitteln, solange die Systemobjekte nicht angezeigt werden. Dazu verwenden wir den folgenden Befehl, abgesetzt im Direktbereich des VBA-Editors (zu aktivieren mit Strg + G):
GetOption("Show System Objects") 0
Der aktuelle Wert beträgt 0. Nun wollen wir herausfinden, wie der gewünschte Wert lautet. Dazu öffnen wir den Dialog Navigationsoptionen und aktivieren die Option Systemobjekte anzeigen (siehe Bild 2).
Bild 2: Aktivieren der Anzeige der Systemobjekte
Nachdem wir uns im Navigationsbereich davon überzeugt haben, dass die Systemobjekte nun tatsächlich eingeblendet wurden, fragen wir erneut den Wert der Eigenschaft per VBA ab:
GetOption("Show System Objects") -1
Dies liefert den Wert -1, also True. Wir haben es hier logischerweise mit einer Option mit dem Datentyp Boolean zu tun.
Nun üben wir einmal das Umstellen einer Access-Option mit der SetOption-Methode. Dazu verwenden wir wieder den Optionsnamen Show System Objects und geben als zweiten Parameter den Wert 0 an – wir wollen die Anzeige der Systemobjekte also wieder ausschalten:
SetOption "Show System Objects", 0
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: