I have had to do this very thing multiple times in different applications.
What I do is, right after I open the recordset, table, etc., I do the
If MyRS.Recordcount > 0 then
This will force the recordset to fully populate and leave the current record
at the same location it was in. The If statement will trap for an empty