Home
Home

---Soumis par Dev Ashish---

Access 2000: Type Mismatch ou User Defined Type Not Defined

Quand vous créer une nouvelle base de données en Access 2000, la bibliothèque de données par défaut est ADO. C'est bien la référence à ADO, en effet, qu'on retrouve sélectionné sous le menu Tools/References... (Outils/Bibliothèques...) depuis l'environnement de programmation, et non pas la référence à DAO. Les bases de données converties conservent leur référence à DAO et ADO n'est alors pas sélectionné dans les références du projet.

Le "Type Mismatch" survient lorsqu'on essaie, par exemple, d'utiliser  ADODB.Recordset au lieu de  DAO.Recordset, alors que l'erreur "User Defined Type Not Defined" est générée si on essaie de dimensionner (Dim) un objet comme un type Database, type de données inexistant sous ADO.

Pour fixer ce problème, dé-sélectionner la référence à  ADO et sélectionner DAO 3.6 Library comme nouvelle référence.

Vous pouvez continuer à recevoir ce message d'erreur si vous possédez les deux références  ADO et DAO sélectionnées. Cela se produit si vous vous référez à DAO, mais que ADO est listé plus "haut", en premier. Pour changer cet ordre, dans la boîte de dialogue:

Si vous travaillez avec une base de données qui nécessite les deux références, ADO et DAO, la meilleure façon est encore d'utiliser le nom de la bibliothèque lors de la qualification du type:

Dim rsCustomers as ADODB.Recordset
Dim rsInvoices as DAO.Recordset

Pour plus de détails sur l'utilisation des références dans votre application, consulter l'article suivant.

Article ID: Q197110
ACC2000: References to Set When Working with Microsoft Access