Microsoft Access bietet seit Version 2010 die Möglichkeit, sogenannte Navigationsformulare als moderne BenutzeroberflĂ€che zu nutzen. Damit kannst Du Deine Anwendung strukturieren wie ein klassisches MenĂŒsystem oder eine Registerkarten-App – und zwar ohne zusĂ€tzlichen Code. Diese Formulare sind besonders bei benutzerfreundlichen Anwendungen beliebt, da sie dem Nutzer ein aufgerĂ€umtes, app-Ă€hnliches Look & Feel geben.
Gerade in gröĂeren Anwendungen mit verschiedenen Benutzerrollen oder Startbedingungen möchtest Du das Verhalten der NavigationsoberflĂ€che oft dynamisch per VBA steuern: Welcher Tab wird angezeigt? Welche Seite ist standardmĂ€Ăig aktiv? Kann der Nutzer zwischen Registerkarten wechseln? Wird der Navigationsteil ganz ausgeblendet?
In diesem Beitrag zeige ich Dir, wie Du mit gezieltem VBA die Anzeige und Steuerung von Navigationsformularen beeinflusst – inklusive Best Practices fĂŒr moderne OberflĂ€chenlogik.
Was ist ein Navigationsformular?
Ein Navigationsformular in Access ist ein Containerformular, das sich aus zwei Hauptbereichen zusammensetzt:
- Navigationssteuerelement mit Registerkarten, z. B. „Start“, „Kunden“, „Projekte“
- Detailbereich, in dem jeweils ein Unterformular eingeblendet wird
Die Registerkarten sind optisch ansprechend, ermöglichen einfache Navigation und unterstĂŒtzen verschachtelte Navigationsebenen.
Szenarien fĂŒr die Steuerung per VBA
- Du möchtest beim Start automatisch auf eine bestimmte Ansicht springen
- Du möchtest Navigationsseiten je nach Rolle oder Berechtigung ein-/ausblenden
- Du willst das Steuerelement im Formular aktiv verÀndern oder manipulieren
- Du möchtest die Auswahl einer bestimmten Seite erzwingen oder unterbinden
Beispiel: Seite gezielt auswÀhlen beim Formularstart
Access erlaubt es, beim Ăffnen des Navigationsformulars per VBA eine bestimmte Seite auszuwĂ€hlen – das ist besonders nĂŒtzlich, wenn der Nutzer z. B. zuletzt in einem bestimmten Bereich war oder abhĂ€ngig vom Kontext auf einen bestimmten Tab geleitet werden soll.
Private Sub Form_Load()
Call WechsleNavigationSeite("nav_Kunden") ' Name des Navigationsbuttons
End Sub
Public Sub WechsleNavigationSeite(btnName As String)
On Error Resume Next
Me.NavigationControl.Value = Me.Controls(btnName).Tag
End Sub
Hinweis:
Die Eigenschaft .Tag
der Steuerelemente enthĂ€lt intern den Verweis auf das zu ladende Unterformular. Deshalb wird hierĂŒber die Auswahl gesteuert.
Beispiel: Navigation je nach Benutzerrolle anpassen
Private Sub Form_Load()
Select Case CurrentUser
Case "admin"
' Admin sieht alle Seiten
Case "mitarbeiter"
' Nur bestimmte Seiten sichtbar
Me!nav_Statistik.Visible = False
Me!nav_Einstellungen.Visible = False
Case "gast"
Me!nav_Projekte.Visible = False
Me!nav_Kunden.Visible = False
Call WechsleNavigationSeite("nav_Uebersicht")
End Select
End Sub
Das funktioniert besonders gut, wenn Du Benutzer und Rollen zentral steuerst – z. B. ĂŒber eine Benutzertabelle.
Beispiel: Navigationsbereich komplett ausblenden (z. B. fĂŒr PrĂ€sentation)
Private Sub NavigationControl_Enter()
' Optional Navigation deaktivieren
Me.NavigationControl.Locked = True
End Sub
Oder Du blendest das ganze Navigationssteuerelement aus:
Me.NavigationControl.Visible = False
Und steuerst die Anzeige nur ĂŒber eigene Buttons und Makros.
Beispiel: Unterformular direkt im Code setzen (ohne Navigation klicken)
Private Sub WechsleZuFormular(formName As String)
Me.NavigationSubform.SourceObject = formName
End Sub
Das ist nĂŒtzlich, wenn Du unabhĂ€ngig von der Navigation ein Formular laden möchtest – z. B. bei Doppelklick in einer Ăbersicht.
Bonus: Name des aktiven Formulars ermitteln
Public Function AktiveSeite() As String
AktiveSeite = Me.NavigationSubform.SourceObject
End Function
Oder um zu prĂŒfen, ob eine bestimmte Seite aktiv ist:
If Me.NavigationSubform.SourceObject = "frm_Kunden" Then
MsgBox "Du bist gerade im Kundenbereich"
End If
Design-Tipp: Navigation optisch modernisieren
Ein paar Ideen, wie Du Navigationsformulare zeitgemÀà gestaltest:
- Nutze kurze Titel und Icons auf den Navigationsbuttons
- Halte die Navigation links (statt oben) fĂŒr mehr Platz
- Passe Schrift, Farbe und Hover-Effekte per Theme an
- FĂŒge eine Suchfunktion direkt in das Navigationsformular ein
- Kombiniere Navigation mit Benutzer-Avatar, Logout und Info-Panel
Fazit
Navigationsformulare in Access sind ein starkes Werkzeug, um Deinen Benutzer:innen eine moderne OberflĂ€che zu bieten – vergleichbar mit mobilen oder webbasierten Apps. Mit ein wenig VBA-Code lĂ€sst sich das Verhalten der Navigation gezielt steuern, individualisieren und an Benutzerrollen anpassen.
Ob Du einen bestimmten Bereich vorauswĂ€hlen, die Sichtbarkeit von Tabs verĂ€ndern oder die Navigation ganz deaktivieren willst – VBA gibt Dir dafĂŒr volle Kontrolle.
Du möchtest eine professionelle Access-OberflĂ€che entwickeln oder bestehende Navigation modernisieren? Dann sprich mich gern an – ich unterstĂŒtze Dich bei der Umsetzung.
đ DatenschĂ€fer – Auswertung, Analyse und Automatisierung fĂŒr KMU im Norden
đ§ Kontakt ĂŒber sesoft.de | đ± Access · VBA · UI/UX · Navigation · Power Platform
Keine Antworten