Tu recordset (o cursor como se lo conoce) RS debe ser abierto en forma estática para que la propiedad RecordCount funcione bien.
Si es abierto de otra forma (dinamica por ejemplo, para poder modificar, agregar, etc.), la propiedad solo retornará el valor correcto si el puntero del recordset se encuentra al final del mismo (justo antes del eof)
Por ejemplo. Para que dicha propiedad funcione ya en la apertura del recordset, este deberia ser abierto así:
RS.Open strSQL, objConn , adOpenStatic, adLockOptimistic
y no así:
RS.Open strSQL, objConn , adOpenDynamic, adLockOptimistic
asumiendo por supuesto que RS es tu recordset, strSQL es la sentencia sql de seleccion, objConn es el objeto de conexion a la B.D. y el resto de los parámetros los tomas incluyendo el archivo adovbs.inc de esta manera:
<!-- #INCLUDE FILE="adovbs.inc" -->
(dicho archivo se puede bajar de cualquier sitio ya que es publico)
Salu2