>One more tidbit of information. I have field level validations for the various fields where the field can't be empty. I also call a procedure once the 'Save' button is selected which basically duplicates the field level validations in one procedure. This was necessary since the users do not necessarily tab from one field to the next.
A bit on this part: I do all the validations from textbox.localvalid custom method (in class definition). This method gets called from Valid method (when needed) and from the Save button again. When called from save button, if it returns .f. or 0, it sets focus back to the control whose .localvalid returned it. HTH.
I've seen you use Fp2.6; in that case you need to call these validation functions from the Read Valid event (ooops, from Read Valid clause), and if you should like to set focus back to an offending field, you should Return n, where n is the ObjNum(field).