Fonseca,
Realmente selecionar apenas os registros que interessam como o Martini disse é o mais logico, mas se vc precisar dos outros registros em outro momento da rotina, precisa fazer o select pra selecionar todos... ai tenho uma sugestao:
Sua solução, com o If aninhado, é realmente a mais logica... tem como fazer como vc disse, com as condiçoes diretamente no Do, mas precisaria mais informaçoes sobre seus objetivos com o loop pra saber como montar direitinho...
Eu gosto do If aninhado, mas faço apenas uma coisa diferente... dá uma olhada:
While not rs.Eof
if not rs!Campo = CampoGuardado then exit sub
....
....
Loop
CampoGuradado = rs!Campo
Assim fica mais rapido pro computador processar, por nao ter que fechar o If...
é a unica mudança que posso sugerir com as informaçoes q vc deu...
Mas lembre-se que se for possivel selecionar apenas os registros onde rs.Campo = CampoGuardado, fica muito mais rapido e facil... nao desprese a dica do Martini...