Cosa sarebbe quel riferimento (i-1)...?
Cioè questa roba cosa significa...?
ElseIf Tabella1.[Campo2](i) = Tabella1.[Campo2](i - 1) Then
Sai che stai usando i recordset e non un'array...?
Per spostarsi tra i records, il precedente nel tuo caso, si usano i metodi corretti, eventualmente dovresti leggere in relazione a MovePrevious ... ma nel tuo caso non serve spostarsi basta memorizzare in una variabile il valore del record attivo ed usarlo al passaggio successivo.come PreviousValue... al primo passaggio ovviamente vale zero...
Perche chiami il metodo EDIT all'inizio...?
Lo si apre quando la condizione è verificata e lo si chiude appena terminato di modificare il record corrente... prima di passare al successivo.
Insomma ci sono veramente parecchie cose che non vanno.