Access hat das TabControl ĂŒberarbeitet
Mehrzeilige Reiter.
Icons auf den Tabs.
Bessere Optik â auch bei vielen Kategorien.
Aber: Per VBA istâs nicht ganz intuitiv.
Ich zeig Dir, wie ichâs nutze.
TabControl vorbereiten
Erstell ein neues Registersteuerelement
im Formular.
Setze MultiRow = Ja
, wenn Du viele Tabs brauchst.
Icons funktionieren ĂŒber das Bild
-Eigenschaftsfeld des Tabs.
Wichtig: Icons mĂŒssen als Image
-Objekte eingebettet sein.
Kein direkter Dateipfad, sondern Bild im Formular.
TabPages per VBA ansprechen
Jeder Reiter ist ein Page
-Objekt im TabControl.
Beispiel: Alle Tabs durchlaufen
Dim i As Integer
For i = 0 To Me.TabCtl0.Pages.Count - 1
Debug.Print Me.TabCtl0.Pages(i).Name
Next
Tab-Namen und Caption setzen
Du kannst Tabs dynamisch umbenennen.
Zum Beispiel beim Ăffnen oder je nach Benutzerrolle.
Me.TabCtl0.Pages("pgKunden").Caption = "KundenĂŒbersicht"
Oder:
Me.TabCtl0.Pages(2).Caption = "Details"
Multi-Line Tabs aktivieren
Im Eigenschaftsfenster:Mehrere Zeilen
auf âJaâ setzen.
Dann werden zusÀtzliche Tabs umgebrochen, nicht abgeschnitten.
Das geht nur per UI, nicht direkt per VBA.
Also: Einmal manuell setzen â dann ist gut.
Icons auf Tabs anzeigen
Du brauchst Bilder als eingebettete Image
-Objekte im Formular.
Diese kannst Du dann per VBA auf einen Tab legen.
Beispiel: Tab-Icon setzen (nur optisch mit Workaround)
Access erlaubt leider keine direkte Image
-Zuweisung fĂŒr Tabs.
Aber Du kannst Unicode-Symbole oder Emoji als Workaround nutzen:
Me.TabCtl0.Pages(0).Caption = "đ§Ÿ Rechnungen"
Me.TabCtl0.Pages(1).Caption = "đ€ Kunden"
Wenn das nicht reicht:
Eigenes Steuerelement bauen oder ĂŒber API tricksen.
Aktiven Tab auslesen
Dim aktiveSeite As String
aktiveSeite = Me.TabCtl0.Pages(Me.TabCtl0.Value).Name
MsgBox "Aktiver Tab: " & aktiveSeite
Tab bei Bedarf ausblenden
Einzelne Tabs kann man nicht direkt âunsichtbarâ machen.
Aber: Du kannst die zugehörigen Steuerelemente auf der Seite deaktivieren.
Me.pgVerwaltung.Visible = False ' funktioniert nicht!
Besser:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Parent Is Me.pgVerwaltung Then
ctl.Visible = False
End If
Next
Dynamisch zwischen Tabs wechseln
Me.TabCtl0.Value = 2 ' springt zum dritten Tab (Index 0-basiert)
Oder bei bekanntem Namen:
Dim i As Integer
For i = 0 To Me.TabCtl0.Pages.Count - 1
If Me.TabCtl0.Pages(i).Name = "pgDetails" Then
Me.TabCtl0.Value = i
Exit For
End If
Next
Mein Fazit
Das neue TabControl kann mehr â aber nicht alles.
Icons? Nur mit Workarounds.
Multi-Line? Ja, aber einmal manuell aktivieren.
Per VBA geht vieles â Du musst nur wissen, wo Access zickt.
Keine Antworten