Im Normalbetrieb kann man den Navigationsbereich schnell durch einen Klick auf die Nach links-Schaltfläche oben in diesem Bereich minimieren und anschließend wieder maximieren. Das gelingt auch mit der Taste F11. Was aber, wenn man den Bereich komplett verschwinden lassen möchte – beispielsweise direkt nach dem Öffnen einer Anwendung, die man einem Kunden oder anderen Nutzern bereitstellt, die den Navigationsbereich nicht sehen sollen? Dann kommt die in diesem Beitrag vorgestellte VBA-Prozedur zum Einsatz, mit der wir den Navigationsbereich mit wenigen Zeilen aus- und wieder einblenden.
Video passend zu diesem Artikel:
Drei mögliche Zustände des Navigationsbereichs sehen wir in Bild 1. Links sehen wir den Normalzustand, in dem der Bereich sichtbar ist und die enthaltenen Elemente anzeigt. In der Mitte haben wir den Bereich durch einen Klick auf die Nach links-Schaltfläche minimiert. Das gelingt auch durch Betätigen der F11-Taste. Rechts ist der gewünschte Zustand, den wir per VBA herbeiführen wollen.

Bild 1: Verschiedene Status des Navigationsbereichs: Eingeblendet, minimiert und ausgeblendet
Um den Navigationsbereich komplett auszublenden, verwenden wir die folgende Prozedur:
Public Sub HideNavigationPane() On Error Resume Next DoCmd.SelectObject acTable, , True DoCmd.SelectObject acQuery, , True DoCmd.SelectObject acForm, , True DoCmd.SelectObject acReport, , True DoCmd.SelectObject acMacro, , True DoCmd.SelectObject acModule, , True DoCmd.RunCommand acCmdWindowHide End Sub
[
Hier verwenden wir mehrfach die DoCmd.SelectObject-Methode, um ein Objekt des angegebenen Typs im Navigationsbereich auszuwählen. Da es auch sein kann, dass diese Prozedur aufgerufen wird, während die Datenbank noch gar kein Element enthält oder das im zweiten Parameter angegebene Element nicht vorhanden ist, geben wir gar nicht erst einen Objektnamen für den zweiten Parameter an, sondern versuchen, nacheinander irgendein Objekt des angegebenen Objekttyps zu markieren. Dabei probieren wir alle Objekttypen durch, da es sein kann, dass beispielsweise alle Tabellen ausgeblendet sind oder die Datenbank keine benutzerdefinierten Tabellen enthält. Nach den Aufrufen der DoCmd.SelectObject-Methode sollte irgendein Objekt im Navigationsbereich markiert sein – und damit auch der Navigationsbereich das aktuelle Fenster der Anwendung sein.
Dies nutzen wir dann aus, indem wir die RunCommand-Methode mit dem Parameter acCmdWindowHide aufrufen und damit das aktuelle Fenster ausblenden. Wer sich wundert, dass der Name des dritten Parameters der DoCmd.SelectObject-Methode InDatabaseWindow heißt: Dies ist ein Überbleibsel aus den Zeiten, als Access seine Objekte noch im sogenannten Datenbankfenster angezeigt hat (siehe Bild 2).

Bild 2: Argumente der SelectObject-Methode
Nur für Abonnenten
Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.
Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.
So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.
Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.
Bereits Abonnent? Hier einloggen
Kostenlos & unverbindlich
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →