David;
Thank you so much to shedding some light on this totally wierd error condition. I too, have been running the same code under vfp5 for 7 years, and never had a problem. I guess the VFP Team found a complex situation with GRID control and INSERT command and instead of trying to resolve it, they just gave it an error code !!
Anyway, based on your (and Alexey's) recommendations, I have implemented these actions:
1) issued this.cmdWhatEver.SetFocus()
to take focus off of the grid right before INSERT command is issued.
2) In my ErrorHand.prg, I record the RECNO() (which at this point is -1, because changes are still in buffer), and then do this:
* In ErrHand.prg
nRec = IIF(!EOF(), RECNO(), 0)
GO TOP
GO BOTTOM
IF nRec # 0
GO TO nRec
ENDIF
RETURN
I prefer NOT to issue TABLEUPDATE(.T.), because that removes the option for the user to UNDO the Append.
So, I will now release the above changes to production and wait to see what we get back from the field.
Thanks Again for all your help.