PROBLÈME : Le message d'erreur « Format de base de données inconnu » s'affiche lors d'une mise à niveau vers Access 2000 ou 2002

Symptômes

Si vous essayez d'accéder à une base de données Access 2000 ou Access 2002, vous pouvez rencontrer l'une des erreurs suivantes dans votre programme Visual Basic.

Si vous utilisez ADO (Microsoft ActiveX Data Objects) (ou le contrôle de données ADO), le message d'erreur suivant s'affiche :

Erreur d'exécution -2147467259 Format de base de données XXX inconnu
Si vous utilisez DAO (Data Access Objects) (ou le contrôle de données générique DAO), le message d'erreur suivant s'affiche :

Erreur d'exécution 3343 Format de base de données XXX inconnu

Cause

Access 2000 et Access 2002 utilisent le moteur Jet 4.0, qui crée des fichiers de base de données au format Jet 4.0. Les composants Jet 3.5 ne reconnaissent pas ce type de format.

  • Si vous utilisez ADO, vous obtenez l'erreur -2147467259 lorsque vous essayez de vous connecter à votre base de données Access 2000 ou 2002 via le fournisseur Microsoft.Jet.OLEDB.3.51.
  • Si vous utilisez DAO, vous obtenez l'erreur 3343 lorsque vous utilisez la bibliothèque d'objets Microsoft DAO 3.51.
  • Le contrôle générique DAO ne fonctionne pas avec les bases de données Access 2000 ou 2002 et génère toujours l'erreur 3343 sauf s'il est utilisé comme indiqué dans la section « Résolution » de cet article. Ce problème se produit car ce contrôle est basé sur Jet 3.51 et reconnaît uniquement des formats de base de données Jet 3.51 (ou antérieurs).

Résolution

Pour résoudre ce problème, appliquez l'une des méthodes suivantes :

  • Installez Visual Studio Service Pack 4 ou version ultérieure. (Si vous utilisez le contrôle de données, modifiez sa propriété Connect en Access 2000.)
  • Pour ADO (ou le contrôle de données ADO), utilisez le fournisseur Microsoft.Jet.OLEDB.4.0.
  • Pour DAO, ajoutez une référence à la bibliothèque d'objets Microsoft DAO 3.6.
  • Si vous utilisez le contrôle de données générique, vous devez ouvrir un jeu d'enregistrements DAO 3.6, puis l'assigner en tant que source du contrôle de données comme suit :
    Option Explicit
    Private daoDB36 As Database
    Private rs As DAO.Recordset
    Dim sPath As String

    Private Sub Form_Load()
    sPath = _
    "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    Set daoDB36 = DBEngine(0).OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Customers")
    Set Data1.Recordset = rs
    End Sub
  • Ce problème a été corrigé par Visual Basic Service Pack 4. Une nouvelle valeur (Access 2000) a été ajoutée pour la propriété Connect qui permettra au contrôle de données DAO d'ouvrir des bases de données Access 2000.

Statut

Ce problème a été corrigé en premier dans Visual Studio 6.0 Service Pack 4.Pour plus d'informations sur les Service Packs Visual Studio, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
194022 INFO : Service Packs pour Visual Studio 6.0, quoi, où et pourquoi

194295 COMMENT FAIRE : Savoir si un Service Pack Visual Studio est installé
Pour télécharger le Service Pack Visual Studio le plus récent, reportez-vous au site Web de Microsoft à l'adresse suivante (en anglais) :

Références

Pour plus d'informations sur Jet 4.0, reportez-vous à la documentation Access 2000.


Pour plus d'informations sur ADO et DAO, reportez-vous à la documentation Visual Basic.

Pour plus d'informations, recherchez « Format de base de données inconnu » dans MSDN Library fourni avec Visual Basic.
Propriétés

ID d'article : 238401 - Dernière mise à jour : 10 mai 2011 - Révision : 1

Commentaires