Sintomi

Quando si apre un database creato con Access 2000 tramite le classi DAO MFC in Visual C++, è visualizzato il seguente messaggio di errore:

Formato di database non riconosciuto.

Il messaggio viene visualizzato anche quando si tenta di creare un nuovo database DAO MFC SDI o MDI utilizzando la creazione guidata applicazione MFC.

Causa

Questo messaggio di errore si verifica perché forniti con Visual C++ 6.0 carico DAO 3.5 (Dao350. dll) di classi DAO MFC per impostazione predefinita. DAO 3.5 utilizza Jet 3.5, che può essere aperto solo formato Jet 3.5 (o versioni precedenti) i database. Access 2000 crea formato Jet 4.0 il file di database, ovvero non riconoscibile per Jet 3.5. Per aprire un database di Access 2000 utilizzando le classi DAO MFC, è necessario utilizzare DAO 3.6 (DAO360. dll). DAO 3.6 utilizza Jet 4.0, che è possibile aprire qualsiasi formato di database di Access disponibile.

Risoluzione

Non è attualmente disponibile alcuna soluzione per utilizzando AppWizard con origini dati di Access 2000.

Per l'applicazione di utilizzare la versione 3.6 di DAO, è necessario aggiornare la versione di MFC in fase di esecuzione a MFC versione 6.01. Per eseguire questa operazione varia a seconda se si compila l'applicazione per utilizzare la DLL MFC o per compilare con le librerie statiche per MFC.

Se si collega con la DLL MFC, è possibile specificare che si desidera MFC per utilizzare DAO 3.6 inserendo la seguente riga di codice prima di aprire un database di Access 2000:

AfxGetModuleState()->m_dwVersion = 0x0601;

Inserire questa riga nella funzione CYourApp::Initinstance() del programma. Se vengono eseguite con le librerie MFC statiche, di seguito sono i passaggi per ottenere statico compilazioni di MFC per utilizzare DAO 3.6.

  1. Modificare il file Daocore.cpp nella directory SRC MFC. Verrà visualizzato il seguente commento:

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

    Aggiungere le seguenti righe:

    #undef _MFC_VER
    #define _MFC_VER 0x0601
  2. Rigenerare la libreria per la variante che è necessario. Ad esempio, per compilare la libreria MFC statica, la versione di debug, non Unicode, senza file browser utilizzare il comando seguente al prompt dei comandi nella cartella MFC\SRC:

      nmake DEBUG=1

    for release:
    nmake DEBUG=0

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

Nota: È necessario assicurarsi che gli strumenti del compilatore sono nel percorso. In caso contrario, potrebbe essere necessario eseguire il file vcvars32. bat nella cartella \BIN Visual C++. Si noti inoltre che quando si compilano queste nuove versioni delle librerie, questi verranno copiati nella parte superiore di quelli esistenti nella cartella MFC\LIB pertanto potrebbe essere necessario salvare prima di quelli precedenti.

Stato

Questo è il comportamento previsto.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×