Datenbank aktualisieren



  • Hi
    Habe mit eurer FAQ-Datenbank eine erstellt.
    Die Datenbank kann der Nutzer auf dem Form1 editieren.
    Über einen Button gelangt man auf Form2

    Form2->Show();
    

    In einer Listbox werden die Einträge aufgelistet.

    Form1->Table1->First();
    ListBox1->Clear();
    for(int i=0; i<Form1->Table1->RecordCount; i++)
     {
       if (Form1->Table1->FieldByName("Gekauft")->AsString=="ye")
       {
       ListBox1->Items->Add(Form1->Table1->FieldByName("Titel")->AsString);
       }
       Form1->Table1->Next();
     }
    
    }
    

    Das Problem ist nur, das wenn der Nutzer einen Eintrag aktualiesiert und danach über den Button Form2 aufruft, Wird der Eintrag nicht angezeigt.
    Erst wenn das Programm beendet und neu gestartet wird.

    Kann mir bitte einer Helfen.
    Habe keine Ahnung 🙂
    DANKE



  • poste mal den code wie du die daten reinschreibst,
    denn da liegt ja wohl der fehler und nicht auf form2
    wo du die daten ausliest.

    Asta la H.K.



  • Ich schreibe die Daten direkt in die Datenbank.
    Lasse mir die Datenbank mit einem DBGrid anzeigen und mit DBNavigator schreibe ich die Datenbank.



  • schon ma ne close <-> open funktion eingebaut oder die funktion refresh angeschaut ? 🙄



  • Ja hab ich gemacht.
    Z.B.
    habe ich vor dem Aufruf

    Form1->Table1->Close();// bzw Form1->Table1->Refresh();
    Form1->Table1->Open();
    Form2->Show()

    und auch bevor ich die Datenbank mit der for Schleife auslese.
    Geht aber net.



  • Hallo,

    Hast du den geänderten Datensatz auch mit Table1->Post() in die Datenbank geschrieben ?



  • Eine Änderung sieht bei mir ungefähr so aus

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    //IN der CheckListBox1 stehen die Autos. Beim Anklicken soll das Auto 
    //den Besitzer wechseln
    int index = CheckListBox1->ItemIndex;
    Table1->RecNo = index + 1;
    Table1->Edit();
    Table1->FieldValues["AutoInBesitz"] = CheckListBox1->Checked[index] ? "ye" : "no";
    Table1->Post();
    Table1->Refresh();
    
    }
    

Anmelden zum Antworten