Moi j'utilise le code suivant pour compacter la base access depuis un programme VB
Sub compacter_Base()
On Error GoTo sortie
sNomBase = Fen_ppaleMDI.cheminBase
sNomBaseTmp = App.Path & "\bdd\dosocTMP.MDB" '1. Compactage dans une nouvelle base
DBEngine.CompactDatabase sNomBase, sNomBaseTmp '2. Suppression de la base originale
Kill sNomBase '3. Renommer la base compactée avec le nom de la base originale
Name sNomBaseTmp As sNomBase
Exit Sub
sortie:
MsgBox "Une erreur est survenue (" & Err.Number & "). Description : " & Err.Description, vbCritical + vbOKOnly, "Compactage"
End Sub
Mais on ne peut l'effectuer si il y a une connexion en cours sur la base
A + bon code
Ben