Quando usar o método MoveFirst ? 

Ao trabalhar com banco de dados ( Access ) , quantas vezes você , após abrir um Recordset utilizou o método MoveFirst para mover o ponteiro para o primeiro registro antes de fazer um Loop pelo recordset ??

Com a versão 3.6 da DAO e ao usar ADO não é mais necessário  este desperdício. Ao abrir um recordset tanto a DAO como a ADO agora movem o ponteiro para o primeiro registro automaticamente. Se o recordset está vazio , as propriedades BOF e EOF serão setadas como True.

Então para saber se um recordset contém ou não registros apenas use a propriedade EOF a seguir comande um MoveNext antes de fazer o Loop pelos registros. Veja o exemplo a seguir:

Usando DAO: 

Dim rst As DAO.Recordset
Set rst = db.OpenRecordset("Sua Tabela")
With rst
    Do Until .EOF
         Debug.Print .Fields(1)
        .MoveNext
    Loop
    .Close
End With
Set rst = Nothing

Se quiser usar ADO a única diferença será a forma de abrir o recordset o resto do código é o mesmo...

Até mais...