This kind of error can occur when either the ADO does not know the primary key and does not know where to save or if the record is modified by some other routine in our program.
The solution is not avoid saving, but ensure proper saving. I am trying to figure out what must be happening