Suche in Datenbank - VB6

Hallo Wissende,

ich möchte in VB6 eine DAO-Datenbank durchsuchen.
Normal geht das ja z.B. mit Tabelle.Seek „=“ „Peter“, aber dann werden ja nur Datensätze gefunden die wirklich gleich dem Suchwort sind, oder damit anfangen.

Jetzt meine Frage: Wie kann ich so suchen, dass auch Datensätze gefunden werden, die im suchenden Feld „Hallo Peter“ stehen haben, wenn ich nach „Peter“ suche?

Oder optional: Gibt es einfach eine Funktion um zu gucken ob ein bestimmtes Wort in einem String vorhanden ist, dann gehe ich einfach jeden Datensatz mit ner While-Schleife durch.

Sonst bleibt mir wohl nur die Möglichkeit selbst eine Funktion dafür zu schreiben, aber das macht es bestimmt langsamer.

Ich hoffe ich habe mir halbwegs verständlich ausgedrückt und bekomme Hilfe

Danke und Gruß Simon

Hallo,

Jetzt meine Frage: Wie kann ich so suchen, dass auch
Datensätze gefunden werden, die im suchenden Feld „Hallo
Peter“ stehen haben, wenn ich nach „Peter“ suche?

In SQL heißt das ‚LIKE‘. Mit DAO sieht das etwa so aus:

 su = "Wert LIKE '\*Test\*'"
 Data1.Recordset.FindFirst su

(ungetestet, sollte aber so oder ähnlich gehen.) Markiere doch einfach ‚FindFirst‘ und tipp ‚F1‘, dann geht die Stelle in der Onlinehilfe auf.

Oder optional: Gibt es einfach eine Funktion um zu gucken ob
ein bestimmtes Wort in einem String vorhanden ist, dann gehe
ich einfach jeden Datensatz mit ner While-Schleife durch.

Position = Insr(Text, Suchstring)

Liefert Dir die Position des zu suchenden Strings im Text, wenn der Suchsting nicht enthalten ist, bekommst Du eine ‚0‘.

Gruß, Rainer

Hi Rainer,

riesen Dank für deine schnelle und gute Hilfe, ich werde es direkt ausprobieren und melde mich gegebenenfalls.

Danke, Simon

Hallo,

su = „Wert LIKE ‚*Test*‘“
Data1.Recordset.FindFirst su

Hierraus konnte ich leider nicht ganz schlau werden, aber egal!

Position = Insr(Text, Suchstring)

Liefert Dir die Position des zu suchenden Strings im Text,
wenn der Suchsting nicht enthalten ist, bekommst Du eine ‚0‘.

Das werde ich wohl nehmen, nur das du einen kleinen Tippfehler drin hattest:

Position = InStr(Text, Suchstring)

Danke, Simon

Hallo Simon,

su = „Wert LIKE ‚*Test*‘“
Data1.Recordset.FindFirst su

Hierraus konnte ich leider nicht ganz schlau werden, aber
egal!

Inzwischen habe ich mal in die Hilfe zu FindFirst gesehen …

Für eine bessere Leistungsfähigkeit sollten die Kriterien entweder in 
der Form "Feld = Wert" verwendet werden, wobei Feld ein indiziertes 
Feld in der zugrunde liegenden Basistabelle ist, oder in der Form 
"Feld LIKE Präfix", wobei Feld ein indiziertes Feld in der 
zugrundeliegenden Basistabelle ist und Präfix ein Präfix einer 
Suchzeichenfolge ist (z.B. "ART\*").

Mit ‚*Test*‘ wird alles gefunden, ws irgendwo in der Mitte das Wort ‚Test‘ enthält, egal was davor oder danach steht.

Position = Insr(Text, Suchstring)

Liefert Dir die Position des zu suchenden Strings im Text,
wenn der Suchsting nicht enthalten ist, bekommst Du eine ‚0‘.

Das werde ich wohl nehmen, nur das du einen kleinen Tippfehler
drin hattest:

Position = InStr(Text, Suchstring)

ähmmmm, sorry. :smile: meine Notebooktastatur. Ich muß das Ding wirklich mal in Ordnung bringen lassen.

Gruß, Rainer

Hallo Rainer,

Für eine bessere Leistungsfähigkeit sollten die Kriterien
entweder in
der Form „Feld = Wert“ verwendet werden, wobei Feld ein
indiziertes
Feld in der zugrunde liegenden Basistabelle ist, oder in der
Form
„Feld LIKE Präfix“, wobei Feld ein indiziertes Feld in der
zugrundeliegenden Basistabelle ist und Präfix ein Präfix einer
Suchzeichenfolge ist (z.B. „ART*“).

Mhmm ich bin nicht so der Profi, darum schwebt gerade ein großes Fragezeichen über meinem Kopf :smile:
Obwohl es wohl nicht der beste Code ist, werde ich wohl die InString-Funktion verweden, da es auch alles folgende einfacher macht. Trotzdem vielen Dank für deine Mühe!

ähmmmm, sorry. :smile: meine Notebooktastatur. Ich muß das Ding
wirklich mal in Ordnung bringen lassen.

Kein Ding, ich wollte es nur einmal erwähnen, falls irgendjemand mal diesen Fred liest und sicht denk: Das funzt net^^

Gruß Simon