Hola teclilla, para recorrer tu tabla te falta posicionarte en el primer registro con First, pero no estoy segura que solo ese sea tu problema.
Código Delphi
[-]
procedure TFormAlbaran.ControlStock;
begin TalbprodDetalle.First;
while not TalbprodDetalle.Eof do begin
TProductos.Locate('Codigo',TalbprodDetalleCodprod.asString,[]);
TProductos.FieldByName('Stock').asInteger:=TProductos.FieldByName('Stock').asInteger - TalbprodDetalleCantidad.AsInteger;
TalbprodDetalle.next;
end;
end;
Saluditos