quell'errore lo da quando il recorset non contiene niente! Quando apri il recorset con la query, prima di usarlo vedi se contiene qualcosa, esempio:
codice:
Set miorst = miodb.OpenRecordset("SELECT * from tabella where dataregistrazione = #" & r & "#;", dbOpenDynaset) 
if miorst.recordcount>0 then
....allora ci sono record
else
...non ci sono record
end if