You may find this helpful. Run it before you open your report and base your report on a table tblRecordCount.
Keep your powder dry.
B.
Public Sub subTableRecordCnt()
'############################
'NOTES
'----------------------------
'Created a table tblRecordCount and base your report on it
'Table Definition of tblRecordCount
' Name = string
' RecordCnt = number
'
'Steps
'1 - Clear tblRecordCount
'2 - Locate all internal(1) and Access Linked(6) Tables
'3 - For each table do a record Count
'4 - Store count in tblRecordCount
'############################
Dim db As DATABASE
Dim rsTables As DAO.Recordset ' LIST OF TABLES TO COUNT
Dim rsCount As DAO.Recordset ' TABLE TO COUNT
Dim rsStore As DAO.Recordset ' Area to Store
Dim strSQL As String
strSQL = "SELECT Name "
strSQL = strSQL & "FROM MSysObjects "
strSQL = strSQL & "WHERE MSysObjects.Name Not In ('tblRecordCount') "
strSQL = strSQL & "AND MSysObjects.Type In (1,6) "
strSQL = strSQL & "AND Left([Name],4) Not In ('MSys')"
'-------------------
'STEP 1
'Clear Record Source
'-------------------
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM tblRecordCount"
DoCmd.SetWarnings True
Set db = CurrentDb
'-------------------
'STEP 2
'Locate all Tables
'-------------------
Set rsTables = db.OpenRecordset(strSQL, dbOpenSnapshot)
Set rsStore = db.OpenRecordset("tblRecordCount", dbOpenDynaset)
With rsTables
Do While Not .EOF
'-------------------
'STEP 3
'For each table do a record Count
'-------------------
Set rsCount = db.OpenRecordset(!Name, dbOpenSnapshot)
If rsCount.EOF = False Then rsCount.MoveLast
'-------------------
'STEP 4
'Store count in tblRecordCount
'-------------------
With rsStore
.AddNew
!Table = rsTables!Name
!RecordCnt = rsCount.RecordCount
.Update
End With
.MoveNext
Loop
End With
End Sub