More Mouse Wheel Joy
Knowing the overwhelming sentiments of pleasure that this subject evokes, I couldn't resist some further observations:
I love the solution that ghudson has provided. Clean, simple, and effective. Naturally, I tried to adapt this solution to my own form, but was forced to implement some less-than-satisfactory modifications.
Essentially, ghudson's solution requires the form's record to be Dirty in order to trigger the BeforeUpdate validation. Since many of the controls on my form are unbound (or calculated), my problem was how to account for changes to them as well. Once again taking a cue from ghudson's model, my trick was to create a dummy Yes/No field in the underlying table with which to deliberately 'Dirty' the record in the Form_Current event.
This works like a charm for existing records BUT . . . (and this is where I'd be most grateful for any suggestions) . . . provided that the form is also used for Data Entry (new records), a user can't cancel out of the adding a record without having generated a new autonumber (yes, an autonumber field is my PrimaryKey), hence creating a 'blank' record, all due to my deliberate 'Dirty'ing of the new record. This blows up my record validation as well.
The modification I chose for this problem was to set the form's DataEntry mode to True if the user is adding a record, and conditionally suspend the form from becoming 'Dirty' until the user Submits or Cancels their record addition.
If anyone can think of a less intensive workaround, I'd be desperately anxious to hear from you.
Cheers,
John