recordcount ti dà -1 perchè le impostazioni di cursortype e cursorlocation ti producono un recordset che non riempie questa proprietà.
per vedere se non ci sono record vedi se rs.eof = false.
però mi sembra guardando di sfuggita il codice che fai un pò di confusione tra rs e res, alterni queste due variabili ma non sono sicuro sia giusto.
e poi è meglio se usi il debug di Visual BAsic (basta cliccare sulla barra di sinistra in prossimità della prima istruzione a cui ti vuoi fermare, ti mette un punto marroncino, poi fai F5 per eseguire e con F8 procedi passo passo) così puoi controllare i valori delle variabili con delle semplici print