Ragazzi ci sto sbattendo la testa da giorni

Ho un programma che gestisce vari db access.
Ogni DB rappresenta un'annualità (esempio il db 2009 contiene tutti i dati riguardanti il 2009)

Tra le funzioni del programma c'è quella di eliminare le annualità (e quindi il db)

Per fare questo eseguo queste istruzioni:

.chiudo la connessione al db da eliminare
.lo elimino

usando questo codice:
codice:
 Do Until Cn.State = ConnectionState.Closed
                    Cn.Close()
                Loop

                Kill(appPath & "database\" & annoSelezionato & ".mdb")
Mi capita (solo a volte) che mi restituisca questo errore:

Il processo non può accedere al file 'D:\Progetti VB.Net\CDL Studio\CDL Studio\bin\Debug\database\2010.mdb' perché è in uso da un altro processo.

Mi chiedo...se il ciclo DO UNTIL viene soddisfatto (e quindi la connessione è chiusa) come mai il db risulta ancora in uso? :/