Benutzung auf eigene Gefahr ! |
Beschreibung |
Holt die markierten Einträge aus einem einspaltigen Listenfeld. Auf Wunsch werden diese auch gelöscht. |
VBA-Quelltext |
Public Function ListenFeldHolen(ListenFeld As ListBox, Optional Löschen) Dim Nr As Byte, PosA As Integer, PosE As Integer, ListenInhalt As String If IsMissing(Löschen) Then Löschen = False Else If TypeName(Löschen) <> "Boolean" Then ListenFeldHolen = CVErr(0) Exit Function End If End If ' Nur einspaltige Listenfelder zulassen If ListenFeld.ColumnCount <> 1 Then ListenFeldHolen = CVErr(0) Exit Function ElseIf ListenFeld.ListCount = 0 Then Exit Function End If ListenInhalt = ";" & Nz(ListenFeld.RowSource) PosA = 1 For Nr = 0 To ListenFeld.ListCount - 1 PosE = PosA + Len(ListenFeld.Column(0, Nr)) + 3 If ListenFeld.Selected(Nr) = True Then ListenFeldHolen = ListenFeldHolen & ";""" & ListenFeld.Column(0, Nr) & """" If Löschen = True Then ListenInhalt = Left(ListenInhalt, PosA - 1) & Mid(ListenInhalt, PosE) Else PosA = PosE End If Else: PosA = PosE End If Next Nr If Left(ListenFeldHolen, 1) = ";" Then ListenFeldHolen = Mid(ListenFeldHolen, 2) If Löschen = True Then If Left(ListenInhalt, 1) = ";" Then ListenInhalt = Mid(ListenInhalt, 2) If Right(ListenInhalt, 1) = ";" Then ListenInhalt = Left(ListenInhalt, Len(ListenInhalt) - 1) ListenFeld.RowSource = ListenInhalt End If End Function |
Argumente der Funktion/Prozedur |
|
Rückgabewert |
String, der die markierten Einträge enthält. Die einzelnen Einträge sind durch ; getrennt, so daß der Rückgabewert sofort an die RowSource-Eigenschaft eines Listenfeldes zurückgegeben werden kann. |
Anwendungsgebiete, Fehler und Warnungen |
Nur für einspaltige, ungebundene Listenfelder. Fürf die Mehrfachauswahl und für die Ereigniseigenschaft OnClick muß die Multi-Select-Eigenschaft korrekt eingestellt sein. |