Hola river_1.
Primeramente te ruego que encierres tu código Delphi entre las etiquetas [delphi] [/delphi] para una mejor legibilidad. (esta vez ya lo hice editando tu mensaje)
Y sobre el problema de inserción, creo que deberías probar así:
Código Delphi
[-]
Consulta:='Select * from TMPIMEI';
qryInsIMEI.SQL.Clear;
qryInsIMEI.SQL.ADD(consulta);
qryInsIMEI.Open;
qryInsIMEI.First;
WHILE NOT qryInsIMEI.EOF DO
BEGIN
IF TBLIMEI.Locate('IMEI',qryInsIMEIIMEI.Value,[])THEN
BEGIN
TBLIMEI.Edit;
TblIMEIDISP.Value:='N';
TblIMEIRECIBO.Value:=qryInsIMEICOMPRA.Value;
TblIMEIFECHARECIBO.Value:=qryInsIMEIFECHACOMPRA.Value;
TBLIMEI.Post;
TBLFACTURAS.Edit;
TblfacturasCOMENTARIOS2.Value:=INTTOSTR(qryInsIMEIIMEI.AsInteger)+#13+#10;
TBLFACTURAS.Post;
END;
qryInsIMEI.Next; END;
FRMPRINCIPAL.ADOControlTaller.Execute('DELETE FROM TMPIMEI');
Saludos.