Data buffering behind the form
As you edit data on a form, the data is actually 
stored in several areas in memory (areas we called 
them 'buffers').
Let's trace the life cycle of an edit. 
When you first navigate to a record on a form, 
the data for that record is pulled from the underlying 
table to the
form. This data is stored in a buffer containing a single record. Each control 
on the form 
then displays data from
that buffer. As soon as you start typing into a control, the data for that 
single control is pulled into a second buffer.
If you tab to another control, the data from the 
control buffer is written back to the form buffer, 
triggering the
control's 
BeforeUpdate and
AfterUPdate events. Alternaively, you can press Esc, 
discarding your 
changes and wiping
out the control buffer. In this case, the control's update events 
are not 
triggered.
As you edit controls, the entire record is still 
held in the form-level buffer. None of the changes is 
written back to the database at this point. If you press Esc twice, the form-level buffer is 
simply 
discarded. On the other hand,
if you save the record, the BeforeUpdate and
AfterUPdate events for 
the form are triggered, and 
the changes are
written back to the underlying table.