No reason RecordCount won't work. Just force a MoveLast/MoveFirst before the RecordCount to force the entire recordset into memory.
Me.Recordset.MoveLast
Me.Recordset.MoveFirst
NumRecords = Me.Recordset.RecordCount
You may want to check for EOF prior to performing the above to make sure the recordset isn't empty.
If you'd rather not code it like that, you can use a DCount on one of your two primary key fields, assuming you have your keys setup to not allow NULLs.
NumRecords = DCount("YourPrimaryKeyFieldName","YourTableName")
The first method will return the number of records regardless of whether or not there are NULLs in your data. The second method assumes no NULLs and will give an inaccurate count if NULLs exist on the field being counted.