Wie steuere ich die Anzeige von Navigationsformularen in der neuen BenutzeroberflÀche per VBA?

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:

  1. Navigationssteuerelement mit Registerkarten, z. B. „Start“, „Kunden“, „Projekte“
  2. 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

Kategorien:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert