If the record you are viewing (main form or subform) is dirty - meaning that there is an unsaved modification - then the form's BeforeUpdate and form's AfterUpdate events will fire for that record and then the Current event will fire for the new record. Other events might also fire. For example, a contro's BeforeUpdate and AfterUpdate events as well as lostfocue might fire. Events fire in a proscribed order but ONLY if Access determines that they need to fire. For example, if you change control1 and control2 and then click the new record in the subform, the control level events for control2 have not yet fired so they need to fire before the form level events fire. However if you changed control1, and then moved to control2 but didn't change it, there is no need to fire the control's BeforeUpdate and AfterUpdate events because you didn't modify the control. However, you did enter it so the lostFocus event would need to fire followed by the form level events.
What are you trying to do?