Bueno primero que nada pido perdon por la tardanza en dar noticias pero es que tuve que irme de viaje y no pude conectarme hasta ahora...gracias por la multitud de respuestas.
En principio de las soluciones propuestas la que mejor entiendo es la de BlueSteel de hacerlo con un Query pero no se si es "matar mosquitos a cañonazos"...
El metodo LookUp ya lo he probado pero no me vale, por lo menos poniendolo en el OnExit, ya que sigue saltando el error...a lo mejor poniendolo en otro sitio pero no tengo claro donde...
En cuanto a controlar el evento OnPostError estoy en ello pero me esta costando bastante entender como debo usarlo...
Para empezar he probado a quitar el codigo del evento OnExit del DBEdit y no me salta ningun error aunque haya introducido un valor ya existente de lo cual deduzco que al salir del DBEdit no se produce automaticamente un POST...¿o si..?
Este codigo me produce un bucle infinito, se el por qué, pero no me aclaro de como hacerlo:
Código Delphi
[-]procedure TDataModule3.TablaClientesPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDatabaseError) then
if MessageDlg('Parece que ese Codigo ya existe, ¿ Desea modificar el registro '+#13+#10+'con ese Codigo?', mtWarning, [mbYes,mbNo], 0) = mrYes then
begin
Action:=daAbort;
TablaClientes.Locate('Codigo',Clientes.dbedit1.text,[]); TablaClientes.edit;
Clientes.Dbedit1.SetFocus;
end
else
begin
ACtion:=daAbort;
Tablaclientes.insert;
Clientes.Dbedit1.SetFocus;
end;
end;
¿Donde estoy tropezando?
PD:¿ Como puedo cambiar la opcion UpdateWhereAll?
Edito:
A la espera de respuestas por ahora lo he solucionado comprobando si existe el valor del campo con otro componente ADOTable apuntando a la misma tabla...