AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)
Thema durchsuchen
Ansicht
Themen-Optionen

Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

Ein Thema von aramintaros · begonnen am 4. Sep 2009 · letzter Beitrag vom 4. Sep 2009
Antwort Antwort
aramintaros

Registriert seit: 14. Mai 2008
48 Beiträge
 
#1

Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 07:03
Datenbank: Acces • Version: 2000-2003 • Zugriff über: ADO
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 und komme nicht weiter, da brauche ich Unterstützung.
Erstmal Danke
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 08:11
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;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
aramintaros

Registriert seit: 14. Mai 2008
48 Beiträge
 
#3

Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 11:07
Ich weis mit "ADODataset.CommandText := 'SELECT FeldName where FeldName like :FeldName';" nicht viel anzufangen

Zitat von Bernhard Geyer:
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;
Der Ausdruck "FeldName" ist recht oft. Die Datenbank heißt "adressen.mdb", die Tabelle heißt "tabelle1" und das Feld heißt "nachnamen".
Habe die Begriffe "FeldName" gegen meine ausgetauscht, aber es passiert nichts.
Im Moment bin ich auf diesem Stand:
Delphi-Quellcode:
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;
Das zeigt mir den zugehörigen Datensatz aber erst an, wenn der Nachname komplett in Edit2 eingegeben wurde.
Was muss da geändert werden um es wie Oben beschrieben hinzukriegen?
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 11:17
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
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 11:23
Die Query war noch etwas falsch:

'SELECT FeldName from TabellenName where FeldName like :FeldName' Und Feldname ist Platzhalter für deinen Feldnamen (Glaskugel ist defekt), also nachnamen, Für TabellenName dann tabelle1


Zitat:
Im Moment bin ich auf diesem Stand:
Wie schon gesagt. Verwende keine Table-Objekte wenn du dynamisch was suchen willst. Spätestens bei großen DB's auf einer richtigen Datenbank (und keiner Desktop-DB ala Access) wirst du dir sonst eine Performancegrab erster klasse bauen.

Zitat:
Das zeigt mir den zugehörigen Datensatz aber erst an, wenn der Nachname komplett in Edit2 eingegeben wurde.
Da fehlt natürlich auch der Wildcard. Probiers hier auch mit % bzw. *. Aber das ich Filter/Filterd bei Table-Objekten nicht verwwende kann ich nicht genau sagen was da hin kommt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Buchstabengenaue Suche in Access-Datenbank (Delphi 2009)

  Alt 4. Sep 2009, 11:31
Hallo,

etwas googlen und dann kommt das hier.

1

Also

AdoTable1.Filter:='nachnamen LIKE '+ QuotedStr(Edit2.Text+'*')
Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz