Dopo che hai fatto la open sul recordset:
rec.Open query, cnado
hai provato a vedere quanti record ha selezionato?
? Rec.recordcount
A me sembra più un errore di connessione
Prova anche:
rec.CursorLocation = adUseClient
rec.Open query, cnado, adOpenKeyset, adLockOptimistic
Ciao