Ich habe es jetzt mal mit der Table-Kompo probiert und das ganze in das OnExit - Ereignis des Edits eingetragen. Hier mein Versuch und der Funzt. Ist die Whg Nr schon vorhanden gibs ne Meldung, wenn nicht kannste weiterarbeiten.
Code:
Procedurre TForm1.Edit1Exit(...);
Begin
If Length(Edit1.Text) > 0 Then
Begin
If Table1.Locate('WHG_Nr',Edit1.Text,[]) Then
Begin
ShowMessage('Die Whg_Nr ist vergeben.');
end;
end
else
ShowMessage('Ungültige Eingabe');
end;
Und wenn Du Dir den Code von grayfox angeschaut hast, dann sieht das da ganz unten schon die Daten in deiner Table gespeichert werden.
Zitat von
grayfox:
if Table1.Locate('ID',aID,[]) then begin
ShowMessage(Format('die wohnungsnummer %5d ' + #13#10
+ 'ist bereits angelegt',[aID]));
Edit1.SetFocus
end else begin
if not (Table1.State in [dsInsert, dsEdit]) then
Table1.Append;
Table1.FieldByName('ID').asInteger:= aID
end
]
Wenn Du diesen Punkt rausnimmst, wird nur kontrolliert ob die ID schon da ist. Wenn ja dann wird nicht "gemeckert" wenn doch wird auch geschimpft.