Perchè 'smazzolarsi' inutilmente il recordset per poi scoprire solo alla fine che non esistono record?
Trovo molto più semplice ed efficiente usare il metodo Filter:

codice:
rs2.Filter = "<campo> <operatore> <valore>"
if rs2.recordcount = 0 then
    'Non vi sono record corrispondenti
    exit sub
end if

' solo se vi sono record, carico il MSHFlexGrid1