Hallo Gast 35886,
wir sind hoffentlich nahe dran. ....aber es kommen 3 neue Probleme.
Bei der Auswahl der ListBox kommen falsche Werte. Es werden immer der erste Werte, je nach Anzahl der Auswahl im Array abgelegt, obwohl gar nicht selektiert.
Als Beispiel ich wähle 115,116 und 117 aus. In der MSGBOX der Sub erscheinen 111,112, 113 - Anzahl der Auswahl richtig / aber die ersten und damit falschen Datensätze der Tabelle
Nutze ich die Mehrfachauswahl, sind diese ist im Direktfenster nicht zu sehen, sondern nur der letzte Wert
Ich habe die Werte z.B. 111 und 112 ausgewählt. Nur einer wird gewertet, ein Eintrag ist leer
so sieht das dann im DFenster aus :
SELECT TBL_STAAT.KDNR FROM TBL_STAAT WHERE (((TBL_STAAT.KDNR)=""));
SELECT TBL_STAAT.KDNR FROM TBL_STAAT WHERE (((TBL_STAAT.KDNR)="112"));
Müssen wir da nicht eine Oder -Bedingung einbauen ?
Den SQL-String habe ich angepasst wg der "" - siehe Änderung.
Kopiere ich diesen direkt in die Abfrage, funktioniet sie
Der gleiche Aufruf der Abfrage mit dem Krtierium Function / Direktfenster erzeugt eine Auswertung mit leerem Ergebnis.
Sorry - würde dir gern Erfolg melden und ich hoffe, wir bekommen das hin.
Hier die angepasste Function
Function fnSTAAT(ByVal sBedingung As String) As String
Dim s As String
s = "SELECT TBL_STAAT.KDNR" & Chr(32)
s = s & "FROM TBL_STAAT" & Chr(32)
's = s & "WHERE (((TBL_STAAT.KDNR)=" & sBedingung & ";" ' so funktioniert es nicht
s = s & "WHERE (((TBL_STAAT.KDNR)=" & """" & sBedingung & """" & "));" 'geändert - funktioniert so bei direkter Nutzung in der Query
fnSTAAT = s
End Function
|