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