Two suggestions:
First: at the old style (before VFP and Tableupdate()), with a while loop trying to lock the record/table with a try time and an On Key Label ESC to exit the loop and make a tablerevert.
If you are using transactions do a rollover if fail
Second: at the new style try a while loop with tableupdate(.F.) and check for returned value from tableupdate,... the same than first answer.
Hope this help
Mauricio
Be fast like the Fox
Be free like the Penguin
Se Rápido como el Zorro
Se libre como el Pingüino