AfterUpdate is a good idea. You can also use Change, except for it fires
with every keystroke.
In AfterUpdate you can set a flag and then check it later. You'll need to
have a change event handler like this for every one of your textboxes. I
don't think there's a form-wide "dirty" flag.
In my apps, most of the time I don't bother comparing against the original
value, I just record the change event happening and just assume they changed
something, even if they changed it back to the original value. But that's
me.
I've never come across something significantly easier than this.
Dave