Conosco molto poco di DAO, quindi prendi la risposta con le pinze:

1) EditMode è inutile, dato che non modifichi i record ma li stai eliminando.


2) Non ha molto senso aprire un recordset con un SELECT * per cancellarli uno alla volta.
E' più logico usare il comando DELETE *, cioè

codice:
StrCriterio = "DELETE * from ARCHIVIO"
Set Rst = CurrentDb.OpenRecordset("StrCriterio", dbOpenDynaset)
Ovviamente il recordset non restituirà alcuna riga (dato che è vuoto).


Meglio ancora e più semplice è non usare un recordset, ma usare direttamente il metodo Execute del database (o connessione), e dovrebbe essere così:

codice:
CurrentDb.Execute "DELETE * FROM Archivio"
Con una riga di codice fai tutto il lavoro.

Comunque verifica sulla guida il metodo Execute

3) Infine, per azzerare il contatore è necessario compattare il database, usando il metodo CompactDatabase:

codice:
DBEngine.CompactDatabase vecchiodb, nuovodb, internazionali, opzioni, password
Vedi la guida per i dettagli e le spiegazioni sull'uso del metodo