You're opening an ADO Recordset using the default Cursor and Locktype. The RowCount will ALWAYS be -1 in that scenario. If you want a true RowCount/RecordCount, you must change the Cursor and Locktype according. Also, here's a simpler method of doing that:
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "EXEC usp_Text @Param1='Test', m_oConn, adOpenKeyset,adLockOptimistic
Your rst variable would then contain the fully populated recordset, and would contain a valid RecordCount. That said, unless you have a good reason for opening a Recordset with these parameters, then you're much better off using Count(*) or something of that nature to get a valid Recordcount ... using OpenKeyset or OpenDynamic is normally a poor choice, performance-wise