Hallo khalilazzz,
wie r_kerber geschrieben hat, ist Dein ursprünglicher Code im OnKeyDown-Event fehl am Platz (der ursprüngliche Code gibt für mich ehrlich gesagt gar keinen Sinn).
Was Du tun musst, ist, im OnBeforePost-Event Dein Feld zu prüfen:
Delphi-Quellcode:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
// (Angenommen, das zu prüfende Feld heißt Feld1)
If Table1Feld1.IsNull or (Table1Feld1.AsString = '') then abort // bzw. Fehlermeldung ausgeben
end
Damit prüfst Du, ob das Feld NULL ist oder einen leeren String hat.
Wenn Du die Felder nicht persistent hinzufügen willst (über den Feldeditor), musst Du mit Table1.Fields[n] arbeiten (evtl. in einer Schleife abarbeiten).
Diese Abfragen prüfen den aktuellen Wert in Deinen Komponenten, nicht den Wert in der
DB.
Vielleicht kommt Dein Problem daher, dass TField.Text nicht den Inhalt des Feldes, sondern den Text angibt, der in einem Steuerelement angezeigt wird (z.B. wird bei einem Blob-Feld nicht der Inhalt angezeigt, sondern "(blob)" oder "(BLOB)"). Ich weiß nicht genau, was bei einem leeren Feld angezeigt wird...
Hoffe das hilft Dir weiter
Urs