Pour utiliser ce qui suit, vous avez besoin de savoir taper du code Visual Basic dans un module Access, compiler du code, et exécuter du code.
Le code qui suit permet de compacter une base de données, mais il ne peut figurer dans la base de données à traiter. Vous devez donc créer une autre base, et vous placerez le code ci-dessous dans un module quelconque de cette autre base.
' -------------------------------------------------- ' REPARATION ET COMPACTAGE DE BASE DE DONNEES ' -------------------------------------------------- ' Entrée : strBase <- Chemin d'accès à la base de données ' strTemp <- Nom de la base de données temporaire ' Function RepairCompact(ByVal strBase As String, ByVal strTemp As String) As Boolean On Error GoTo RCErr ' Détruire la base temporaire si elle existe If Dir$(strTemp) <> "" Then Kill strTemp ' Réparer et compacter la base de données DBEngine.RepairDatabase strBase DBEngine.CompactDatabase strBase, strTemp ' Si tout a marché, détruire la base d'origine et renommer la base temporaire Kill strBase Name strTemp As strBase RepairCompact = True Exit Function RCErr: MsgBox "L'erreur suivante s'est produite : " & Err.Description, vbCritical, "Compactage" RepairCompact = False Exit Function End Function
Pour tester, ouvrez la fenêtre de debugging, et tapez-y :
? RepairCompact("chemin de la base à compacter", "chemin
d'une base temporaire") puis [ENTREE].
Par exemple :
? RepairCompact("c:\mes documents\access\clients.mdb",
"c:\mes documents\access\clients.tmp")
Vous pouvez bien sûr placer cette ligne dans le code d'un bouton de commande, sur un formulaire.