Das Objektmodell von Access
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.
Dies ist eine Leseprobe
Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!
Auf VBA für MS Access erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.
Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.
Ich bin bereits Mitglied