mm prueba haciendolo de esta manera
Código Delphi
[-]
while not (datamodule7.ADOTable3.Eof) do
if datamodule7.ADOTable3['Tipo_producto']='Comidas' then
datamodule7.ADOTable3.Delete
Else
datamodule7.ADOTable3.Next;
end;
imagina que cuando encuentra un registro cuyo tipo es Comidas y lo borra... donde queda el puntero en el registro? avanza hacia el siguiente verdad?
y si encima tu le das next entonces puede que este borrando solo algunos
prueba y comentas