開啟以 Access 2000 建立的資料庫時,收到「無法辨識的資料庫格式」錯誤訊息

徵狀

在 Visual c + + 中開啟使用 Access 2000 透過 MFC DAO 類別建立的資料庫時,您會收到下列錯誤訊息:

無法辨識的資料庫格式。

當您嘗試使用 MFC 測試嚮導來建立新的 MFC DAO 資料庫 SDI 或 MDI 專案時,也會收到這則訊息。

原因

出現此錯誤訊息的原因是,Visual c + + 6.0 隨附的 MFC DAO 類別預設會載入 DAO 3.5 (Dao350)。 DAO 3.5 使用的是 Jet 3.5,只能開啟 Jet 3.5 格式(或較舊版本)的資料庫。 Access 2000 會建立 jet 4.0 格式的資料庫檔案,這些檔案無法從 Jet 3.5 中識別。 若要使用 MFC DAO 類別成功開啟 Access 2000 資料庫,您需要使用 DAO 3.6 (Dao360)。 DAO 3.6 使用 Jet 4.0,這可以開啟任何可用的 Access 資料庫格式。

解決方案

目前沒有任何方法可將使用嚮導用於 Access 2000 資料來源。 若要讓您的應用程式使用 DAO 版本3.6,您必須在執行時間將 MFC 版本更新為 MFC 版本6.01。 若要這麼做,取決於您要建立的應用程式是使用 MFC DLL,還是是使用 MFC 的靜態文件庫建立。 如果您是使用 MFC DLL 進行連結,您可以在開啟 Access 2000 資料庫前插入下列程式程式碼,以指定您希望 MFC 使用 DAO 3.6:

AfxGetModuleState()->m_dwVersion = 0x0601;

在程式的 CYourApp:: Initinstance ()函數中插入此線條。 如果您是使用靜態 MFC 文件庫進行建立,請遵循下列步驟來取得 MFC 的靜態組建以使用 DAO 3.6:

  1. 修改 MFC SRC 目錄中的 Daocore 檔案。 您會收到下列批註:

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

    新增下列行:

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. 針對您需要的變型重建文件庫。 例如,若要建立靜態 MFC 文件庫、調試版本、非 Unicode (沒有瀏覽器檔案),請在 MFC\SRC 資料夾的命令提示字元中使用下列命令:

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

注意: 您必須確認編譯器工具是否在您的路徑中。 如果不是,您可能需要執行位於 Visual c + + \BIN 資料夾中的 Vcvars32 檔案。 另請注意,當您建立這些新版本的文件庫時,會將它們複製到 MFC\LIB 資料夾中現有的這些版本,因此您可能想要先儲存舊的文件庫。

狀態

產生此錯誤是系統刻意為之。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×