Le message d’erreur « format de base de données non reconnu » s’affiche lorsque vous ouvrez une base de données créée à l’aide d’Access 2000

Symptômes

Lorsque vous ouvrez une base de données créée à l’aide d’Access 2000 via les classes DAO MFC dans Visual C++, vous recevez le message d’erreur suivant :

Format de base de données non reconnu.

Ce message s’affiche lorsque vous essayez de créer un nouveau projet de base de données DAO ou MDI de base de données MFC à l’aide d’MFC AppWizard.

Cause

Ce message d’erreur s’affiche parce que les classes DAO MFC fournies avec Visual C++ 6,0 chargent DAO 3,5 (dao350. dll) par défaut. L’utilisation de DAO 3,5 utilise Jet 3,5, qui peut uniquement ouvrir des bases de données au format Jet 3,5 (ou versions antérieures). Access 2000 crée des fichiers de base de données au format Jet 4,0, qui ne peuvent pas être reconnus par Jet 3,5. Pour ouvrir une base de données Access 2000 avec les classes DAO MFC, vous devez utiliser DAO 3,6 (dao360. dll). DAO 3,6 utilise Jet 4,0, qui permet d’ouvrir n’importe quel format de base de données Access disponible.

Résolution

Pour l’instant, il n’existe aucune solution de contournement pour utiliser AppWizard avec des sources de données Access 2000. Pour que votre application utilise la version 3,6 de DAO, vous devez mettre à jour la version de MFC au moment de l’exécution vers MFC version 6,01. Pour cela, varie selon que vous créez l’application pour utiliser la DLL MFC ou pour créer avec les bibliothèques statiques pour MFC. Si vous établissez une liaison avec la DLL MFC, vous pouvez spécifier que vous souhaitez que MFC utilise DAO 3,6 en insérant la ligne de code suivante avant d’ouvrir une base de données Access 2000 :

AfxGetModuleState()->m_dwVersion = 0x0601;

Insérez cette ligne dans la fonction CYourApp :: InitInstance () de votre programme. Si vous créez avec les bibliothèques MFC statiques, suivez les étapes ci-dessous pour obtenir des générations statiques de MFC pour utiliser DAO 3,6 :

  1. Modifiez le fichier Daocore. cpp dans l’annuaire MFC SRC. Vous recevrez le commentaire suivant :

    // Determine whether to use DAO 3.6, 3.5, or 3.0// Use DAO 3.0 if DLL build and not built with MFC 4.21 or later// Use DAO 3.6 if MFC 6.01 or later// otherwise, DAO 3.5

    Ajoutez les lignes suivantes :

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. Reconstruisez la bibliothèque pour la variante dont vous avez besoin. Par exemple, pour générer la bibliothèque MFC statique, version de débogage non-Unicode, sans fichiers browser, utilisez la commande suivante à l’invite de commandes dans le dossier MFC\SRC :

      nmake DEBUG=1for release:   nmake DEBUG=0for unicode builds:   nmake DEBUG=1  UNICODE=1   nmake DEBUG=0  UNICODE=1

Remarque Vous devez vous assurer que les outils du compilateur figurent dans votre chemin d’accès. Si ce n’est pas le cas, vous devrez éventuellement exécuter le fichier vcvars32. bat situé dans le dossier \BIN Visual C++. Notez également que lors de la création de ces nouvelles versions des bibliothèques, celles-ci sont copiées en haut du dossier MFC\LIB, de sorte que vous pouvez enregistrer d’abord les anciens.

Statut

Ce comportement est inhérent au produit.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×