Chybová zpráva "Neznámý formát databáze" se zobrazí při otevření databáze vytvořené v Accessu 2000

Příznaky

Při otevírání databáze vytvořené pomocí Accessu 2000 pomocí tříd knihovny MFC DAO ve Visual C++ se zobrazí následující chybová zpráva:

Formát databáze nebyl rozpoznán.

Tato zpráva se také zobrazí při pokusu o vytvoření nového projektu knihovny MFC rozhraní DAO nebo projektu MDI pomocí knihovny MFC projekt.

Příčina

Tato chybová zpráva se zobrazí, protože třídy knihovny MFC rozhraní DAO, které dodává s Visual C++ 3,5 6,0: Knihovna DAO 3,5 používá databázový stroj Jet 3,5, ve kterém je možné otevřít pouze databáze Jet 3,5 Format (nebo starší). Access 2000 vytvoří databázové soubory ve formátu Jet 4,0, které se nedají rozpoznat pro Jet 3,5. Abyste úspěšně otevřeli databázi Access 2000 pomocí tříd knihovny MFC rozhraní DAO, musíte použít rozhraní DAO 3,6 (Dao360. dll). Knihovna DAO 3,6 používá databázový stroj Jet 4,0, ve kterém se může otevřít libovolný formát Accessové databáze.

Řešení

V současné době neexistuje žádné řešení, jak používat projekt se zdroji dat Access 2000. Aby aplikace používala verzi rozhraní DAO verze 3,6, musíte aktualizovat verzi knihovny MFC za běhu na knihovnu MFC verze 6,01. To závisí na tom, jestli vytváříte aplikaci pro použití knihovny MFC DLL nebo k vytvoření statické knihovny pro knihovnu MFC. Pokud propojujete knihovnu MFC DLL, můžete určit, aby knihovna MFC používala knihovnu DAO 3,6 vložením následujícího řádku kódu před otevřením databáze aplikace Access 2000:

AfxGetModuleState()->m_dwVersion = 0x0601;

Vložte tento řádek do funkce CYourApp:: InitInstance () programu. Pokud vytváříte statické knihovny MFC, postupujte podle kroků pro načtení statických sestavení knihovny MFC pro použití DAO 3,6:

  1. Upravte soubor Daocore. cpp v adresáři knihovny MFC SRC. Zobrazí se následující komentář:

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

    Přidejte následující řádky:

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. Vytvořte knihovnu pro variantu, kterou potřebujete. Například pro vytvoření statické knihovny MFC, ladicí verze, nepoužívající kódování Unicode, nepoužívejte na příkazovém řádku ve složce MFC\SRC následující příkaz:

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

Poznámka Musíte se ujistit, že jsou nástroje kompilátoru v cestě. Pokud ne, bude možná potřeba spustit Vcvars32. bat, který se nachází ve Visual C++ \BIN. Všimněte si také, že když tyto nové verze knihoven sestavujete, zkopírují se je na začátek existujících složek ve složce MFC\LIB, abyste mohli staré nejprve uložit.

Stav

Toto chování je záměrné.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×