TE recomiendo mejor valerte del evento OnValidate del campo Codigo. Para averiguar si ya existe, no podes hacer una operación sobre el mismo componente TTable. Podes lanzar otro TQuery para verificar si existe: algo como:
Código:
query1.sql.text := 'Select * from empleados.db where codigo = :Codigo';
query1.ParamByName('Codigo').AsInteger := Table1Codigo.AsInteger;
query1.Open;
try
if not Query1.isEmpty Then
raise EDupValueError.CreateFmt('Error: el código %d ya existe!', [Table1Codigo.AsInteger]);
finally
query1.close;
end;
o bien tener otro TTable apuntando a empleados.db, refrescarla y hacer un findkey sobre esta.
Hasta luego.