tienes razon, tendria que haber empezado por ahi, borrarlo y añadir otro.

gracias
aprovechando, si meto en un dbgrid un nombre(que es la clave) y meto otro que ya esta, me sale violacion de clave, pero lo he solucionado con el try except, si antes del post muevo la barra de desplazamiento, he metido un mensaje de error en el evento onposterror, pero despues del mensaje, me sale otro aviso de key violation, he puesto table1.cancel, pero tampoco sirve.