![]() |
Access Datenbank Durchsuchen (mit Wildcards)
Hallo allerseits...
Für nen profi is die frage sicher kein problem, aber für mich stellt sie seit gestern ein unüberwindbares problem da....das sich wie folgt abzeichnet, Ich hab eine datenbank mit access, greife über ADO zu lese sie in ein DBGrid ein bis dahin kein prob, nur jetzt kommt meine hürde :) Ich würde gerne eine suchfunktion einbauen die mir mit "Wildcards" die passenden ausgaben in die DBGrid einsetzt, also so... Ich würde die Funktion auf ein OnEditchange stellen das nehmen wir an meine db sieht wie folgt aus: Name1 test123 auto Also ich tippe in das feld "A" ein dann will ich ALLE sachen die mit A anfangen ausgegeben lassen, in der DBGrid! Hab hier im forum seit gestern gesucht aber nichts "passendes" gefunden :( oder ich bin einfach nicht im stande die sachen so umzusetzen, bis jetzt beschränkt sich mein wissen darauf das man so nur in SQL statements suchen kann?? Is die annahme korrekt?? Danke für jede hilfe :) mfg. |
Re: Access Datenbank Durchsuchen (mit Wildcards)
In SQL ist % die Wildcard.
Du könntest also beispielsweise so vorgehen
Delphi-Quellcode:
Allerdings weiss ich nicht, wie perfomant das ganze ist.
procedure DeinFormular.DeinEditChange(Sender: TObject);
Begin DeinQuery.Close; DeinQuery.SQL.Text := 'Select * from DeineTabelle where Name like ''' + DeinEdit.Text + '''%'; DeinQuery.Open; End; Du solltest dir auch mal das Property Filter des Querys ansehen. |
Re: Access Datenbank Durchsuchen (mit Wildcards)
Zitat:
da Du in diesem Fall ja keine Suchefunktion baust sondern einen Filter würde ich das auf keinen Fall im OnChange eines Edits machen. Da würde bedeuten das bei jeder Änderung im Edit eine neue Abfrage der Datenbank gemacht wird. Nehme dafür lieber einen Button. |
Re: Access Datenbank Durchsuchen (mit Wildcards)
Zitat:
|
Re: Access Datenbank Durchsuchen (mit Wildcards)
aller erstmal, danke für euere dolle hilfe :) Echt klasse,
nun, das mit dem Filter hab ich mir schon angesehn aber da ist mir nicht bekannt das man wildcards nutzen kann (?) also gut hab das jetzt mal eingebaut, aber er meint, Zitat:
mfg. |
Re: Access Datenbank Durchsuchen (mit Wildcards)
Hallo Freecer,
mir scheint da ein ' zuviel zu sein! Wie sieht denn der komplette SQL-Befehl aus? |
Re: Access Datenbank Durchsuchen (mit Wildcards)
Zitat:
|
Re: Access Datenbank Durchsuchen (mit Wildcards)
Delphi-Quellcode:
oder eben mit * macht aber bis dahin keinen unterschied....
procedure TForm1.Button1Click(Sender: TObject);
begin Query1.Close; Query1.SQL.Text := 'Select * from KUNDEN where Nachname like ''' + Edit1.Text + '''%'; Query1.Open; end; |
Re: Access Datenbank Durchsuchen (mit Wildcards)
es ist zwar richtig, daß der Allquantor in Access '*' lautet, aber wenn ich über ADO auf Access zugreife, klappt das mit '*' nicht sondern ausschließlich mit dem gewohnten SQL-Allquantor '%'.
Das Gleiche gilt auch für den Quantor '?' in Access für ein Zeichen, unter ADO lautet der aber trotzdem '_'. Grüße Mikhal |
Re: Access Datenbank Durchsuchen (mit Wildcards)
Hallo Freecer
Ich verwende ebenfalls Access mit ADO. Mit folgendem Code müsste es gelingen:
Delphi-Quellcode:
Damit nicht nach jeder Taste die Abfrage neu berechnet wird, kannst Du einen Timer einsetzen. Im OnChange wird nur der Timer neu gestartet, beziehungsweise eingeschaltet. Im OnTimer wird die Abfrage neu geschrieben und anschliessend der Timer ausgeschaltet. Den Timer auch bei Exit vom Editfeld ausführen.
with DeineQuery do // TADODataSet
begin Close; CommandText := 'SELECT DeineTabelle.Feld1, DeineTabelle.Feld2 FROM DeineTabelle WHERE '; CommandText := CommandText + 'DeineTabelle.Feld1 LIKE "%' + Edit1.Text + '%" '; // % vor Edit1 legt Suchart fest (*Ausdruck* oder Ausdruck*) CommandText := CommandText + 'AND DeineTabelle.Feld2 LIKE "%' + Edit2.Text + '%" '; Open; end; So kannst Du dir eventuell den Button sparen(Sorry Sharky). Der Button ist geschmacksache, oder ? MFG Armin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz