no entendi bien lo que me dijeron, en este caso yo tengo declarado como llave secundaria un campo RFC que es el cual busco sin problema alguno, mi problema esta cuando intento meter un campo que ya existe me marca key violation y lo entiendo ya que estas duplicando un registro, en todo caso lo que necesito saber es como puedo hacerle para en mi codigo para que en vez que me saque del programa me mande un mensaje de que el campo que estoy intentando ingresar ya existe y no me saque del programa, es decir que me deje trabajar en el mismo..... agradeceria mucho su ayuda aca les dejo nuevamente el codigo que uso para guardar un registro.
if Messagedlg('¿Estas Seguro que deseas Guardar este registro?',mtconfirmation,[mbyes,mbno],0)= mryes then
datamodule1.tblClientes.Post
else
datamodule1.tblClientes.Cancel;
progressbar1.Position:= 0;
progressbar1.Max := 50 ;
for i := 0 to 50 do
begin
progressbar1.Position := i;
sleep(2);
end;
for i := 50 downto 0 do
begin
progressbar1.Position := i;
sleep(0);
end