VBA für Access

Das Objektmodell von Access: Listenfelder mit Mehrfachauswahl

∅ 3.4 / 6 Bewertungen

Listenfelder mit Mehrfachauswahl

Wie kann ich Listenfelder erstellen, bei denen der Benutzer mehrere Elemente auswählen kann? Wie kann ich solche Felder abfragen?

Die ausgewählten Elemente einer Mehrfachauswahl untersuchen

SubAlleAusgewähltenDaten()
Dim frm As Form, ctl As Control
Dim var Element As Variant, intI As Integer
Set frm = Forms!Kontakte
Set ct l= frm!Names
For Each varElement In ctl.ItemsSelected
For intI= 0 To ctl.ColumnCount-1
Debug.Printctl.Column(intI, VarElement)
NextintI
Debug.Print
Next varElement
End Sub

Listenfelder mit Mehrfachauswahl werden erstellt, indem die Eigenschaft MultiSelect auf Einzeln oder Erweitert gesetzt wird.

Bei der Einstellung Einzeln kann der Benutzer die Elemente mit der Maus durch einen einfachen Klick auswählen. Bei der Einstellung Erweitert muss der Benutzer mit UMSCHALT- und STRG-Taste arbeiten, um mehrere Elemente auszuwählen. Dies fällt Einsteigern oft schwer, mit ein wenig Übung sollte die nötige Fingerfertigkeit jedoch ohne Probleme erlernbar sein.

Um festzustellen, welche Elemente ausgewählt wurden, verwendet man entweder die Methode Selected (Zeilenindex). Der Zeilenindex beginnt bei 0 zu wählen. Diese Methode gibt True oder False zurück. Um beispielsweise das fünfte Element eines Steuerelements "Listbox" zu überprüfen, schreibt man: Me!Listbox.Selected(4) = True.

Die zweite Methode besteht in der Auflistung ItemsSelected. Diese enthält neben der Eigenschaft Count die Zeilennummern aller ausgewählten Elemente, die auf diese Weise leicht behandelt werden können, z. B.:

Set ctl = frm!Namen 
For Each varElement In ctl.ItemsSelected 
 Debug.Print ctl.ItemData(varElement)
Next varElement

Beachten Sie, dass Listenfelder mit Mehrfachauswahl niemals gebundene Steuerelemente sein können.