Entwickler-Ecke

Datenbanken - dbcheckboxwert auf default setzen bei neuen Datensatz


Arne Danikowski - Mi 10.10.07 15:44
Titel: dbcheckboxwert auf default setzen bei neuen Datensatz
Hallo,

ich habe folgenden Code

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
    if Button = nbInsert then            //Wenn Button + betätigt wird
    begin
      edit1.Text:='';                    //Suchfeld wird geleert
      dbedit1.SetFocus;                  //Fokus auf erstes Eingabefeld Namen
      table1.edit;                       //Werte in Datenbank schreiben Checkboxen sollen Nein erhalten
      DBCheckBox1.Checked := False;
      DBCheckBox2.Checked := False;
      DBCheckBox3.Checked := False;
      DBCheckBox4.Checked := False;
      DBCheckBox5.Checked := False;
      table1.post;

    end
end;


Dieser soll, immer wenn der Plus-Button vom dbnavigator gedrücht wird die dbcheckboxen 1-5 auf false setzen. Aber immer wenn ich den Code ausführe, dann
macht der das zwar setz danach die Boxen aber sofort wieder auf nicht ausgewählt, also weder true noch false.
Wenn ich das table.post herausnehme geht es solange, bis ich den Datendatz abspeichere.

was mache ich falsch?


Kroko - Mi 10.10.07 16:52


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
    if Button = nbInsert then            //Wenn Button + betätigt wird
    begin
      edit1.Text:='';                    //Suchfeld wird geleert
      dbedit1.SetFocus;                  //Fokus auf erstes Eingabefeld Namen
      table1.edit;                       //Werte in Datenbank schreiben Checkboxen sollen Nein erhalten
      DBCheckBox1.Field.AsBoolean := False;
      //etc.
      table1.post;

    end
end;


Arne Danikowski - Mi 10.10.07 18:08

Danke für die Anwort und Dein Interesse,

Das funktioniert soweit, nur schreibt er nun ein "F" in die Datenbank. Die dbcheckboxes habe ich so konfiguriert, dass false = NEIN und true=JA ist. Dementsprechend sind auch die Datenbankfilter.
Theoretisch könnte ich damit leben, nur müsste ich dann den Filter überall ändern.
Gibt es auch eine Möglichkeit gleich den Wert NEIN zu hinterlegen?


Kroko - Mi 10.10.07 18:10

Was passiert denn, wenn statt AsBoolean

Delphi-Quelltext
1:
AsString := 'NEIN';                    

schreibst?


Arne Danikowski - Mi 10.10.07 18:10

Ok wer nachdenken kann ist auch klar im Vorteil :D

bin dann selber darauf gekommen


Delphi-Quelltext
1:
DBCheckBox1.Field.String := 'NEIN';                    


Also vorherigen Eintrag ignorieren :)