Divers

Access compacter et réparer un fichier trop grand

Même si nous sommes d’accord pour dire qu’une base de données Access ne devrait certainement pas exister pour gérer plus de 2Go de données, il se peut que vous ayez une telle base de données (Fig 1).

Fichier Access dépassant 2Go
Fig 1 : Fichier Access dépassant 2Go

Par exemple, lorsque des données externes sont importées dans la base de données, mais que vous avez supprimé les tables en interne, il vous faut la compacter et réparer afin de vider le cache, et diminuer la taille du fichier.

Cependant, avec un fichier Access de 2Go (Fig 1), lorsque vous tentez de le compacter et réparer (Fig 2), vous obtenez une erreur « Invalid argument » (Fig 3), qui vous signifie que la base de données est trop grosse pour être compactée – elle dépasse la taille maximale autorisée.

Access, compacter et réparer un fichier
Fig 2 : Access, compacter et réparer un fichier
Access, erreur de compactage
Fig 3 : Access, erreur de compactage

La solution que je vous propose pour récupérer votre base de données est très simple, c’est une autre de base de données Access à télécharger, CompactAndRepairDB-v1.0.mdb[1], qui vous permettra de compacter et réparer la première.

Tout d’abord, le processus de compactage ayant été démarré mais non fini, vous devez vous assurer de ne pas terminer avec le message d’erreur « Table TempMSysAccessObjects already exists. » (Fig 4).

Access, erreur aprés un premier compactage
Fig 4 : Access, erreur aprés un premier compactage

Pour ce faire, allez dans les options, et cochez la case « Systems objects » (Fig 5), ce qui aura pour effet de faire apparaître la table TempMSysAccessObjects (Fig 6), que vous vous devez de supprimer pour ne pas obtenir de message d’erreur au compactage (Fig 4)

Access, option d'affichage des objets système
Fig 5 : Access, option d’affichage des objets système
Access, affichage des objets systèmes
Fig 6 : Access, affichage des objets systèmes

Ensuite, téléchargez le fichier CompactAndRepairDB-v1.0.mdb[1], ouvrez le, et rendez-vous dans les macros (Fig 7). Double-cliquez sur la langue de votre choix (anglais, espagnol, francais, polonais), puis entrez le nom complet de votre fichier (Fig 8).

CompactAndRepairDB-vX.0.mdb, choix du language
Fig 7 : CompactAndRepairDB-vX.0.mdb, choix du language
CompactAndRepairDB-vX.0.mdb, choix de la base de données à compacter
Fig 8 : CompactAndRepairDB-vX.0.mdb, choix de la base de données à compacter

Saisissez ensuite le nom de destination de la base de données compactée (Fig 9), qui sera sauvegardée dans le répertoire racine C:\

CompactAndRepairDB-vX.0.mdb, choix du fichier en sortie
Fig 9 : CompactAndRepairDB-vX.0.mdb, choix du fichier en sortie

Bien entendu, cette procédure nécessite l’existence du fichier source, ce qui est vérifié grâce au code d’Allen Browne[2].