Tabellenfilter , mehrere AnsiStrings verbinden



  • Hallo,

    ich habe mal eine Frage zu folgendem Code:

    void __fastcall TForm5::SpeedButton2Click(TObject *Sender)
    {
    Table1->Close();
    
    Table1->Filter =AnsiString("NAME = '") + Edit1->Text + "'";
    Table1->Filtered=true;
    
    Table1->Open();
    Edit14->Text=Table1->RecordCount;
    }
    

    Die Tabelle wird also nachdem der Benutzer einen Namen eingegeben hat, dursucht und nur die Datensätze angezeigt bei denen der Name übereinstimmt.
    Jetzt möchte ich aber das man z.B. Vor- und Nachname eingeben kann.
    Also 2 Filter die man verbinden müsste.
    Laut Hilfedatei sollte es mit "AND" funktionieren. Klappt aber bis jetzt nicht.

    Vielleicht wisst Ihr ja eine Möglichkeit.

    Danke



  • "Klappt nicht" ist keine ausreichende Problembeschreibung.
    Wo ist dein (nichtfunktionierender) Code?



  • Hi,

    ich weiß schon das es nicht besonders verständlich war, aber man will sich ja nicht blamieren.
    Also hier der nicht funzende Code:
    [/code]
    {
    Table1->Close();
    Table1->Filter =AnsiString("NAME = '") + Edit1->Text + "'" AND
    AnsiString("Vorname= '") +Edit2->Text+ "'";
    Table1->Filtered=true;
    Table1->Open();
    Edit14->Text=Table1->RecordCount;
    }
    [/code]

    Als Fehlermeldung kommt:
    [C++ Error] Unit5.cpp(135): E2379 Statement missing



  • Das AND gehört in den Filterstring.

    Table1->Filter = "Name = '" + Edit1->Text + "' AND Vorname = '" + Edit2->Text + "'";
    

    Bei deiner Fehlermeldung hast du übrigens ein kleines, aber wichtiges Detail übersehen, nämlich welches Statement vemisst wird: das Semikolon.



  • Hi,

    ähm ja, jetzt funktioniert das wohl. Irgendwie peinlich. Aber man lernts ja noch 🙂

    Vielen Dank für die schnelle Hilfe !


Log in to reply