Ad ogni ciclo devi aprire e chiudere i recordset.
La connessione invece la apri solo all'inizio e la chiudi alla fine.
Oppure ottimizza le tabelle del tuo db.
L'errore che ottieni, comunque, sta nel fatto che dai per scontato che i dati selezionati dal db siano presenti. L'errore, infatti, dice che non trova corrispondenze sul database. Per ovviare all'errore biasogna controllare se il recordset restituitoci è vuoto o meno, mediante l'istruzione
codice:
if not rs.eof then
' leggiamo dal recordset perchè non è vuoto, ovvero EOF (End Of File)
else
' il recordset è vuoto e agiamo di conseguenza
end if