Navigationsbereich per VBA ein- und ausblenden

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.

Verschiedene Status des Navigationsbereichs: Eingeblendet, minimiert und ausgeblendet

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

Argumente der SelectObject-Methode

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 →

Schreibe einen Kommentar