Tienes la solucion del recordcount aqui :
http://www.aspfacil.com/vertruco.asp?id=3 como ya habia comentado u_goldman
El problema es que un cursor de tipo adCursorForwardOnly (valor 0) solo permite moverse hacia adelante. Y RecordCount lo que hace es ir al final del recordset y volver al principio. Si no puede volver devolverá un -1.
Así que lo que hay que hacer es poner un CursorType que permita moverse adelante y atrás por el Recordset.