![]() |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
So, wenn ich beim Select nur einen Wert hernehme, also wenn ich alle OR weglasse, dann funktionierts.
Sobald ich aber mehrere Spalten abfragen möchte, dann kommt immer der 1. Datensazt mitangezeigt im DBGrid! |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Was passiert denn, wenn Du das Statement mal direkt per SQL-Editor (welcher, hängt vom verwendeten DBMS ab) auf die DB loslässt?
|
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Welche Daten stehen denn im 1. Datensatz?
Gruß K-H |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Hallo, wenn ich in Access dieses Select ausführe:
Code:
dann kommen nur die beiden Datensätze, wo der Nachname "Huber" ist.
SELECT * FROM kundendaten WHERE nachname LIKE 'Huber' OR telefon1 LIKE ''
In Delphi kommt aber zusätzlich noch der 1. Datensatz. Der Innhalt ist aber ein ganz ein anderer.
Code:
begin
ADOQuery1.Close; ADOQuery1.SQL.Text:='SELECT * FROM kundendaten WHERE nachname LIKE :name OR telefon1 LIKE :telefon1'; // OR telefon2 LIKE :telefon2'; ADOQuery1.Parameters.ParamByName('name').Value := '%' + EditSearch.Text + '%'; ADOQuery1.Parameters.ParamByName('telefon1').Value := '%' + EditSearch.Text + '%'; ADOQuery1.Open; if ADOQuery1.Active then ADOQuery1.Refresh else ADOQuery1.Open; end; |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Das ist aber nicht das Query, welches von deinem Programm generiert wird. Dein Programm macht daraus
Code:
Und jetzt rate mal welche Datensätze darauf zutreffen.
OR telefon1 LIKE '%%'
Du musst also noch eine Abfrage machen, ob in den Edits überhaupt etwas drin steht. Liebe Grüße, Valentin |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Ja, aber es gibt NUR ein Edit-Feld. Dort wird entweder der Nachname oder die Telefonnummer eingetragen.
Also steht im Edit eigentlich IMMER was drinn! |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Zitat:
Code:
?
SELECT * FROM kundendaten WHERE nachname LIKE '%Huber%' OR telefon1 LIKE '%Huber%'
|
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Da kommen im Access auch nur jene beiden Datensätze, welche HUBER heißen,
|
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Komisch, heute hab ich es nochmal probiert und nun funktioniert es, ohne dass der 1. Datensatz auch erscheint.
Danke für die Hilfe |
AW: Nur gesuchte Datensätze im DBGrid anzeigen
Ha, eine Frage hätte ich noch.
Ich hab versucht, eine MessageBox einzubauen, so dass diese Erscheint, wenn KEIN Kunde gefunden wurde. Leider schlug mein Versuch fehl, Da diese Messagebox immer wieder erscheint, obwohl ein Kunde gefunden wurde. Ich weiss nicht, wo ich meine Box hinsetzen muss!
Code:
procedure TForm1.BtnSearchClick(Sender: TObject);
begin ADOQuery1.Close; ADOQuery1.SQL.Text:='SELECT * FROM kundendaten WHERE nachname LIKE :name OR telefon1 LIKE :telefon1 OR telefon2 LIKE :telefon2'; ADOQuery1.Parameters.ParamByName('name').Value := '%' + EditSearch.Text + '%'; ADOQuery1.Parameters.ParamByName('telefon1').Value := '%' + EditSearch.Text + '%'; ADOQuery1.Parameters.ParamByName('telefon2').Value := '%' + EditSearch.Text + '%'; ADOQuery1.Open; if ADOQuery1.Active then ADOQuery1.Refresh else ADOQuery1.Open; MessageDlg('Der Kunde "' + EditSearch.Text + '" wurde leider nicht gefunden!', mtInformation, [mbOK],0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 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