MOPO3, это у тебя не с ASP непонятки, а скорее с ADO, потому как RecordCount - это свойство объекта Recordset.
Вот что по этому поводу говорит MSDN:
Use the RecordCount property to find out how many records are in a Recordset object. The property returns -1 when ADO cannot determine the number of records or if the provider or cursor type does not support RecordCount. Reading the RecordCount property on a closed Recordset causes an error.
...
The cursor type of the Recordset object affects whether the number of records can be determined. The RecordCount property will return -1 for a forward-only cursor; the actual count for a static or keyset cursor; and either -1 or the actual count for a dynamic cursor, depending on the data source.
Насколько мне помнится из личной практики, это необходимое, но не достаточное условие. Кажется, правильное значение получается лишь в том случае, когда курсор создается на стороне клиента. По умолчанию обычно создается на сервере. Если есть возможность, погляди,где курсор создался в твоем случае.