Wie funktioniert das neue TabControl (Multi-Line & Icons) per VBA?

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.

Kategorien:

Keine Antworten

Schreibe einen Kommentar

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