Strange. The code below works properly on a mixture of SQL server linked tables, and local ones.
Have you deleted records from the tables concerned but not compacted and repaired / closed and reopened the database?
Code:
Dim ssql As String
Dim strBeforeOutput As String
Dim db As Database
Dim rs As Recordset
Dim tdf As TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
'Debug.Print tdf.Name
If Left(tdf.Name, 4) <> "MSys" Then
Set rs = db.OpenRecordset(tdf.Name, dbOpenSnapshot)
'Debug.Print tdf.Name
If Not rs.EOF And Not rs.BOF Then
rs.MoveLast
Debug.Print tdf.Name & " - " & rs.RecordCount & " records" & vbCrLf
End If
Set rs = Nothing
End If
Next