Hola
Bueno aqui estoy respondiendo a la duda de Tenporal, los cambios los vamos ha hacer en el From de articulos (FArticulos).
Primero:
El Componente DBNavigator1.
A este le quitamos las opciones de Post, Cancel, Refresh., no las necesitamos.
Segundo:
Colocamos un ADOQuery (AdoQuery1) en el from, lo conectamos igual que el adotable1 que tenemos al datamodule en connection (DataModule1.ADOConnection1).
Tercero:
Colocamos un Boton (Guardar) en el Form y en el evento OnClick, ponemos esto:
Código Delphi
[-]
If DBEdit1.Text <> '' then
Begin
ADOQuery1.Active:= false;
ADOQuery1.SQL.Text:= 'Select CodProducto from Articulos Where CodProducto = :cod ';
ADOQuery1.Parameters.ParamByName('cod').Value := DBEdit1.Text;
AdoQuery1.Active := true;
IF ADOQuery1CodProducto.AsString = DBEdit1.Text then
begin
MessageDlg('Código ya existe, favor seleccionar otro',mtError,[mbOK],0);
DBEdit1.Text:= '';
end
else
If ADOTable1.State = dsInsert then
begin
ADOTable1.Post;
ADOTable1.Active:= False;
ADOTable1.Active := true;
end;
end;
Creo que esta facil de entender.
Primero se verifica que el dbedit1 este vacio
Se coloca una consulta al query1 y se busca que, si el parametro es igual al dbedit1 salga un mensaje de lo contrario se grabe en la tabla y se refresque, siempre que la tabla este en modo insert (dsInsert).
Espero sea esto lo que preguntabas y te sirva.
Saludos