Fel meddelandet "okänt databas format" visas när du öppnar en databas som har skapats med Access 2000

Symptom

När du öppnar en databas som har skapats med Access 2000 via MFC DAO-klasser i Visual C++ visas följande fel meddelande:

Okänt databas format.

Du får också det här meddelandet när du försöker skapa ett nytt MFC DAO-databas-eller MDI-projekt med hjälp av MFC AppWizard.

Orsak

Det här fel meddelandet inträffar på grund av att MFC DAO-klasser som levereras med Visual C++ 6,0 Ladda DAO 3,5 (Dao350. dll) som standard. I DAO 3,5 används Jet 3,5, som endast kan öppna Jet 3,5-format (eller tidigare) databaser. I Access 2000 skapas databasfiler i Jet 4,0, som inte känns igen av Jet 3,5. För att öppna en Access 2000-databas med hjälp av MFC DAO-klasser måste du använda DAO 3,6 (dao360. dll). I DAO 3,6 används Jet 4,0, som kan öppna alla tillgängliga databas format för Access.

Lösning

För närvarande finns det ingen lösning på att använda AppWizard med data källor i Access 2000. För att programmet ska kunna använda version 3,6 av DAO måste du uppdatera versionen av MFC vid körning till MFC version 6,01. För att göra detta beror på om du skapar programmet för att använda MFC DLL-filen eller för att bygga med de statiska biblioteken för MFC. Om du länkar med MFC DLL-filen kan du ange att du vill att MFC ska använda DAO 3,6 genom att infoga följande kodrad innan du öppnar en Access 2000-databas:

AfxGetModuleState()->m_dwVersion = 0x0601;

Infoga den här raden i funktionen CYourApp:: InitInstance () i programmet. Om du skapar med de statiska MFC-biblioteken följer du stegen för att få statiska versioner av MFC att använda DAO 3,6:

  1. Ändra Daocore. cpp-filen i katalogen MFC SRC. Du får följande kommentar:

    // 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

    Lägg till följande rader:

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. Återskapa biblioteket för den variant du behöver. Om du till exempel vill skapa det statiska MFC-biblioteket, fel söknings version, icke-Unicode, med inga webbläsar-filer, använder du följande kommando i kommando tolken i MFC\SRC-mappen:

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

Obs! Du måste kontrol lera att kompilator verktygen är i din sökväg. Om du inte gör det kanske du måste köra Vcvars32. bat-filen i mappen Visual C++ \BIN. Observera också att när du skapar de här nya versionerna av biblioteken kopieras de högst upp i de befintliga i mappen MFC\LIB så att du kan spara de gamla först.

Status

Detta är avsiktligt.

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

×