Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi In Form mehrere Edits zum suchen verwenden (https://www.delphipraxis.net/5426-form-mehrere-edits-zum-suchen-verwenden.html)

Albi 5. Jun 2003 18:03


In Form mehrere Edits zum suchen verwenden
 
Ich habe folgendes Problem mit dem einfach nicht weiter komme.
Ich habe ein Form mit meheren Editfeldern, ich will nun das wenn in einem der Felder einen Namen Einträg, nach diesem in der DB gesucht wird.

Ich habe es mit einer Case .. of Einweisung versucht, was ja funktioniert, wenn man "SortDs(0)" in die Abfrage hinschreibt aber das bringt mich ja nicht weiter. Ich müßte diesen Wert ja irgendwie übergeben bekommen.

Zum Bsp. ich klicke auf das Edit1 und der dann sucht er nach er Nummer oder ich klicke in Edit2 und er sucht nach dem Namen.

Ich hoffe ihr habt verstanden, was ich hinaus will.

Delphi-Quellcode:
begin
 Saved:= True;
 Form1.Query1.Close;
 Form1.Query1.SQL.Clear;
 If DBKuNr.GetTextLen = 0 Then
  Form1.Query1.SQL.Add('SELECT * FROM "'+Pfad+'"')
 else
 //Form1.Query1.SQL.Add('Select * FROM "'+Pfad+'" WHERE DB_KuNr ='+DBKuNr.Text);
 SortDS(Sort)); Hier sollte die Anweisung übergeben
 Form1.Query1.Active:= true;
 DBAnrede.Text:= Form1.Query1.FieldByName('DB_Anrede').AsString;
 DBTitel.Text:= Form1.Query1.FieldByName('DB_Titel').AsString;
 DBVorName.Text:= Form1.Query1.FieldByName('DB_VorName').AsString;
Ich dachte mir, ich übergebe den Wert, wenn ich auf das entsprechende Feld klicke aber da kommt es zu einem Fehler wegen Bytew und String.

Hier noch die Case .. of

Delphi-Quellcode:
begin
  Case m of
     0: Begin
        Sort:= 'Select * FROM "'+Pfad+'" WHERE DB_KuNr ='+DBKuNr.Text+'';
        end;
     1: Begin
        Form1.Query1.SQL.Add('Select * FROM "'+Pfad+'" WHERE DB_Vorname Like ''%'+DBVorname.Text+'%''');
        end;
     end;
end;
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

Mario 5. Jun 2003 21:32

Ich bin mir sicher, Dein Problem ist nicht so schwierig. Aber Du schreibst derart verworren, es ist leider nicht zu erkennen, wo Dein Prolbem liegt.

Albi 6. Jun 2003 05:44

Ich will kurz gesagt, einen SQL String abhängig von dem Editfeld in den oben gezeigten Code übergeben.

So das ich in einem Form in mehren Feldern suchen kann.

Beipiel: Ich habe 3 Edit Felder, Edit1 = Nr, Edit2 = Name, Edit3 = Vorname. Nun will ich, das wenn ich in Edit1 ne Zahl schreibe, nach dieser Zahl gesucht wird, wenn ich in Edit2 nen Namen schreibe, nach dem Namen gesucht wird usw..

ist jetzt klar geworden was ich will?

Albi 6. Jun 2003 06:37

Du hast recht gehabt, die Lösung ist ganz einfach. Man nehme eine String variable und setzt in das Edit-Change einfach den SQLString und in der Abfrage schriebt man nur noch Query1.SQL.Text:= Sort (Variable).

Delphi-Quellcode:
procedure TForm2.Edit2Change(Sender: TObject);
begin
Saved:= False;
Sort:= ('SELECT * From Test.db WHERE ID ='+Edit2.Text+'');
end;
Delphi-Quellcode:
Try
  Form1.Query1.SQL.clear;
  Form1.Query1.SQL.Text:= Sort;
  Form1.Query1.Active:= True;
  If Form1.Query1.RecordCount = 0 Then
    ShowMessage('Keine Daten!')
     else
  Form2.Edit1.Text:= Form1.Query1.fieldByName('Test1').AsString;
  Form2.Edit2.Text:= Form1.Query1.fieldByName('Test2').AsString;
  Saved:= True;
 except
end;
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 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