My guess is it's a property of your connection to the database. The connection determines the type of cursor your recordset will use. I think some cursor types do not support recordcount.
Look into the connection property CursorLocation. A value of 3 sets a client-side cursor. The default is server-side.
This is, as I said before, just a guess.