La domanda è molto strana... al limite del dubbio funzionale... ma vedrai tu...!
Io farei una cosa simile
Dim strSQL As String
Dim tdf As DAO.Tabledef
Dim rsT As DAO.Recordset
Dim rsR As DAO.Recordset
strSQL = "SELECT MsysObjects.Name "
strSQL = strSQL & "FROM MsysObjects "
strSQL = strSQL & "WHERE ((Left$([Name],1)<>'~') AND (Left$([Name],4)<>'Msys')) "
strSQL = strSQL & "AND (MsysObjects.Type=1) "
strSQL = strSQL & "ORDER BY MsysObjects.Name;"
Set rsT=DbEngine(0)(0).OpenRecordset(strSQL)
Debug.Print "Numero Tabelle = " & rs.RecordCount
Do Until rsT.Eof
strSQL="SELECT Count(*) FROM " & rsT.Fields(0).Value
Set rsR=DbEngine(0)(0).OpenRecordset(strSQL)
Debug.Print "La Tabella [" & rsT.Fields(0).Value & "] ha n°" & rsR.Fields(0).Value & " record(s)"
rsT.Movenext
Loop
rsT.Close
rsR.Close
Set rsT=nothing
set rsR=Nothing
Quello che ti ho scritto STAMPA nella finestra Immediata del VBA(CTRL+G) il carico che chiedi.
Se vuoi invece riempire una LIstBox la cosa è decisamente meglio e piu comoda... predisponi una ListBox a 2 Colonne e modifichi il codice così:
Dim strSQL As String
Dim tdf As DAO.Tabledef
Dim rsT As DAO.Recordset
Dim rsR As DAO.Recordset
strSQL = "SELECT MsysObjects.Name "
strSQL = strSQL & "FROM MsysObjects "
strSQL = strSQL & "WHERE ((Left$([Name],1)<>'~') AND (Left$([Name],4)<>'Msys')) "
strSQL = strSQL & "AND (MsysObjects.Type=1) "
strSQL = strSQL & "ORDER BY MsysObjects.Name;"
Set rsT=DbEngine(0)(0).OpenRecordset(strSQL)
'Debug.Print "Numero Tabelle = " & rs.RecordCount
Do Until rsT.Eof
strSQL="SELECT Count(*) FROM " & rsT.Fields(0).Value
Set rsR=DbEngine(0)(0).OpenRecordset(strSQL)
Me!NomeListBox.AddItem rsT.Fields(0).Value & ";" & rsR.Fields(0).Value
rsT.Movenext
Loop
rsT.Close
rsR.Close
Set rsT=nothing
set rsR=Nothing
Si possono fare mille cose...
Saluti