If you use a With block...
• you don't need a recordset variable
Also, when you first open a recordset, if it...
• contains no records, .EOF will be true.
• contains one or more records, the first record will be current.
Therefore, you don't need to...
• check .BOF, or
• .MoveFirst
So you can...