Tutto ok, il .MoveFirst è superfluo!

EDIT: No no scusa!

rs.Open SQL, ...
Do While Not rs.EOF
...
rs.MoveNext
Loop
rs.Close

Basta così!