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