Your issue is one of timing. The afterupdate event is triggered when the control is about to lose focus and before the next control gets the focus. So your code changes the focus to the specified control but then, once the code finishes, the focus moves to the control which was originally next in the tab sequence.