Puedes usar la misma consulta qry_Articulos para ver si el que está introduciendo ya existe:
Código Delphi
[-]
var ls_cuenta: string;
begin
tbl_detallecotizacion.Edit;
ls_cuenta := Tbl_Detallecotizacion.FieldbyName('Codigo_Articulos').AsString;
Qry_Articulos.Close;
with qry_Articulos do begin
with sql do
begin
text := ' select * from articulos where codigo_articulos = '+ quotedstr(ls_cuenta) + ' and codigo_maestro = ' + quotedstr(Codigo_maestro_de_la_tabla_detalle);
Open;
if qry_articulos.isempty then
begin
Close; clear;
add ('select * from Articulos');
add ('where Codigo_Articulos = ');
add (''''+ls_cuenta+'''');
prepare; open;
if recordcount = 0 then
begin
ShowMessage('Cuenta no existe en Catalogo de cuentas');
end
end
else
raise exception.create('el artículo ' + lscuenta + ' ya existe en la factura');
end;
if Dts_DetalleOrden.State in [dsinsert,dsedit] then
Tbl_Detallecotizacion.FieldByName('Descripcion_Articulos').Asstring := Qry_Articulos.FieldByname('Descripcion_Articulos').Value;
Saludos