When you requery, by definition you are asking Access to re-sort all the records on whatever keys you designed into the SQL statement defining the RecordSource. You will ALWAYS lose focus from the current record by requerying. The fact that you always jump to the last record is very strange, because a requery statement, in my experience, always takes the user to the FIRST record in the RecordSource.
I thought it strange too that it was taking me to the last record. My form is based on a query where the patient's names are alphabetized ascending.
When the user enters a new patient, I want the patient to be placed alphabetically right away. I'm using me.requery in the After Update even for the form. Now I know from what you said that I will always lose focus from the current record by requerying.
Is there another way to accomplish this? If not, then I'm going to take the requery out.