Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

狀況

當開啟資料庫,建立與 Access 2000 中 Visual C++ 的 MFC DAO 類別,您會得到下列錯誤訊息:

無法辨識的資料庫格式。

當嘗試建立新的 MFC DAO 資料庫 SDI 或 MDI 使用 MFC 即 AppWizard 的專案中,也會收到這個訊息。

原因

此錯誤訊息發生因為 MFC DAO 類別那艘船 Visual C++ 6.0 負載 DAO 3.5 (Dao350.dll),根據預設值。DAO 3.5 使用 Jet 3.5,只能開啟 Jet 3.5 格式 (或更早版本) 資料庫。Access 2000 在 Jet 3.5 無法辨認的資料庫檔案時,都會建立 Jet 4.0 格式。若要成功地開啟一個使用 MFC DAO 類別的 Access 2000 資料庫,您需要使用 DAO 3.6 (Dao360.dll)。DAO 3.6 使用 Jet 4.0,可以開啟任何可用的 Access 資料庫格式。

解決方案

目前尚無解決方法,若要使用 AppWizard 與 Access 2000 資料來源。

應用程式,無法使用 DAO 3.6 版,您必須更新至 MFC 版本 6.01 的執行階段的 MFC 版本。若要執行這項操作取決於是否您要建立使用 MFC DLL 或靜態程式庫建置的 MFC 應用程式。

如果您要連結 MFC DLL 程式,您可以指定您想要在開啟 Access 2000 資料庫之前,插入下行程式碼中使用 DAO 3.6 的 MFC:

AfxGetModuleState()->m_dwVersion = 0x0601;

插入您的程式的 CYourApp::Initinstance() 函式中的這行。如果您要建立靜態 MFC 程式庫,則以下是取得靜態步驟建置的 MFC 使用 DAO 3.6:

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

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

    for release:
    nmake DEBUG=0

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

注意您必須確定您的路徑中的編譯器工具。如果沒有,您可能需要執行 Visual C++ 的 \BIN 資料夾中的 Vcvars32.bat 檔案。也請注意,當您建置這些新版本的程式庫時,會複製檔案透過 [MFC\LIB] 資料夾中現有的頂端,您可能要先儲存舊的。

狀態

此行為是系統設計的一部份。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×