Einzelne Listboxspalten ausblenden (VBA)

Neuling001, Samstag, 30.05.2020, 10:46 (vor 66 Tagen)

Hallo zusammen!
ich weiß nicht mehr, was ich noch tun könnte.
In eine ungebundene Listbox werden in 7 Spalten inhalte von DB-Feldern aufgelistet.
Nun wollte ich, dass ich über mehrere Checkboxes die eine oder andere Spalte ein, bzw. ausblenden kann (bis auf die Erste) um die Informationen selektieren zu können.
Weder mit Listbox.ColumnHidden, noch mit Listbox.ColumnWidth hatte ich erfolg. Auch ein anschließendes Listbox.Requery brachte den erhofften Erfolg.
Die Hilfe von VBA ist ja nicht gerade förderlich.
Kann mir jemand dazu helfen?
Danke

Einzelne Listboxspalten ausblenden

Martin Asal @, Montag, 01.06.2020, 09:32 (vor 64 Tagen) @ Neuling001

Hi,

was du brauchst, ist nicht Listbox.ColumnWidth, sondern Listbox.ColumnWidths ;-)

Die Breiten (Plural!) der einzelnen Spalten werden ja in der Entwurfsansicht des Formulars mit der Eigenschaft "Spaltenbreiten" bestimmt. Das ist ein String, der ungefähr so aussehen kann:

4cm;3cm;2cm;1cm;3cm;2cm;1cm

Eine einzelne Spalte kannst du ganz einfach ausblenden, indem du die Breite auf "0cm" setzt. Du könntest also auf dem Formular Umschaltflächen die den String manipulieren. Würde es nur um eine einzige Spalte gehen, wäre das hier die Lösung:

Private Sub Umschaltfläche_AfterUpdate()
If Me.Umschaltfläche = True Then
    Me.Liste.ColumnWidths = "4cm;3cm;2cm"
Else
    Me.Liste.ColumnWidths = "4cm;0cm;2cm"
End If
End Sub

In deinem Fall wird es minimal aufwendiger, weil du sieben Umschaltflächen brauchst, und wenn eine davon gedrückt wird, musst du jeweils den aktuellen Status aller sieben Umschaltflächen abfragen. Aber das solltest du hinbekommen :-)

Martin

Einzelne Listboxspalten ausblenden

Neuling001, Dienstag, 02.06.2020, 21:13 (vor 63 Tagen) @ Martin Asal

MEIN GOTT!
Nur EIN Buchstabe!
Vielen Dank für den Tip!

RSS-Feed dieser Diskussion
powered by my little forum