Références
Lorsque j’installe une base de données sur un autre ordinateur, j’obtiens des messages d’erreur du genre :
- « Erreur de compilation »,
- « Référence manquante »,
- « Bibliothèque introuvable »,
- « Type défini par l’utilisateur non défini » (il est beau celui-là, non ?)
- ou encore « #Nom » sur des fonctions pourtant classiques comme
Left()
,Mid()
…Mais pourquoi t’est-ce que ?
Access ou Visual Basic étant relativement modulaires, il est possible de leur ajouter (ou supprimer) certaines fonctionnalités. Pour ajouter de nouvelles fonctions, on ajoute une nouvelle référence. Inversement, si une référence manque ou est incorrecte, certains aspects d’Access peuvent ne plus fonctionner.
Rétablir les références dans un logiciel Office (Word, Excel, Access…)
- Ouvrez un module quelconque (ou créez-en un si nécessaire, en cliquant sur l’onglet Modules puis sur le bouton Nouveau).
- Cliquez sur le menu Outils, puis sur l’option Références.
- Désactivez les références qui sont marquées « manquantes », ou cochez les références supplémentaires souhaitées.
Par exemple, à partir d’Access 2000, pour accéder aux objets classiques d’Access 97 (Database
ouCurrentDb
,Recordset
), vous devez cocher la référence MicrosoftDAO 3.6 Object Library. - Désactivez éventuellement les références inutiles.
Par exemple, à partir d’Access 2000, si vous travaillez uniquement avec les objets DAO cités ci-dessus, vous pouvez supprimer la référence Microsoft ActiveX Data Objects (ADO).
Rétablir les références dans un projet Visual Basic
- Une fois le projet ouvert, cliquez sur le menu Projet, puis sur l’option Références.
Eviter les ambiguïtés dans votre code VB
Certaines bibliothèques ont la mauvaise idée de fournir les mêmes objets, mais avec des fonctionnalités différentes. C’est le cas notamment des bibliothèques DAO et ADO, qui disposent toutes les deux d’un objet Recordset
.
Pour éviter la confusion (et être sûr que votre code se compile correctement !), déclarez chaque variable en précisant sa bibliothèque.
Par exemple, au lieu d’écrire :
1 2 |
Dim db As Database, rst1 As Recordset Dim cnn As Connection, rst2 As Recordset |
préférez :
1 2 |
Dim db As DAO.Database, rst As DAO.Recordset Dim cnn As ADODB.Connection, rst2 As ADODB.Recordset |
Merci pour ce super blog. Je l’apprecie enormement. J’attend les nouveaux posts avec impatience