Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: derilzemer am Juli 28, 2017, 21:00:07

Titel: Wer erklärt mir folgenden VBA Schnipsel ...
Beitrag von: derilzemer am Juli 28, 2017, 21:00:07
Hallo,
kann mir netterweise jemand folgende VBA Zeile erklären, welche als Ereignis Nach Aktualisierung an einem Kombifeld hängt:
Private Sub lstKarten_AfterUpdate()
    Dim strKarten As String
    Dim itm As Variant
    If Me.lstKarten.ItemsSelected.count > 0 Then
        ' ausgewählte Karten anzeigen
        For Each itm In lstKarten.ItemsSelected
            strKarten = strKarten & "," & Me.lstKarten.ItemData(itm)
        Next
        Me.ufKarten.Form.Filter = "SpielID in (" & Mid(strKarten, 2) & ")"
        Me.ufKarten.Form.FilterOn = True
    Else
        ' leeres Ufo anzeigen
        Me.ufKarten.Form.Filter = "False"
        Me.ufKarten.Form.FilterOn = True
    End If
End Sub


Es geht mir in erster Linie um diesen Part
For Each itm In lstKarten.ItemsSelected
            strKarten = strKarten & "," & Me.lstKarten.ItemData(itm)
        Next
        Me.ufKarten.Form.Filter = "SpielID in (" & Mid(strKarten, 2) & ")"
        Me.ufKarten.Form.FilterOn = True


Damit komme ich nicht klar, versteh ihn nicht. Danke für die Mühe und die Hilfe.

Gruß Andreas
Titel: Re: Wer erklärt mir folgenden VBA Schnipsel ...
Beitrag von: bahasu am Juli 28, 2017, 21:06:17
Hi,

anbei ein Erklärungsversuch:
In der for-Schleife werden die von Dir selektierten Listeneinträge "herausgepickt" und zu einer durch Komma getrennten Liste in der Variablen strKarten zusammengestellt. Diese wird zum Filtern eingesetzt.

"Mid(strKarten, 2)": Damit wird das Komma vom ersten Schleifendurchlauf in dieser Liste entfernt.

Harald
Titel: Re: Wer erklärt mir folgenden VBA Schnipsel ...
Beitrag von: derilzemer am Juli 28, 2017, 21:12:52
Hi,
danke Harald. Dann habe ich dazu endlich mal die Erklärung.
Gruß Andreas