Eliminare il contenuto di tutte le tabelle di un database Access

A volte è necessario svuotare completamente il database senza perdere la struttura del database stesso.

In caso il database contenga molte tabelle farlo a mano è operazione lunga oppure  è necessario automatizzare l'operazione, in questi casi è sufficiente creare un modulo in VBA ed eseguirlo.

Creare un nuovo modulo VBA come segue.

Sub Svuota ()

Dim Dbs As Database
Dim tbl As TableDef

Set Dbs = CurrentDb

For Each tbl In Dbs.TableDefs
  If Mid(tbl.Name, 1, 4) <> "MSys" Then
     DoCmd.RunSQL "Delete from " & tbl.Name
  End If
Next tbl

 

End Sub

All'esecuzione verranno ciclate e svuotate tutte le tabelle contenute nel database.

E' importante che venga mantenuta questa parte :   If Mid(tbl.Name, 1, 4) <> "MSys" Then , altrimenti verranno cancellate anche le tabelle di sistema, corrompendo ll DB.

Verrà chiesta conferma di eliminazione per ogni tabella, per ovviare ciò è sufficiente non visualizzare gli avvisi di conferma di access.