![]() |
Datenbank: Acces • Version: 2000-2003 • Zugriff über: ADO
Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Hallo Delphifreunde,
ich suche Hilfe. Es geht darum, in eine Accessdatenbank in einer Tabelle (im Feld "Nachnamen") zu suchen. Die Tabelle ist über eine ADOConnection, eine ADOTable und ein Dataset eingebunden. Funktioniert wunderbar, ich bekomme alle Nachnamen angezeigt. Wie ist es nun zu realisieren, daß, wenn ich in einem TEdit den Buchstaben "a" eingebe nur noch die Nachnamen angezeigt bekomme die mit "A" anfangen? Mal ein Beispiel, die Nachnamen sind: "Abromeit, Allister, Amsdorf, Apost" Ist Edit2.Text leer bekomme ich alle Nachnamen angezeigt, gebe ich nur "a" ein bekomme ich alle 4 Nachnamen die Mit "A" beginnen angezeigt, gebe ich "ab" bekomme ich nur "Abromeit" als Ergebnis, bei der Eingabe "al" bekomme ich nur "Allister" angezeigt, und wenn ich Edit2.Text wieder leere sehe ich wieder alle Nachnamen. Ich beiße mir seit 2 Tagen die Zähne aus :roll: und komme nicht weiter, da brauche ich Unterstützung. Erstmal Danke |
Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Schmeiß ADOTable weg, nimm ADODataset und setzte als Commandstring sowas in der ARt ein
Delphi-Quellcode:
ADODataset.CommandText := 'SELECT FeldName where FeldName like :FeldName';
ADODataset.ParamByName('FeldName') := EditFeld.Text + '%'; ADODataset.Open; |
Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Ich weis mit "ADODataset.CommandText := 'SELECT FeldName where FeldName like :FeldName';" nicht viel anzufangen :oops:
Zitat:
Habe die Begriffe "FeldName" gegen meine ausgetauscht, aber es passiert nichts. Im Moment bin ich auf diesem Stand:
Delphi-Quellcode:
Das zeigt mir den zugehörigen Datensatz aber erst an, wenn der Nachname komplett in Edit2 eingegeben wurde.
procedure TForm1.Edit2Change(Sender: TObject);
begin ADOTable1.Filtered:= false; AdoTable1.Filter:='nachnamen='+ QuotedStr(Edit2.Text);// Hier würde ich eine Veränderung vermuten - aber was? (QuotedStr vielleicht)? AdoTable1.Filtered:=True; ADOConnection1.Connected:=true; if Edit2.Text= '' then ADOTable1.Filtered:= false;// Das zeigt wieder alle Nachnamen end; Was muss da geändert werden um es wie Oben beschrieben hinzukriegen? |
Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Hallo,
wenn ich es richtig verstehe brauchst du nur das Jokerzeichen für deine Anfrage hinten mit anhängen. In SQL ist das das Zeichen %. Bin jetzt nicht ganz der Freek in ADO aber vielleicht reicht das ja schon. Gruß, Chris |
Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Die Query war noch etwas falsch:
SQL-Code:
Und Feldname ist Platzhalter für deinen Feldnamen (Glaskugel ist defekt), also nachnamen, Für TabellenName dann tabelle1
'SELECT FeldName from TabellenName where FeldName like :FeldName'
Zitat:
Zitat:
|
Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Hallo,
etwas googlen und dann kommt das hier. ![]() Also
Delphi-Quellcode:
AdoTable1.Filter:='nachnamen LIKE '+ QuotedStr(Edit2.Text+'*')
Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 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