Numéro d'article: 279334 - Dernière mise à jour: lundi 29 janvier 2007 - Version: 3.5

ACC97 : Comment faire pour réparer une base de données Jet 3.5 endommagée

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Modéré : Nécessite macro base, de codage et les compétences de l'interopérabilité.

Pour obtenir Microsoft Access 2.0/Jet 2.x et 95 Access/Jet 3.0 version de cet article, consultez 109953  (http://support.microsoft.com/kb/109953/EN-US/ ) .

Pour une Microsoft Access 2000/Jet 4.0 version de cet article, reportez-vous 209137  (http://support.microsoft.com/kb/209137/EN-US/ ) .

Sommaire

Agrandir tout | Réduire tout

Résumé

Facteurs environnementaux peuvent endommager votre fichier de base de données. Les symptômes d'une base de données endommagée peuvent aller de l'apparition dans certains enregistrements à l'impossibilité d'ouvrir un des objets dans la base de données, à l'impossibilité complète d'ouvrir le fichier dans Access. La réparation utilitaires et de compactage dans Microsoft Access sont des outils utiles pour la récupération et l'optimisation des fichiers de base de données Microsoft Access. Cet article décrit ces utilitaires et propose d'autres solutions pour la réparation de bases de données endommagées. En outre, les informations sur les causes possibles de corruption sont fournies dans la section «Par défaut provoque des MDB fichier endommagé» de cet article.

Plus d'informations

Bien que les étapes décrites dans cet article permettent généralement de récupération des fichiers de base de données afin de protéger vos données endommagés, vous devez créer une copie de sauvegarde de votre fichier de base de données aussi souvent que possible.

La réparation et les utilitaires Compact

L'utilitaire de réparation

L'utilitaire de réparation peut résoudre des bases de données avec certains types de dommages. Il tente de réparer uniquement les tables, requêtes et les index de la base de données. Il n'essaie pas de réparer les formulaires endommagés, rapports, macros ou modules ; elle ne, toutefois, leur copie à la base de données réparée, nouveau.

IMPORTANT : exécuter la commande Réparer une base de données uniquement lorsque le moteur de base de données Microsoft Jet renvoie un message d'erreur indiquant que la réparation doit être exécuté. La commande Réparer une base de données ne doit pas être exécutée dans d'autres circonstances.

Utilitaire Compact

L'utilitaire de compactage élimine l'espace vide dans une base de données existante. Il le fait en créant une nouvelle base de données de destination et copie chaque objet de l'ancienne base de données vers le nouveau. Si vous choisissez Compacter la base de données dans le nom de base de données d'origine au lieu de vers une nouvelle base de données, l'utilitaire de compactage crée une base de données temporaire, exporte tous les objets de la base de données d'origine dans la base de données temporaire, supprime la base de données d'origine et puis renomme la base de données temporaire au nom de la base de données d'origine.

IMPORTANT : compression souvent de la base de données est la meilleure maintenance préventive pour un fichier .mdb. Voici une liste d'actions exécutées par l'utilitaire de compactage.
  • Réorganisation des pages d'une table de sorte qu'ils se trouvent dans des pages adjacentes de la base de données. Cela améliore les performances, car la table est plus fragmentée dans la base de données.
  • Récupération de l'espace inutilisé généré par les suppressions d'objets et d'enregistrements. Lorsque des objets ou des enregistrements sont supprimés de la base de données, l'espace qu'ils occupés est marqué comme disponible pour les nouveaux ajouts à la base de données. Toutefois, la taille de la base de données reste la même que si la base de données est compactée. Qui des ajoutées, supprimées et mis à jour d'enregistrements et objets fréquemment, vous devez compacter fréquemment les bases de données.
  • Réinitialisation incrémentation des champs NuméroAuto afin que la valeur suivante affectée soit une supérieure à la valeur la plus élevée dans les autres enregistrements. Par exemple, si tous les enregistrements de la base de données ont été supprimés après l'avoir compacté la base de données, la valeur du champ NuméroAuto sera 1 lorsque l'enregistrement suivant est ajouté. Si la plus haute valeur NuméroAuto restante dans la base de données est 50, après le compactage, la valeur sera 51 lorsque l'enregistrement suivant est ajouté. Notez que cela est vrai même si des enregistrements contenant des valeurs supérieures à 50 ont été précédemment ajoutés, mais ont été supprimés avant de le compactage.
  • Régénère les statistiques de table utilisées dans le processus d'optimisation des requêtes. Ces statistiques peuvent devenir obsolètes au fil du temps, généralement si les transactions ont été annulées ou si la base de données n'a pas été correctement fermé raison de perte d'alimentation ou échec complètement quitter le programme à l'aide de Microsoft Jet avant de vous avez activé l'ordinateur hors tension.
  • Balisage de toutes les requêtes de sorte qu'elles soient recompilées à la prochaine fois que l'exécution de la requête. Ceci est important car statistiques de base de données peuvent modifier et d'une requête précédemment compilée peut avoir un plan de requête inexact.

Directives importantes pour compactage d'une base de données

Avant de la compacter une base de données, les conditions suivantes doivent être remplies :

L'utilisateur compactage de la base de données doit être connecté à l'aide d'un compte possédant des autorisations de sécurité administrer pour toutes les tables ou de modifier la structure dans la base de données.

Suffisamment d'espace disque doit être pour les deux versions d'origine et compactées de la base de données, même si la base de données est en cours compactée par l'intermédiaire de l'interface utilisateur de Microsoft Access en utilisant le même nom de fichier. La base de données compactée est renommée que la base de données d'origine uniquement lors du compactage réussit.

Autres utilisateurs ne doivent pas avoir la base de données ouvrir. Lorsqu'une base de données est compactée, elle doit être ouverte exclusivement par Microsoft Jet afin d'empêcher les utilisateurs l'accès et la modification de la base de données au cours du processus.

Récupération d'une base de données endommagée

Si vous rencontrez des numéros d'erreur Microsoft Jet 3.x 3197, 3343 ou 3015, reportez-vous à l'article suivant dans la base de connaissances Microsoft :
182867  (http://support.microsoft.com/kb/182867/EN-US/ ) ACC : Moteur de base de données Jet 3.x messages d'erreur suite à corruption
Les étapes suivantes présentent une méthode générale permettant de réparer une base de données endommagée :
  1. Faites une copie du fichier de base de données (.mdb) endommagé en tant que sauvegarde.
  2. Assurez-vous que le fichier .mdb est fermé et supprimez le fichier .ldb correspondant, s'il s'y trouve.

    Remarque : le fichier .ldb sert à déterminer quels enregistrements sont verrouillés dans une base de données partagée et par qui. Si une base de données est ouverte pour une utilisation partagée, le fichier .ldb est créé portant le même nom que la base de données correspondante (.mdb). Par exemple, si vous ouvrez (pour une utilisation partagée) l'exemple de base de données Comptoir.mdb dans le dossier C:\Program Files\Microsoft Office\Office\Samples, puis un fichier appelé Comptoir.ldb est créé automatiquement dans le même dossier. Le fichier .ldb est supprimé automatiquement après que le dernier utilisateur a quitté la base de données à deux exceptions près : lorsque le dernier utilisateur n'a pas supprimer des autorisations au dossier contenant le fichier .mdb ou lorsque la base de données est endommagée.

    Pour plus d'informations sur les fichiers .ldb, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    136128  (http://support.microsoft.com/kb/136128/EN-US/ ) ACC : Introduction aux fichiers .ldb (95/97)
    Dépannage d'où la corruption de la base de données, vous pouvez afficher le contenu des fichiers .ldb en exécutant l'utilitaire Ldbview. Pour plus d'informations sur cet utilitaire, reportez-vous à la section "How pour déterminer qu'utilisateurs/postes de travail sont à l'origine du fichier pour être marqués suspects" de cet article.
  3. Exécutez l'utilitaire de compactage de la manière suivante :
    1. Si une base de données est ouverte, fermez-la.
    2. Dans le menu Outils, pointez sur Utilitaires de base de données et puis cliquez sur Compacter la base de données.

      À ce stade, vérifiez votre base de données pour voir si le dommage a été réparé. Sinon, passez aux étapes restantes.
  4. Si l'erreur se trouve dans une table, une requête ou un index, exécutez l'utilitaire de réparation comme suit :

    IMPORTANT : exécuter la commande Réparer une base de données uniquement lorsque le moteur de base de données Microsoft Jet renvoie un message indiquant que la réparation doit être exécuté. La commande Réparer une base de données ne doit pas être exécutée dans d'autres circonstances.
    1. Si une base de données est ouverte, fermez-la.
    2. Dans le menu Outils, pointez sur Utilitaires de base de données et puis cliquez sur Base de données.
    3. Sélectionnez le fichier endommagé dans la boîte de dialogue Base de données, puis cliquez sur Réparer.

      Si la réparation réussit, le message suivant s'affiche :
      Correctement réparé la base de données '<path>< nom de la base de données >'.
      Si la réparation ne réussit pas, vous recevrez un message indiquant l'opération. Cela signifie que les dommages causés à une table, une requête ou un index sont donc grave que ne peuvent pas être corrigée ou les dommages dans un objet de l'utilitaire de réparation ne peuvent pas affecter.
  5. Si l'erreur se trouve dans une table et les étapes précédentes n'ont pas récupérée il, essayez les opérations suivantes :
    1. Dans Microsoft Access, exportez la table dans un fichier ASCII (texte délimité). Pour plus d'informations, rechercher la phrase "fichier texte délimité" et puis affichez la rubrique "exportation de données Access" à l'aide de l'index de l'aide Microsoft Access.
    2. Supprimer les relations associées à cette table, puis supprimez la table à partir de la base de données.
    3. Compacter la base de données.
    4. Recréez la table et toutes les relations qu'elle avait.
    5. À l'aide d'un traitement de texte, recherchez des données incorrectes ou inhabituelles dans le fichier ASCII et supprimez ces enregistrements. Enregistrez le fichier dans un format de fichier texte ASCII.
    6. Réimporter le fichier ASCII dans la table nouvellement recréée. Pour plus d'informations, recherchez l'expression "fichier texte délimité" et affichez la rubrique «Importation ou liaison» à l'aide de l'index de l'aide Microsoft Access.
    7. Entrez à nouveau tous les enregistrements que vous avez dû supprimer.
  6. Si les étapes précédentes n'ont pas permis de restaurer votre base de données endommagée, essayez de créer une nouvelle base de données et d'importer les objets, un par un, de l'ancienne base de données vers le nouveau. Puis recréez les relations. Cette technique résout les problèmes avec les tables système endommagées dans la base de données.
  7. Si l'erreur se trouve dans un formulaire ou un état, elle peut se trouver le formulaire ou état lui-même, ou un ou plusieurs de ses contrôles. Vous pouvez supprimer le formulaire ou le rapport et importer à partir de la copie de sauvegarde de votre base de données ou utiliser une des options suivantes :
    • Si l'erreur se trouve dans le formulaire ou état lui-même, créez un nouveau formulaire ou un état Nouveau, puis copiez les contrôles à partir du formulaire ou de l'état d'origine.
    • Si l'erreur se trouve dans un contrôle sur le formulaire ou l'état, créez un formulaire ou un nouveau rapport et puis recréez les contrôles dans le nouveau formulaire ou l'état. Il est préférable de recréer l'ensemble des contrôles, car il n'existe aucun moyen de déterminer ceux qui est endommagés.
  8. Si l'erreur se trouve dans une macro ou un module, elle peut se trouver dans la macro ou le module lui-même ou dans le contenu de la macro ou le module. Vous pouvez supprimer la macro ou module et importer à partir de la copie de sauvegarde de votre base de données ou utiliser une des options suivantes :
    • Si l'erreur se trouve dans la macro ou le module lui-même, créez une nouvelle macro ou un module de nouveau et puis copiez le contenu de la macro ou du module d'origine.
    • L'erreur peut impliquer des caractères non-ASCII incorporés dans le module. Enregistrez le module en tant que fichier texte, supprimez les données corrompues ou inhabituelles et puis rechargez le fichier texte dans un nouveau module.
    • Si l'erreur se trouve dans le contenu de la macro ou du module, vous devez créer une macro ou un module et puis recréer le contenu de la macro ou du module d'origine.
  9. Si l'endommagement implique l'incapacité d'ouvrir le module de classe d'un formulaire ou un état ou le mode de création d'un module, vous souhaiterez peut-être essayer le commutateur de ligne de commande /Decompile. Il est fortement recommandé que vous faire une copie de sauvegarde de la base de données avant d'essayer cette méthode. Voici un exemple de commande avec le commutateur / décompiler, au cours duquel MSAccess.exe se trouve dans son emplacement par défaut et la base de données que DB1.mdb se trouve dans le dossier C:\ :
    C:\Program Files\Microsoft Office\Office\MSAccess.exe /decompile C:\DB1.mdb
    Après avoir exécuté cette commande à partir de la boîte exécuter, vous êtes invité à compiler la base de données après avoir utilisé /Decompile.
  10. Pensez à télécharger l'utilitaire JetComp.exe. En cours d'exécution JETCOMP.exe peut dans certains cas réparer les bases de données qui seraient autrement irrécupérables. Pour plus d'informations sur l'obtention de JETCOMP.exe, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    172733  (http://support.microsoft.com/kb/172733/EN-US/ ) Version mise à jour de Microsoft Jet 3.5 disponible au téléchargement
Si vous ne pouvez pas réparer la base de données avec ces étapes, la base de données est probablement trop endommagé pour être réparé. Si tel est le cas, restaurer votre dernière sauvegarde de base de données ou si vous recréez la base de données.

Pouvez finale, des consultants peuvent proposent des services de réparation de base de données Microsoft Access. Étant donné qu'il s'agit d'un service spécialisé, le moyen le plus efficace pour localiser un consultant est d'envoyer un message au groupe de discussion Internet "Groupes d'utilisateurs et de tiers" de Microsoft Access à l'adresse suivante :
Microsoft.public.Access.3rdpartyusrgrp
Pour plus d'informations sur les groupes de discussion Microsoft Access Internet, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
150057  (http://support.microsoft.com/kb/150057/EN-US/ ) ACC : Newsgroups de Microsoft Access disponibles sur Internet

Causes habituelles de corruption de fichier MDB

Il existe trois causes principales d'endommagement dans les fichiers de mdb Access/Jet.

Base de données est suspect/endommagé en raison de Operation de Write interrompue

Vous devez toujours quitter Access correctement en cliquant sur Quitter ou sur Fermer dans le menu fichier. Si une base de données est ouverte et en cours d'écriture de données lorsque Access est un arrêt anormal, le moteur de base de données Jet peut marquer le fichier comme suspect/endommagé. Cela peut se produire si l'ordinateur est éteint manuellement sans premier fermer Windows ou cas de perte d'alimentation. Autres situations peut ne pas s'arrêter Access mais peuvent toujours interférer avec de Jet écrit des données sur le disque alors que la base de données est ouverte. Cela peut se produire, par exemple lorsque réseaux rencontrer ou de défaillance de disques durs de collisions de données. Si une des interruptions de ces type se produit, Jet peut marquer la base de données comme potentiellement endommagée.

Lorsque Jet commence une opération d'écriture, il définit un indicateur et réinitialise une fois l'opération est terminée. En cas d'interruption d'une opération d'écriture, l'indicateur reste défini. Lorsque vous essayez d'ouvrir à nouveau cette base de données, Jet détermine que l'indicateur est défini et signale que la base de données est endommagée. Dans la plupart des cas, les données de la base de données ne sont pas réellement endommagées, mais l'indicateur défini prévient Jet qui s'est produite la corruption. Dans ce type de cas comme celui-ci, le compactage et/ou la réparation de la base de données peut généralement de restaurer la base de données. Heureusement, il y a des moyens de déterminer quel utilisateur et station de travail était origine du marquage du fichier comme suspect. Consultez la section "How pour déterminer qu'utilisateurs/postes de travail sont à l'origine le fichier à être marqués suspect" plus loin dans cet article.

Matériel de réseau défectueux

Dans ce cas, la corruption de fichier ne fait pas intervenir le moteur de base de données Jet ; plutôt le fichier est littéralement endommagé par une cause extérieure. La cause peut être une ou plusieurs liens dans la chaîne de matériel entre l'ordinateur résidant sur la base de données et l'ordinateur sur lequel se trouve la base de données d'ouvrir. Cette liste inclut, mais n'est pas limitée aux cartes d'interface réseau, le câblage réseau, les routeurs et les concentrateurs.

Un endommagement matérielle est généralement signalé par l'existence de fichiers .mdb qu'il est impossible de restaurer à l'aide de compactage, réparation ou Jetcomp. Corruption matérielle se reproduira généralement jusqu'à ce que le matériel concerné soit réparé ou remplacé.

Ouverture et enregistrement du fichier MDB dans un autre programme

Il est inutile de restaurer un fichier .mdb qui a été ouvert, puis enregistré dans un programme autre qu'Access. Par exemple, Microsoft Word permet de pouvoir ouvrir une base de données Access et que vous l'enregistrez (bien qu'il sert aucun bon de procéder ainsi car si vous ouvrez un fichier MDB dans un autre programme, tous que vous pouvez voir sont les caractères étendus). L'enregistrement du fichier de cette manière entraîne le fichier .mdb vous demandera un mot de passe de base de données lorsque vous essayez d'ouvrir dans Access même si le fichier n'a jamais été protégé par mot de passe dans Access. L'invite du mot de passe se produit dans ce cas parce que le premier octet range qu'Access vérifie lors de l'ouverture d'un fichier est dans les cas où le mot de passe de la base de données serait. Si cet octet contient des données endommagées, Access traite le fichier comme étant protégé par mot de passe. Même s'il existait un moyen d'obtenir autour de l'invite du mot de passe dans ce cas, la base de données serait toujours irrécupérable parce que la structure binaire est brouillée et par conséquent illisible pour Access. Récupération d'une copie de sauvegarde le fichier est la seule solution dans ce cas. Pour plus d'informations sur ce problème, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
223043  (http://support.microsoft.com/kb/223043/EN-US/ ) ACC : Mot de passe de la base de données s'affiche même si IT n'A jamais définir

Comment faire pour déterminer quels utilisateurs/postes de travail sont à l'origine du fichier pour être marquée suspect

Vous pouvez déterminer quel poste de travail et utilisateur causé Jet marquer un fichier .mdb comme suspecte à l'aide de l'utilitaire LDBView, qui est disponible en téléchargement Jetutils.exe à partir du site Web de Microsoft à l'adresse suivante :
http://download.microsoft.com/download/access97/utility1/1/WIN98/EN-US/JETUTILS.EXE (http://download.microsoft.com/download/access97/utility1/1/win98/en-us/jetutils.exe)
Pour plus d'informations sur les utilitaires de Jet de Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
176670  (http://support.microsoft.com/kb/176670/EN-US/ ) ACC : Utilitaires de Microsoft Jet disponibles dans le centre de téléchargement
Ldbview vous permettent d'observer quels utilisateurs êtes actuellement connectés à la base de données, ainsi que tous les utilisateurs peuvent avoir laissés le fichier dans un état suspect.

Les étapes qui vous pouvez solliciter à l'aide empêcher la corruption de la

  • Éviter la perte d'alimentation au cours de l'écriture de base de données. Perte de puissance peut entraîner le marquage de la base de données restent dans un état suspect.
  • Empêcher la chute des connexions réseau.
  • Éviter un arrêt anormal de connexions de Microsoft Jet comme perte d'alimentation, arrêts manuels, à l'arrêt de Gestionnaire des tâches de l'application et ainsi de suite.
  • Lors de la programmation, fermez tous les objets DAO (Data Access Object) et ADO (ActiveX Data Objects) que vous avez ouverts. Recordset, objet QueryDef, TableDef et exemples objets Database.
  • Les erreurs système fatales provoquer presque toujours un arrêt anormal. Si votre base de données est sujette à des erreurs irrécupérables, il est conseillé de résoudre les erreurs avant qu'il est la base de données soit trop endommagée pour ouvrir ou à récupérer.Pour plus d'informations sur les utilitaires de Jet de Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    148424  (http://support.microsoft.com/kb/148424/EN-US/ ) ACC : Dépannage des erreurs système fatales dans Microsoft Access 95 et Microsoft Access 97
  • Compactez souvent la base de données.

    IMPORTANT : n'exécutez pas de la commande Réparer une base de données dans Access 97 à moins que Microsoft Jet vous invite à le faire.
  • N'exécutez pas IPX sur un serveur Windows NT lorsque des bases de données Jet se trouvent sur le réseau et que le client est Microsoft Windows 95 avec IPX/SPX. Au lieu de cela, exécuter TCP/IP sur le serveur Windows NT et une pile à double protocole IPX et TCP/IP sur le client Windows 95. Windows NT à Windows NT avec IPX/SPX ne pas provoquer le problème, et Novell sur n'importe quel client.
  • Éviter un grand nombre d'opérations d'ouverts et de fermeture dans une boucle (40 000 opérations ouvrir/fermer successives à plus de 1 000 000.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 97 Standard
Mots-clés : 
kbmt kbdownload kbdownload kbhowto kbusage KB279334 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 279334  (http://support.microsoft.com/kb/279334/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.