The Form's dirty event will not fire if:
a) the control you type into is unbound, or
b) the form is already dirty at this point.
In some versions of Access, the form's Dirty event may not fire if the form
is dirtied programmatically. For example, if you have code in the Current
event of the form that assigns a value to a bound control, the form is
instantly dirtied as soon as you arrive at a record.