Abfragen ob DBGrid leer ist



  • Wie kann ich abfragen, ob ein DBGrid leer ist, d.h. keine Datensätze enthält?



  • indem du deine Datenquelle fragst.
    Bei ADOTable beispielsweise ADOTable1->RecordCount;



  • Oh sorry, ich hab ganz vergessen noch folgendes zu erwähnen:

    In Table1 stehen Datensätze drin. Über einen Filter kann ich Datensätze, die in dem DBGrid angezeigt werden ausfiltern. Wenn nun alle Datensätze ausgefiltert werden wird ein leeres DBGrid angezeigt und dann will ich abfragen ob es leer ist, damit ich ein Label ("Keinen Datensatz gefunden") ausgeben kann.
    Müsste doch bestimmt einen einfachen Befehl geben, auf den ich nicht komme, oder?

    Bsp.:
    if (DBGrid = leer)
    {
    Label->Visible = true;
    }



  • Das DBGrid spiegelt nur den Inhalt deiner Tabelle (ADOTable,Query) wieder.
    Den Filter wendest du doch auch auf deine Tabelle an.



  • mmmhhh, okay, ich hab jetzt folgenden Code eingegeben:

    if (DataModule2->Table1->RecordCount < 1)
    {
    Label35->Visible = true;
    }

    Er bringt zwar keine Fehlermeldung, aber es funktioniert trotzdem nicht. Ich filtere so lange, bis das DBGrid bzw. die Table leer ist, aber er zeigt immer noch nicht das Label an.



  • Dann stimmt wohl etwas mit deinem Algo nicht ... Damit wir dir helfen können, müsstest du schon ein bisschen Quelltext zeigen 🙂

    Gruß Skay



  • Benutz die Eof-Eigenschaft der Table-Komponente. Wenn die nämlich direkt nach dem einlesen der Datensätze auf true steht, so ist die Tabelle leer.
    😉


Anmelden zum Antworten