Comment réparer une base de données Access dont l’état est incohérent ?

Bien que Microsoft Access ne soit ni populaire ni largement utilisé autant que Word ou Excel, il s’agit de l’un des programmes MS Office les plus puissants à certains égards, voire tous. En tant qu’utilisateur, vous avez peut-être constaté que ses capacités étaient supérieures à celles d’Excel en ce qui concerne la création de bases de données pour le stockage ou la gestion de données.

Vous avez peut-être également constaté qu’il est très facile de poser des questions sur les informations stockées dans la base de données, de générer des rapports à partir de celle-ci ou de modifier les données qu’elle contient. Cependant, tous ces éléments ne rendent pas ce database management system (DBMS) immunisé contre la corruption. Cela peut être dû à un certain nombre de raisons, telles que des erreurs de gestion, des failles dans le programme lui-même, etc. Comme tout autre programme, vous pouvez parfois rencontrer différents messages d’erreur lorsque vous y travaillez. Une fois cette erreur, l’erreur 9505 dont le message est le suivant :

« Microsoft Access a détecté que cette base de données est dans un état incohérent. »

La capture d’écran du message d’erreur est affichée ci-dessous :

Figure : Message d’erreur

Lorsque ce message d’erreur s’affiche, vous pouvez cliquer sur le bouton OK pour que le programme MS Access tente de réparer seul la base de données corrompue ou endommagée. Néanmoins, si MS Office Access ne parvient pas à réparer la base de données, l’erreur 2317 s’affichera comme suit :

« La base de données ‘xxx.mdb’ ne peut pas être réparée ou ce n’est pas un fichier de base de données Microsoft Access. »

Ici, « Xxx.mdb » est le nom d’un fichier de base de données Access corrompu. La capture d’écran du message est la suivante :

Remarque – La signification de cette erreur est que MS Access a échoué dans sa tentative de réparation du fichier de base de données.

À propos de l’erreur 9505

MS Access associe un moteur de base de données Microsoft Jet relationnel, une interface utilisateur graphique et des outils de développement logiciel. Toutefois, lorsque le moteur Access Jet peut reconnaître les structures de base et les définitions importantes du fichier de base de données MDB, mais constate une incohérence dans les définitions de tableaux ou les données de tableaux, il affiche le code d’erreur 9505.

Après cela, MS Access tente de corriger les incohérences et de réparer la base de données elle-même. S’il ne résout pas l’incohérence dans les définitions de tableaux qui sont significatives pour l’ensemble de la base de données, montrant ainsi qu’elle ne peut pas être réparée, il affiche l’erreur 2317 et quitte l’opération d’Ouverture.

Solutions pour réparer la base de données Access dans une erreur d’état incohérent

Vous trouverez ci-dessous quelques solutions pour tenter de réparer une base de données MS Access dont l’état est incohérent.

  1. Exécutez l’utilitaire « Compact and Repair » dans Microsoft Access qui remplit deux fonctions. Tout d’abord, il compacte la base de données en libérant l’espace supprimé qui est toujours détenu par la base de données et ne sert qu’à corrompre la base de données et à fragmenter les données stockées. Deuxièmement, il essaie de réparer la base de données.
  1. Exécutez l’utilitaire « Compact and Repair » à l’aide d’un commutateur de ligne de commande. Vous pouvez l’utiliser si votre base de données Access ne s’ouvre pas.

Pour ce faire, créez un raccourci puis, pour la cible, utilisez : « C: \Program Files \Office11\msaccess.exe” “C:\pathtodatabase\database.mdb” /repair

Remarque : remplacez les « deux chemins placés entre guillemets » par le « chemin actuel de l’exécutable et de la base de données d’Access ».

  1. Créez une nouvelle base de données et, tout en la maintenant vide, essayez d’y importer un tableau. En cas de succès, les utilisateurs peuvent importer tous les tableaux dans la nouvelle base de données. Ceci est suggéré car certaines erreurs de base de données Access ne peuvent pas être corrigées par les utilitaires Compact and Repair. Pour importer la base de données dans la nouvelle base de données, procédez comme suit :
  • Dans l’onglet External Data, sélectionnez l’option Import Access Database.
Figure : Option d’importation de base de données Access
  • Sélectionnez ensuite le bouton radio « Import tables, forms, reports, macros and, modules into the current database. » et appuyez sur le bouton OK.
Figure : Option Obtenir une base de données externe
  • Sélectionnez les objets de base de données et appuyez sur le bouton OK.
Figure : Importer des objets
  1. Utilisez l’outil Stellar Repair for Access qui peut réparer une base de données Access incohérente. Le logiciel a la capacité de réparer une base de données MS Access corrompue ou endommagée et de récupérer tous ses objets avec succès.

En outre, il effectue les tâches suivantes :

  • Répare la base de données sauvegardée dans les fichiers .ACCDB et .MDB.
  • Restaure les tableaux, les requêtes, les index et les relations.
  • Répare le type données calculées et les tableaux liés.
  • Restaure tous les objets dans une nouvelle base de données.
  • Offre la possibilité de récupérer des formulaires et des modules protégés par un mot de passe.
  • Peut restaurer des sauvegardes supprimées dans une nouvelle base de données.
  • Prend en charge MS Access 2019, 2016, 2013, 2010, 2007, 2003, 2002 & 2000 et est compatible avec Windows 10, 8.1, 8, 7, Vista, 2003 et XP.

Conclusion

Vous connaissez maintenant les différentes solutions disponibles pour réparer la base de données MS Access dans un état incohérent. Cependant, le logiciel Stellar Repair for Access est la solution la mieux adaptée, car ses avantages l’emportent sur ceux offerts par d’autres solutions. De plus, il s’agit d’un logiciel intuitif permettant à tous les types d’utilisateurs de l’exécuter facilement et de remplir son objectif. Il n’est en aucun cas comparable à d’autres solutions car il est rarement impossible de réparer la base de données Access qui est dans un état incohérent.