^
Indeed. With DAO, the recordset is ready to use as soon as first record or page is loaded, so you don't have accurate count unless you move to the last record. This is quite expensive.
But you get -1, which leads me to suspect that you are using ADO or querying a linked table. If this is the case, I believe you cannot retrieve recordcount with that method, and may have to use a Count(*) query to get the count. There may be workarounds that I don't know about as well.