Veröffentlicht 14. März 200322 j Hallo, habe mal wieder ein Problem. Es geht darum das ich aus einem Feld (Typ : Integer) einen LIKE-Filter anwenden will. Und zwar unter ADO. Allerdings habe ich schon alles durchprobiert, also auch zum Beispiel: rs.Filter(JAHR LIKE '199*') (ohne ' gehts übrigens auch nicht !) usw. bringt aber alles nichts. Kennt sich da einer/eine aus und kann mir helfen ? Viele Grüße Rossi
14. März 200322 j Das kann ja sein, aber es klappt trotzdem nicht. Wenn ich es mit % versuche gehts auch nicht. Und das obwohl als Einträge in der Tabelle Werte von 1997 bis 2001 stehen, also sollte mir 199% alle Werte von 97 bis einschliesslich 99 liefern, aber es liefert mir keine Datensätze zurück, bzw ist RecordCount = 0. Noch weitere Ideen ? Das muss doch irgendwie gehen !
14. März 200322 j sorry aber ich steh grad etwas auf dem Schlauch.... wie bekommst du die Daten in dein RS ? vielleicht irgendwie mit select * from xxx where (jahr like '199%' ) oder auch select * from xxx where (jahr like '199_' )
14. März 200322 j Ach so... kein prob. Dim strFilter as String Dim rs as ADODB.RecordSet Set rs = new ADODB.Recordset rs.open tblName, CurrentProject.Connection strFilter = "Jahr Like '199%'" rs.Filter = strFilter debug.print rs.recordcount rs.close set rs = nothing Hoffe das hilft.... Das Feld Jahr ist vom Typ Integer und enthält Werte von 1997 bis 2001. Aber ich möchte halt auch ein Like benutzen können, geht einfach ums Know How für ein Projekt. Also für Hilfe oder sonstiges wäre ich echt dankbar. Bin schon am verzweifeln Gruss Rossi
14. März 200322 j ok hab grad ma lein wenig zu Recordsets gesucht : RstObj.Filter = "[phone] LIKE '706*'" könnte dir das helfen wenn du es auf deine Tabelle abänderst = also : rs.Filter = "[Jahr] LIKE '199*' " Greetz Panther
14. März 200322 j Also erst mal, tblname enthält den Namen der Tabelle. Sind alles ADO-Methoden (Ich hasse DAO). Filter ist ein string ohne where Klausel. Also z.b. "Essen = 3 AND Mixer < 'Alaska" Er unterstützt die meisten Funktionen. Ausserdem muss man bei Access-VBA unter Verweise noch die ActiveX Library 2.6 einbinden damit obiges funktioniert. Also ich will eigentlich nichts anderes als ein Abfrage über ein Integer-Feld ausführen. Und dabei will ich halt mal den Like-Operator verwenden. Tabelle Jahr----------------...... 1999 2001 1997 1997 1998 2001 2000 2000 rs.filter(Jahr Like *****) (***** Ich habe keine Ahnung wie ich das machen soll) soll mir dann z.b. 1999,1998,1997 liefern Alles Klar.... Hilfe, ich sitze schon fünf Stunden an dem Problem....
14. März 200322 j Klar, das ist schon mal gut, allerding ist der Recordset nach dem Filtern leer, d.h. er findet also keinen Datensatz der auf das geg. Kriterium passt. denn dann ist rs.RecordCount einfach 0 also ganz kanns das noch nicht sein
14. März 200322 j Probier doch spasseshalber mal andere Operatoren aus, vielleicht mag er LIKE bei Integerfeldern nicht... :confused: rs.Filter "Jahr > 1989 AND Jahr < 2000"
14. März 200322 j Ich würde auch mit <> arbeiten, da LIKE IMHO nicht bei Integer-Werter funktioniert <> auf jeden Fall schneller ist.
14. März 200322 j Doch es funktioniert. Ich werde es demnächst berichten. Muss noch schaffen. Habe es aber anders gelöst. Hängt wahrscheinlich an der Implementierung der Parser der FIND und FILTER Methoden. Wenn einer Lust hat kann er die mal besser schreiben. Ich machs jetzt per SQL an die JET-Engine. Danke nochmal. Gruß Rossi
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.