Entwickler-Ecke
Datenbanken - Datenbank filtern über TEdit
Martin Schlömer - Mo 21.03.11 18:51
Titel: Datenbank filtern über TEdit
Hallo leute,
Ich habe eine Datenbank erstellt, nun versuche ich während einer Eingabe über ein Editfeld
die Daten zu filtern. Ich möchte also, wenn ich z.B in das Editfeld ein Wort rein schreibe das mit B anfängt
automatisch, alle anderen Einträge verschwinden. Die einzige lösung die ich bis jetzt hab ist folgendes.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Edit1Change(Sender: TObject); begin if trim(edit1.Text)<>'' then begin adoquery1.Filter := 'Filmtitel=''' + edit1.Text + ''''; adoquery1.Filtered := true; end else adoquery1.filtered := false; end; |
Nur leider verschwinden alle Einträge bei der Eingabe, bis ich das exakte Wort eingegeben habe.
Hab ihr da ne Lösung für mich??
Delete - Di 22.03.11 16:39
Welche Datenbank? Access?
Hab dein Beispiel eben mal kurz mit meiner Städte-Tabelle nachempfunden,
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TFormMain.Edit1Change(Sender: TObject); begin IF TRIM(Edit1.Text) <> '' THEN BEGIN DatMod.ADODataSet1.Filtered := FALSE; DatMod.ADODataSet1.Filter := 'Ortname Like ' + QuotedStr(Edit1.Text + '%'); DatMod.ADODataSet1.Filtered := TRUE; END ELSE DatMod.ADODataSet1.Filtered := FALSE; end; |
Wenn du das Argument = verwendest, bedeutet das, du suchst einen Eintrag der genau dem Inhalt des Strings Edit1.Text entspricht. Willst du aber nicht, sondern bei Eingabe von A alle Einträge, die mit A anfangen. Dann mußt du Like nehmen.
Wenn du mit Access arbeitest, ist statt dem Asterix * das Prozent-Zeichen anzugeben. Übrigens hab ich mir SQL vor Jahren mit Hilfe von Access selbst beigebracht. Dort kann man nämlich Abfragen generieren und sich dann den SQL-Code anschauen. Hättest du das gemacht, wäre dir sicher sofort aufgefallen, daß dort Like steht, wenn du zuvor im Kriterienfeld z.B. "wie A" eingegeben hast.
Kleiner Tip: Handbücher und Einsteiger-Tutorials sind äußerst hilfreich.
Moderiert von
Narses: Delphi-Tags hinzugefügt
Martin Schlömer - Di 22.03.11 22:07
Ja es ist eine Access Datenbank
Hallo Perlsau,
ich danke dir für deine Antwort und für die gute Erklärung!!
Jetzt funktioniert es genau so wie ich es mir gedacht habe.
LG Martin.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!