La plupart des utilisateurs de Microsoft Access ont, à un moment donné, rencontré le message indiquant que leur base de données a été corrompue ou placée dans un « état incohérent ». Vous verrez une boîte de dialogue avec le message :Microsoft Access a détecté que cette base de données est dans un état incohérent , et le logiciel tentera de récupérer la base de données.
Depuis mes débuts avec Microsoft Access il y a 25 ans, l'aspect frustrant de cette erreur est qu'il n'y a pas de raison définitive pour laquelle la base de données a été corrompue. Les messages d'erreur dans une variété d'autres logiciels sont beaucoup plus descriptifs sur ce qu'il faut faire pour éviter de violer les règles du logiciel. Dans Access, par exemple, certains caractères ne sont pas autorisés lors de la désignation des champs dans une table. Si vous choisissez un personnage qui n'est pas aligné sur les règles, le message qui suit est clair. Sélectionnez le bouton Aide, puis suivez les règles affichées concernant les règles de nom de table.
Alors, que faire concernant la corruption de la base de données dans Access ?
Tout d'abord, il est important de savoir que la plupart des bases de données Access sont corrompues à un moment donné. J'ai découvert que les méthodes les plus éprouvées pour lutter contre la corruption ne consistent pas à perdre du temps à essayer de déterminer pourquoi la base de données a été corrompue, mais plutôt à se concentrer sur les méthodes qui empêchent la base de données d'être corrompue en premier lieu.
Voici quelques-unes des actions des consultants Arkware qui ont permis de réduire considérablement la corruption de la base de données :
- Divisez votre base de données en un front-end et un back-end (deux fichiers séparés). Toutes les tables de la base de données se trouvent dans la base de données principale et chaque utilisateur dispose de sa propre copie de la base de données frontale sur le bureau ou le disque dur local. La base de données frontale contient tous les objets de la base de données (requêtes, formulaires, rapports et macros/VBA). Chaque PC a la même structure de dossiers telle que (C:\WorkingDatabase\DatabaseName). À l'aide du gestionnaire de tables liées, liez les tables de la base de données principale à la base de données frontale. Access dispose d'un assistant de fractionnement de base de données qui peut aider à fractionner la base de données d'origine en bases de données frontale et principale. Recherchez une future entrée de blog sur l'utilisation de cet assistant.
- Forcer la fermeture de la base de données à la fermeture des bureaux ou à d'autres temps d'arrêt spécifiques. Cela est dû au fait que les utilisateurs laissent parfois le système ouvert et que la connexion d'accès sans surveillance peut être déconnectée du réseau, ce qui peut entraîner une corruption. Le code peut être placé sur l'événement "OnTimer" de n'importe quel formulaire de base de données qui reste ouvert. Le meilleur formulaire de base de données à utiliser est un formulaire de standard téléphonique principal. Ajoutez simplement DoCmd.Quit au code VBA pour fermer le système à une certaine heure de la journée (c'est-à-dire 2h00).
- Assurez-vous que tous les utilisateurs utilisent la même version d'Access sur tous les ordinateurs.
- Créez un fichier batch de commandes MS-DOS qui copie une nouvelle base de données frontale sur le lecteur C:\ local de l'ordinateur de l'utilisateur. Ce n'est pas obligatoire, mais cela garantit que tout le monde reçoit une copie propre de la base de données frontale locale.
- Ne pas avoir de tables d'autres bases de données Access liées à votre base de données principale qui utilisent différentes versions d'Access.
- Désactiver la fonction de correction automatique d'accès. Cela peut être fait en sélectionnant Fichier> Options> Base de données actuelle. Sous "Fonctions de correction automatique du nom", désélectionnez "Correction automatique du nom de la piste"
Ce sont quelques-unes des principales mesures préventives pour se prémunir contre la corruption de la base de données. Si vous rencontrez des problèmes de corruption de base de données, contactez Arkware et nous pourrons vous aider à créer un environnement plus stable pour votre base de données Microsoft Access.