Comment résoudre les problèmes de référence dans une base de données Access

Numéro de l’article d’origine dans la base de connaissances : 310803

Résumé

Cet article décrit les problèmes liés à l’utilisation des références dans une base de données Access.

Pour comprendre les erreurs liées aux références, vous devez dʼabord connaître la manière dont les bibliothèques sont référencées dans une base de données Access, ainsi que les éléments nécessaires à lʼinstallation dʼune base de données sur un ordinateur cible sans rompre ces références. Cet article traite des sujets suivants :

  • Afficher les références de base de données Access
  • Résoudre les références Microsoft Visual Basic pour Applications dans Access
  • Comprendre les messages d’erreur de référence
  • Résoudre les problèmes de référence sur l’ordinateur de développement
  • Distribuer des fichiers de la base de données
  • Mettre à jour la liste de références
  • Distribuer des fichiers de base de données contenant des contrôles ActiveX
  • Réenregistrer un fichier

Afficher les références de base de données Access

Pour afficher les références actuelles de la base de données, procédez comme suit :

  1. Ouvrez la base de données.
  2. Appuyez sur Alt + F11 pour démarrer Visual Basic Editor.
  3. Dans le menu Outils, cliquez sur Références.

Résoudre les références Visual Basic dans Access

Access charge le fichier pertinent (par exemple, une bibliothèque de types, une bibliothèque d’objets ou une bibliothèque de contrôles) pour chaque référence, en fonction des informations affichées dans la zone Références. Si Access ne trouve pas le fichier, il exécute les procédures suivantes pour le localiser :

  1. Access vérifie si le fichier référencé est actuellement chargé en mémoire.
  2. Si le fichier n’est pas chargé en mémoire, Access tente de vérifier que la clé de Registre RefLibPaths existe. Si tel est le cas, Access recherche une valeur nommée portant le même nom que la référence. En cas de correspondance, Access charge la référence à partir du chemin d’accès vers lequel renvoie la valeur nommée.
  3. Access recherche ensuite le fichier référencé dans les emplacements suivants, dans cet ordre :
    1. Le dossier Application (l’emplacement du fichier Msaccess.exe).
    2. Le dossier actif qui sʼaffiche lorsque vous cliquez sur Ouvrir dans le menu Fichier.
    3. Le dossier Windows ou Winnt dans lequel se trouvent les fichiers du système d’exploitation.
    4. Le dossier System dans le dossier Windows ou Winnt.
    5. Les dossiers de la variable d’environnement PATH auxquels le système d’exploitation peut directement accéder.
  4. Si Access ne parvient pas à trouver le fichier, une erreur de référence se produit.

Comprendre les messages d’erreur de référence

Un fichier manquant ou un fichier dont la version est différente de celle utilisée dans la base de données peut entraîner un certain nombre de messages dʼerreur différents. Pour la plupart des messages dʼerreur, un article correspondant se trouve dans la Base de connaissances Microsoft. Recherchez votre message dʼerreur et suivez ensuite les étapes de dépannage décrites. Dans certains cas, un fichier de dépendance ne correspond pas au fichier principal.

La liste suivante décrit certains des messages d’erreur de référence que vous pouvez rencontrer. Notez toutefois que cette liste n’est pas exhaustive et nʼinclut pas tous les messages d’erreur de référence possibles.

  • « Échec de la méthode MethodName de lʼobjet ObjectName »

    En général, vous pouvez recevoir ce message d’erreur en cas de problème avec une bibliothèque de type de programmation, par exemple, un fichier DLL (Bibliothèque de liens dynamiques) DAO (Data Access Object) non valide. Vous pouvez rechercher dans la Base de connaissances Microsoft des articles décrivant les différentes formes de ce message d’erreur.

  • « Fonction non disponible dans lʼexpression Usage »

    Vous pouvez recevoir ce message d’erreur en cas de problème avec une bibliothèque de type de programmation, ou si le code n’appelle pas spécifiquement la bibliothèque correcte et que le fichier est répertorié à une priorité inférieure dans la liste de références par rapport à un fichier qui contient le même nom de fonction, par exemple, si le code DAO est utilisé avec la bibliothèque ADO (ActiveX Data Objects) répertoriée à une priorité supérieure à celle de la bibliothèque DAO. Vous pouvez également recevoir ce message d’erreur si un formulaire ou un état contient un contrôle ActiveX.

  • « Projet ou bibliothèque introuvable »

    Vous pouvez recevoir ce message d’erreur si Access ne parvient pas à localiser un fichier dans la liste de références. Souvent, le fichier est signalé comme manquant dans la boîte de dialogue des références. Parfois, le fichier existe sur l’ordinateur de développement, mais pas sur l’ordinateur cible.

  • « Variable non définie » ou « Type défini par l’utilisateur non défini »

    Vous pouvez recevoir l’un de ces messages d’erreur si vous utilisez l’Assistant Sécurité au niveau utilisateur afin de sécuriser une base de données qui fait référence à des bibliothèques autres que celles incluses par défaut. Par exemple, les références aux bibliothèques qui existaient dans la base de données non sécurisée ne sont pas automatiquement créées dans la nouvelle base de données sécurisée.

  • « Erreur d’exécution 5 », « Argument ou appel de procédure incorrect » ou « La bibliothèque qui contient ce symbole nʼest pas référencée dans le projet en cours »

    Vous pouvez recevoir l’un de ces messages d’erreur si une référence à une base de données, une bibliothèque de types ou une bibliothèque dʼobjets est signalée comme manquante.

  • « Le composant ActiveX ne peut pas créer l’objet »

    Ce message d’erreur ne signifie pas nécessairement qu’un contrôle ActiveX est en cause. Par exemple, une des raisons possibles de lʼerreur est que DAO, qui est un composant ActiveX, ne peut pas créer d’objet, car DAO Automation Server ne peut pas démarrer. Souvent, lʼerreur est due à ceci : les fichiers DLL qui fournissent les fonctionnalités référencées pour le programme ne sont pas enregistrées ou sont incorrectement enregistrées.

Résoudre les problèmes de référence sur l’ordinateur de développement

La création d’une base de données vide, suivie de l’importation d’objets à partir d’un autre fichier de base de données, peut créer des problèmes de référence si le code ou les contrôles ActiveX reposent sur des références qui ne sont pas incluses par défaut dans une base de données. Les références par défaut pour une base de données Access 2000 sont les suivantes :

  • Visual Basic pour Applications
  • Bibliothèque d’objets Microsoft Access 9.0
  • OLE Automation
  • Bibliothèque Microsoft ActiveX Data Objects (ADO) 2.1

Si la source est dans une autre base de données Access 2000, vérifiez que les références correspondent. Si la source se trouve dans une version antérieure d’Access, DAO 3.5 ou une version antérieure est probablement utilisé. Toutefois, Access 2000 ne fournit pas DAO 3.5 par défaut. Essayez de supprimer la référence à la bibliothèque ADO 2.1 (si elle existe) et ajoutez la référence à la bibliothèque d’objets DAO 3.6.

Si vous avez converti la base de données à partir d’une version antérieure d’Access et que la base de données contient une référence au fichier Utility.mda, vous pouvez, dans la plupart des cas, supprimer cette référence, car les fonctions quʼelle appelle sont incluses dans les références par défaut dans Access 2000. Si des références à des versions antérieures de DAO existent, vous pouvez également les supprimer, car DAO 3.6 peut traiter ces fonctions.

Pour ajouter une référence à une bibliothèque :

  1. Ouvrez la base de données.
  2. Appuyez sur Alt + F11 pour démarrer Visual Basic Editor.
  3. Dans le menu Outils, cliquez sur Références.
  4. Sous Références disponibles, activez la case à cocher en regard du nom de la bibliothèque, puis cliquez sur OK.

Pour supprimer une référence à une bibliothèque :

  1. Ouvrez la base de données.
  2. Appuyez sur Alt + F11 pour démarrer Visual Basic Editor.
  3. Dans le menu Outils, cliquez sur Références.
  4. Sous Références disponibles, cliquez pour désactiver la case à cocher en regard du nom de la bibliothèque, puis cliquez sur OK.

Distribuer des fichiers de la base de données

Pour distribuer les fichiers de base de données, vous pouvez utiliser deux méthodes de base. Vous pouvez copier le fichier de l’ordinateur de développement vers l’ordinateur cible ou utiliser l’Assistant Package et déploiement pour créer un package d’installation.

Si vous copiez le fichier de l’ordinateur de développement vers l’ordinateur cible, seul le fichier de base de données est copié. Vous devez vérifier manuellement que tous les fichiers répertoriés dans la liste de références sont disponibles, au bon niveau de version et au même emplacement relatif sur l’ordinateur cible que sur l’ordinateur de développement.

Lorsque vous développez des applications d’exécution dans Access, gardez à lʼesprit que certains fichiers du système d’exploitation doivent être distribués avec l’application d’exécution. L’empaquetage de ces fichiers est effectué automatiquement par le composant Assistant Package et déploiement dans Microsoft Office 2000 pour les développeurs. Parfois, les versions des fichiers inclus dépendent d’autres applications installées sur l’ordinateur de développement et qui peuvent avoir modifié les fichiers du système d’exploitation.

Pour vous assurer que les versions des fichiers que vous utilisez nʼentreront pas en conflit avec les fichiers présents sur l’ordinateur cible lorsque vous installerez l’application d’exécution, suivez les recommendations ci-après. Les recommandations sont les suivantes :

  1. Développez la base de données Access sur n’importe quel ordinateur.
  2. Créez un environnement informatique dans lequel le disque dur a été reformaté et où seule la plus ancienne version applicable du système d’exploitation, dʼOffice et dʼOffice 2000 pour les développeurs est installée. Exécutez l’Assistant Package et déploiement sur cet ordinateur pour créer la version d’exécution de l’application. Cela garantit que les niveaux de révision des fichiers fonctionneront sur tous les ordinateurs cibles.
  3. Créez un environnement informatique dans lequel le disque dur a été reformaté et où seul le système d’exploitation est installé. Testez l’application dʼexécution dans cet environnement.
    • Si l’application ne s’exécute pas correctement, cela signifie que le problème réside dans l’application. Vous devez identifier et corriger le problème avant de distribuer l’application.
    • Si l’application fonctionne correctement sur l’ordinateur de test, mais ne fonctionne pas sur l’ordinateur cible, cela signifie que le problème réside dans l’ordinateur cible et non dans l’application. Vous devez identifier et corriger la cause probable sur l’ordinateur cible, probablement une incompatibilité ou un fichier endommagé.

Actualiser la liste des références

Si le problème de référence implique un contrôle ActiveX, vous pouvez parfois résoudre le problème en actualisant la liste des références. Pour actualiser la liste des références, procédez comme suit :

  1. Dans Visual Basic Editor, cliquez sur Références dans le menu Outils.
  2. Dans la boîte de dialogue Références, activez la case à cocher correspondant à une référence qui n’est pas encore sélectionnée. Notez la référence ainsi sélectionnée, puis cliquez sur OK.
  3. Dans le menu Outils, cliquez à nouveau sur Références.
  4. Désactivez la case correspondant à la référence, puis cliquez sur OK.

Distribution de fichiers de base de données contenant des contrôles ActiveX

Il existe deux types de licences pour les contrôles ActiveX : une licence au moment de la conception et une licence utilisateur.

  • Grâce à une licence au moment de la conception, vous pouvez insérer des contrôles ActiveX sous licence à partir d’Office 2000 Developer dans des formulaires et des états dans une base de données Access.
  • Une licence utilisateur vous permet d’utiliser les contrôles ActiveX dans une base de données Access sur un ordinateur sur lequel Office 2000 Developer n’est pas installé. Elle ne vous permet toutefois pas d’insérer de nouveaux contrôles ActiveX sous licence. Pour installer une licence utilisateur, distribuez les contrôles ActiveX à l’aide de l’Assistant d’empaquetage et de déploiement, qui écrit la licence des contrôles dans le Registre de l’ordinateur cible.

L’indicateur Manquant, qui peut s’afficher quand vous ouvrez un module en mode Création, puis que vous cliquez sur Références dans le menu Outils, indique que la référence au contrôle Boîte de dialogue commune sur l’ordinateur cible ne correspond pas à la source dans le fichier de base de données provenant de l’ordinateur de développement.

Si vous distribuez un fichier de base de données sans installer le contrôle Boîte de dialogue commune distribuable, la référence du contrôle peut être marquée comme manquante ou le message d’erreur suivant peut s’afficher si le contrôle non distribuable est déjà installé sur l’ordinateur cible : « Vous ne possédez pas la licence requise pour l’utilisation de ce contrôle ActiveX ».

Même lorsque le fichier de base de données fait partie d’une application utilisateur, le message d’erreur « Vous ne possédez pas la licence requise pour l’utilisation de ce contrôle ActiveX » peut s’afficher si le contrôle non distribuable déjà installé sur l’ordinateur cible correspond à une version ultérieure à celle du contrôle fourni par votre application utilisateur. Ce problème peut se produire, car le programme d’installation ne remplace pas les versions ultérieures d’un fichier par une version antérieure du même fichier.

Réenregistrer un fichier

Il est possible qu’un fichier figure dans la liste de références sans être correctement inscrit dans le Registre. Si vous pensez qu’il peut s’agir de votre cas, procédez comme suit pour réinscrire le fichier :

  1. Dans Microsoft Windows NT 4.0, cliquez sur Démarrer, pointez sur Rechercher, puis cliquez sur Fichiers ou dossiers, ou, dans Windows 2000, cliquez sur Démarrer, pointez sur Rechercher, puis cliquez sur Des fichiers ou des dossiers.
  2. Dans la zone Nommé ou Rechercher des fichiers ou des dossiers nommés, tapez regsvr32.exe.
  3. Dans la zone Rechercher dans, cliquez sur la racine du disque dur (généralement C:).
  4. Si ce n’est déjà fait, activez la case Inclure les sous-dossiers, puis cliquez sur Rechercher ou Rechercher maintenant.
  5. Une fois que vous avez trouvé le fichier, cliquez sur Démarrer, puis sur Exécuter. Ensuite, supprimez le contenu de la zone Ouvrir.
  6. Faites glisser le fichier Regsvr32.exe du volet des résultats de la recherche vers la zone Ouvrir.
  7. Répétez les étapes 2 à 6 en recherchant cette fois NomFichier.dll, où NomFichier correspond au nom du fichier à réinscrire.
  8. Quand le fichier NomFichier.dll figure dans la zone Ouvrir avec le fichier Regsvr32.exe, cliquez sur OK.
  9. Dans Access, effectuez un test pour déterminer si le problème est toujours présent.

Si le fichier Regsvr32.exe ne se trouve pas sur votre ordinateur, recherchez-le sur d’autres ordinateurs. Si le fichier n’est pas disponible, vous pouvez l’obtenir sur le site web de Microsoft.

Remarque

Pensez à compiler tous les modules après avoir ajusté les références. Pour compiler tous les modules, quand le module est ouvert, cliquez sur Compiler la base de données dans le menu Débogage. Si les modules ne sont pas compilés, il peut y avoir d’autres références non résolues.