PDA

Vollständige Version anzeigen : Abfrage mittels Listenfeld filtern


quarx--;-))--
26.09.2005, 09:45
Hallo,

ich habe eine Abfrage die ich mittels eines Listenfelds für die Ausgabe in einem UF filtern möchte. Folgenden Code wende ich dazu an:

Dim krit As String
Dim sql As String
Dim node As String

krit = ""
sql = ""
node = ""

For Each itm In Me!node_list.ItemsSelected
pro = pro & ",'" & Me!node_list.ItemData(itm) & "'"
Next itm
If pro <> "" Then krit = krit & " AND Platform LIKE (" & Mid(pro, 2) & ")"
sql = "SELECT * FROM [qry_projectwork_report1]"
If krit <> "" Then sql = sql & "WHERE " & Mid(krit, 5)

Me![rep_projects].Form.RecordSource = sql


Solange ich nur einen Wert aus dem Listenfeld wähle klappt alles
super. Wenn ich zwei oder mehrere Werte aus dem Listenfeld wähle
dann streikt er. Er ist dann nicht mit dem Komma als Trennzeichen
einverstanden. Semikolon nimmt er ebensowenig wie leerzeichen. Das Listenfeld enthält Text. Hat da jemand ne Lösung?

quarx--;-))--
26.09.2005, 10:03
Hab den Fehler schon selbst gefunden. Das Like durch ein IN ersetzt
und schon klappts...

Dim krit As String
Dim sql As String
Dim node As String

krit = ""
sql = ""
node = ""

For Each itm In Me!node_list.ItemsSelected
pro = pro & ",'" & Me!node_list.ItemData(itm) & "'"
Next itm
If pro <> "" Then krit = krit & " AND Platform IN (" & Mid(pro, 2) & ")"
sql = "SELECT * FROM [qry_projectwork_report1]"
If krit <> "" Then sql = sql & "WHERE " & Mid(krit, 5)

Me![rep_projects].Form.RecordSource = sql