Suchfunktion

hallo,

ich habe ein formular mit einem textfeld und einer listbox. ich will nun erreichen, dass sobald der benutzer einen namen in das textfeld eingibt, die listbox alle möglichen namen anzeigt.
also so, dass wenn der benutzer zuerst den buchstaben M eingeibt, schon alle namen mit M in der listbox angezeigt werden. gibt der benutzer als zweiten buchsaben ein A ein, so sollen alle namen angezeigt werden sie mit MA beginnen usw.

wie muss ich das machen??

axl

du führst nach jedem zeichen eine abfrage auf die datenbank aus

und sagst

select * from tabelle where name like ‚%" & suchbegriff & "%‘

gruß

rasta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du führst nach jedem zeichen eine abfrage auf die datenbank
aus

und sagst

select * from tabelle where name like ‚%" & suchbegriff & "%‘

hallo,

aber wie erreich ich es das diese abfrage nach jeder zeicheneingabe erfolgt??

axl

Hi Axl.

Rasta’s Code ist genau Richtig. Nur sein Select durchsucht einen Teil des Feldinhaltes, d.h. wenn du in deiner Box ein H als ersten Buchstaben eingibst, kommen auch Namen wie z.b. Kahn in deine Liste.
Falls du nur nach dem Anfang des Feldes suchen willst, lasse einfach das erste ‚%‘ weg.

select * from tabelle where name like ‚" & suchbegriff & "%‘

Gruss,
B0mmel

Beim Change-Event der Box musst du die Suchabfrage erneut starten und den Inhalt der Listbox neu füllen.
Das Change-Event wird bei jeder Änderung innerhalb der Box ausgelöst.

Kann natürlich dadurch passieren das es, besonders bei vielen Kundendaten, ein wenig Schleppend wirkt. :smile:

Gruss,
Bommel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo Bpmmel,

also ich habe das jetz mal so gemacht wie deu es empfohlen hast. aber leider taucht in meiner listbox immer noch nix auf. kann sein das ich die if-anweisung falsch hab.
also bei mir schaut das jetz wie folgt aus.
beim change-event im textfeld passiertfolgendes:


Set RS = DB.OpenRecordSet(„Select * from DVD where Titel like '“ & Textfeld.Text & " % '")

If Not RS.EOF then
listbox.AddItem RS.Titel
RS.MoveNext
End If

hab ich da jetz was falsch gemacht oder etwas übersehen??

danke
axl