Analisando un poco el codigo, lo unico que se me ocurre es que se este produciendo un error en la insercion de los codigos.
La sospecha es que la seleccion de registros este dando 0 registros, esto debido a la comparacion de 2 strings que estas haciendo
Desc_Corta=escrip';
Supongamos que:
Desc_Corta='Azucar'
escrip='AZUCAr'
Al realizar la seleccion con
Where Desc_Corta=escrip';, esta dara cero registros.
Código Delphi
[-]IBQuery1.SQL.Clear;
IBQuery1.SQL.Text:='Select CLAVE From ARTICULOS Where Desc_Corta=escrip'; IBQuery1.Open;
If IBQuery1.RecordCount=0 Then
IdArt:=IBQuery1.FieldByName('Clave').AsInteger;
Espero que sirva en algo...
Saludos desde
Concepcion-Chile