Herr Rossi Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crow T. Robot Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 Das Platzhalzerzeichen in SQL ist % (Prozent) nicht * (Stern). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 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 ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 Hat echt keiner mehr Ideen dazu wie man das machen könnte ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 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_' ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 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.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 siehe editiertes Posting oben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crow T. Robot Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 Probier doch spasseshalber mal andere Operatoren aus, vielleicht mag er LIKE bei Integerfeldern nicht... :confused: rs.Filter "Jahr > 1989 AND Jahr < 2000" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EHEMALIGER_IB Geschrieben 14. März 2003 Teilen Geschrieben 14. März 2003 Ich würde auch mit <> arbeiten, da LIKE IMHO nicht bei Integer-Werter funktioniert <> auf jeden Fall schneller ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr Rossi Geschrieben 14. März 2003 Autor Teilen Geschrieben 14. März 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.