Di seguito trovate il codice necessario per chiudere tutti gli oggetti di un Database di MS Access

Public Sub chiuditutto()
    Dim aob As AccessObject
With CurrentData
   ' "Tables"
   For Each aob In .AllTables
       If aob.IsLoaded Then
           DoCmd.Close acTable, aob.Name, acSaveYes
       End If
   Next aob
 
   ' "Queries"
   For Each aob In .AllQueries
       If aob.IsLoaded Then
           DoCmd.Close acQuery, aob.Name, acSaveYes
       End If
   Next aob
End With
 
 
With CurrentProject
   ' "Forms"
   For Each aob In .AllForms
       If aob.IsLoaded Then
           DoCmd.Close acForm, aob.Name, acSaveYes
       End If
   Next aob
 
   ' "Reports"
   For Each aob In .AllReports
       If aob.IsLoaded Then
           DoCmd.Close acReport, aob.Name, acSaveYes
       End If
   Next aob
 
   ' "Pages"
   For Each aob In .AllDataAccessPages
       If aob.IsLoaded Then
           DoCmd.Close acDataAccessPage, aob.Name, acSaveYes
       End If
   Next aob
 
   ' "Macros"
   For Each aob In .AllMacros
       If aob.IsLoaded Then
           DoCmd.Close acMacro, aob.Name, acSaveYes
       End If
   Next aob
 
   ' "Modules"
   For Each aob In .AllModules
       If aob.IsLoaded Then
           DoCmd.Close acModule, aob.Name, acSaveYes
       End If
   Next aob
End With



End Sub