Riformulo la domanda, ho spostato l'attività su una query (codice allegato).
Il problema è che quando lancio il comando, il codice viene eseguito solo sul primo record e non sui successivi.
Private Sub Comando143_Click()
Dim db As DAO.Database
Dim Query1 As DAO.Recordset
Dim rs As DAO.Recordset
Dim ConteggioRighe As Integer
'Apertura DB
Set db = CurrentDb
'Apertura query
Set Query1 = db.OpenRecordset("Query1", dbOpenDynaset)
'Apertura recodset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Query1", dbOpenDynaset)
rs.MoveLast: rs.MoveFirst
ConteggioRighe = rs.RecordCount
'Solo per debug poi si cancella
ConteggioRighe = DCount("*", "[Query1]")
MsgBox "N. Righe = " & ConteggioRighe
'Mi posiziono sul primo record
rs.MoveFirst
'Dichiaro che l'operazione terminerà quando i record sono finiti
Do Until rs.EOF
..........qui c'è il codice che mi fa l'operazione sul record..............
' Passo al recordset successivo
rs.MoveNext
' e ricominciamo da DO ad elaborare la successiva riga del recordset fin quando non si arriva al suo termine EOF
Loop
MsgBox ("Finito")
Query1.Close
End Sub