Wanneer u een database opent die is gemaakt met Access 2000, wordt het foutbericht ' niet-herkende database indeling ' weergegeven.

Symptomen

Bij het openen van een database die is gemaakt met Access 2000 via MFC DAO-klassen in Visual C++, wordt het volgende foutbericht weergegeven:

Database-indeling niet herkend.

U ontvangt dit bericht ook wanneer u probeert een nieuwe MFC DAO-Database SDI of MDI-project te maken met MFC AppWizard.

Oorzaak

Dit foutbericht wordt weergegeven omdat de MFC DAO-klassen die worden geleverd met Visual C++ 6,0, de DAO 3,5 (Dao350. dll) standaard laden. DAO 3,5 maakt gebruik van Jet 3,5, waarmee alleen Jet 3,5-databases (of eerdere) databases kunnen worden geopend. Access 2000 maakt Jet 4,0-indelings databasebestanden, die niet worden herkend voor Jet 3,5. Als u een Access 2000-database met behulp van de MFC DAO-klassen wilt openen, moet u de DAO 3,6 (Dao360. dll) gebruiken. DAO 3,6 maakt gebruik van Jet 4,0 en kan elke beschikbare Access-database indeling openen.

Oplossing

Er is op dit moment geen tijdelijke oplossing beschikbaar voor het gebruik van AppWizard met Access 2000-gegevensbronnen. Als u wilt dat de toepassing versie 3,6 van DAO gebruikt, moet u de versie van MFC bij runtime bijwerken naar MFC versie 6,01. Dit is afhankelijk van of u de toepassing bouwt voor het gebruik van de MFC DLL of voor het maken van de statische bibliotheken voor MFC. Als u koppelt aan de MFC DLL, kunt u opgeven dat MFC DAO 3,6 moet gebruiken door de volgende regel code in te voegen voordat u een Access 2000-database opent:

AfxGetModuleState()->m_dwVersion = 0x0601;

Voeg deze regel in de functie CYourApp:: Initinstance () van het programma in. Als u de vaste MFC-bibliotheken maakt, volgt u de stappen voor het gebruik van statische versies van MFC voor het gebruik van DAO 3,6:

  1. Wijzig het bestand Daocore. cpp in de map MFC SRC. U krijgt de volgende opmerking:

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

    Voeg de volgende regels toe:

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. Bouw de bibliotheek opnieuw op voor de variant die u nodig hebt. Als u bijvoorbeeld de vaste MFC-bibliotheek, versie van foutopsporingsversie, niet-Unicode, zonder browserbestanden wilt maken, gebruikt u de volgende opdracht op de opdrachtprompt in de map MFC\SRC:

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

Opmerking U moet ervoor zorgen dat de hulpmiddelen voor het compileerprogramma in uw pad staan. Als dat niet zo is, moet u mogelijk het bestand Vcvars32. bat uitvoeren dat zich bevindt in de map Visual C++ \BIN. Wanneer u deze nieuwe versies van de bibliotheken bouwt, worden deze ook boven aan de bestaande bestanden in de MFC\LIB-map gekopieerd, zodat u de oude versies eerst kunt opslaan.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×