Mai 25, 2022, 13:12:43

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Mehrfachauswahl im Listenfeld mit Bedingung (For-Next kombiniert mit If-Then)

Begonnen von Holger69, November 26, 2021, 17:38:06

⏪ vorheriges - nächstes ⏩

Holger69

Hallo Zusammen!

Das Listenfeld "lstAddParameter" ist für eine Mehrfachauswahl konzipiert.
Bei der Column(2) handelt es sich um ein Bit-Feld (0 bzw. -1)

Sie dürfen in diesem Board keine Dateianhänge sehen.

Um alle bzw. keine Daten zu markieren verwende ich
Dim N As Integer
For N = 0 To lstAddParameter.ListCount - 1
lstAddParameter.Selected(N) = TRUE '(bzw. FALSE für KEINE)
Next N


Jetzt will ich aber nur die Datensätze markieren, bei denen die Bedingung "lstAddParameter.Column(2) = -1" erfüllt ist und glaubte, in die For-Next-Schleife eine If-Then-Bedingung einbauen zu können:

Dim N As Integer

For N = 0 To lstAddParameter.ListCount - 1
    If lstAddParameter.Column(2) = -1 Then
    lstAddParameter.Selected(N) = True
    End If
Next N

Leider funktioniert es so nicht.

Kann mir jemand sagen, was daran grundsätzlich falsch ist bzw. wie ich nur die Datensätze markieren kann, bei denen die Bedingung erfüllt ist ist?

Vielen Dank im Voraus für's Nachdenken und Helfen

Gruß,
Holger


PhilS

Zitat von: Holger69 am November 26, 2021, 17:38:06Kann mir jemand sagen, was daran grundsätzlich falsch ist bzw. wie ich nur die Datensätze markieren kann, bei denen die Bedingung erfüllt ist ist?
Grundsätzlich falsch ist daran nichts. Allerdings hat die Column-Property ein zusätzliches zweites Argument für die Zeile. Wenn du das weglässt, bezieht sich Column immer auf den (ersten) ausgewählten Datensatz.


Ungeprüft:
For N = 0 To lstAddParameter.ListCount - 1
    If lstAddParameter.Column(2, N) = -1 Then
        lstAddParameter.Selected(N) = True
    End If
Next N
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor