Navigationsbereich per VBA ein- und ausblenden

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

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:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

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

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

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar