Hola
Bueno no se la razón, pero me parece mas cómodo usar un edit para pasar o actualizar los datos.
De todos modos, viendo tu explicación, me parece mas correcta la explicación de jachguate , por el uso del dataset o del componente de enlace, puede ser el table o el query, da igual.
Algo asi:
Código Delphi
[-]If (Table.State = dsEdit) or (Table.State = dsInsert) then
begin
Por otro lado, si te da error después de actualizar, osea que solo te permite una actualización, es por que o cierras la tabla o la sentencia esta duplicada o no la vuelves a colocar en edición.
Revisa el código, si es posible mejor lo pones por aqui, para verlo.
Saludos