Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Wer erklärt mir folgenden VBA Schnipsel ...

Begonnen von derilzemer, Juli 28, 2017, 21:00:07

⏪ vorheriges - nächstes ⏩

derilzemer

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
Grüße und Dank im voraus
Andreas

bahasu

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
Servus

derilzemer

Hi,
danke Harald. Dann habe ich dazu endlich mal die Erklärung.
Gruß Andreas
Grüße und Dank im voraus
Andreas