![]() |
Abfrage per Eingabe
Hallo
ich habe eine DB und ein Edit Feld. Jetzt will ich in meinem Editfeld, z.b. einen Namen schreiben und dann soll angezeigt werden ob dieser Datensatz vorhanden ist. Ich wollte des mit OnKeyUp machen damit ich nach jeden Buchstaben prüfen kann, ob der Datensatz vorhanden ist. Meine DB sicht vereinfacht so aus. Nummer Geber_Bezeichnung Auflösung usw. Jetzt wollte ich z.b. Geber_Bezeichnung suchen. mfg abi |
Re: Abfrage per Eingabe
Probier das doch mit dem OnChange-Ereignis.
|
Re: Abfrage per Eingabe
Hallo :hi:
mein Problem ist eh wie schreibe ich des in meinen SQL Text. :wall: Da kann ich doch keine Variablen rein setzen, oder doch??? :gruebel: Ansonsten muss ich mal schauen was besser ist. abi |
Re: Abfrage per Eingabe
Ich würde es mit einer LIKE-Abfrage machen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin DataSet1.Filter := 'Bezeichnung LIKE ''' + Edit1.Text + '%'''; end; |
Re: Abfrage per Eingabe
Hallo Stevie
danke für denn Tipp. Jetzt musst du mir nur noch sagen was DataSet1.Filter ist. Ich jetzt nur ne qrGeber und dsGeber. Wie bekomme denn das. Mercy. mfg abi |
Re: Abfrage per Eingabe
Ich nehme mal anhand der Prefixe an, dass qr für Query und ds für DataSource steht...
Deine Query (welcher Art auch immer) ist von TDataSet abgeleitet (da du sie sonst nicht der DataSource zuweisen könntest) und verfügt somit über die Eigenschaften Filtered (Boolean) und Filter (String)... |
Re: Abfrage per Eingabe
Hallo,
dataset kannst Du mit der Table kompo vergleichen. Aber da du eh schon alles über Query's macht, kannst Du das auch über ein Query lösen.
Code:
Das ganze in das wie schon gesagt OnChange Ereignis eintragen und schon ist es fertig. Nun wird jedes mal nach dem Du eine Taste gedrückst hast wird dieses Ereignis ausgelöst.
Select * From DB Where Bezeichnung Like ''+Edit1.Text+'%'''
Kleiner Hinweis, soll diese DB über ein Netzwerk laufen, würde ich dir davon abraten. Da ansonsten bei großen Datenmengen es zu Verzögerung kommen kann. |
Re: Abfrage per Eingabe
Das kommt drauf an. Ich nehme jetzt mal an, dass es nicht zigtausend Datensätze gibt, aber trotzdem würde bei der Eingabe von "Wasweißich" 10mal (!) eine Anfrage an die Datenbank gestellt. Wenn es nicht allzu viel Daten sind, ist es besser, sie erstmal alle abzufragen und dann einzuschränken.
|
Re: Abfrage per Eingabe
Hallo Albi, Stevie
danke für die Hilfe. Es sind vielleicht 400 Datensätze. Und ich wollte auch das er nach jeden Tast druck schaut ob er was hat. Muss des jetzt aber erst mal testen, melde mich. Wenn ich mal wieder nicht weiter komme. ciao Chrsitian |
Re: Abfrage per Eingabe
Hallo Stevie
hab gerade deinen Code ausprobiert. Leider geht er nicht.
Code:
Ich bekomme dann folgende Fehlermeldung.
procedure TForm1.Button9Click(Sender: TObject);
begin dsSuchen.DataSet.Filter := 'Geber_Bezeichnung LIKE ''' +Edit1.Text+ '%'''; end; Zitat:
abi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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-2025 by Thomas Breitkreuz