Podczas otwierania bazy danych utworzonej za pomocą programu Access 2000 jest wyświetlany komunikat o błędzie "nierozpoznany format bazy danych"

Symptomy

Podczas otwierania bazy danych utworzonej za pomocą programu Access 2000 za pośrednictwem klas MFC DAO w programie Visual C++ jest wyświetlany następujący komunikat o błędzie:

Nierozpoznany format bazy danych.

Ten komunikat jest również wyświetlany podczas próby utworzenia nowego projektu SDI lub MDI bazy danych MFC DAO przy użyciu biblioteki MFC AppWizard.

Przyczyna

Ten komunikat o błędzie jest wyświetlany, ponieważ klasy MFC DAO, które są dostarczane z programem Visual C++ 6,0, Ładuj domyślnie DAO 3,5 (DAO350. dll). W programie DAO 3,5 jest używany aparat Jet 3,5, który umożliwia tylko Otwieranie baz danych w formacie 3,5 Jet w wersji (lub wcześniejszej). Program Access 2000 tworzy pliki bazy danych formatu Jet 4,0, które nie są rozpoznawane w aparacie Jet 3,5. Aby pomyślnie otworzyć bazę danych programu Access 2000 przy użyciu klas MFC DAO, należy użyć obiektów DAO 3,6 (dao360. dll). W programie DAO 3,6 jest używany aparat Jet 4,0, w którym można otworzyć dowolny dostępny format bazy danych programu Access.

Rozwiązanie

Obecnie nie ma obejścia dotyczącego używania AppWizard ze źródłami danych programu Access 2000. Aby aplikacja korzystała z wersji 3,6 obiektów DAO, należy zaktualizować wersję biblioteki MFC w czasie wykonywania do wersji MFC w wersji 6,01. W tym celu zależy od tego, czy aplikacja jest tworzona w celu użycia biblioteki DLL MFC, czy do tworzenia za pomocą bibliotek statycznych dla MFC. Jeśli łączysz się z biblioteką DLL MFC, możesz określić, że biblioteka MFC ma używać obiektu DAO 3,6, wstawiając następujący wiersz kodu przed otwarciem bazy danych Access 2000:

AfxGetModuleState()->m_dwVersion = 0x0601;

Wstaw ten wiersz w funkcji CYourApp:: InitInstance () w programie. Jeśli tworzysz ze statycznymi bibliotekami MFC, poniżej przedstawiono procedurę pobierania statycznych kompilacji MFC w celu korzystania z obiektów DAO 3,6:

  1. Zmodyfikuj plik Daocore. cpp w katalogu SRC usługi MFC. Zostanie wyświetlony następujący komentarz:

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

    Dodaj następujące wiersze:

    #undef _MFC_VER#define _MFC_VER 0x0601
  2. Odbuduj bibliotekę dla potrzebnego wariantu. Aby na przykład zbudować statyczną bibliotekę MFC, wersję Debug, nieobsługującą kodu Unicode, bez plików przeglądarki, użyj następującego polecenia z wiersza polecenia w folderze MFC\SRC:

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

Uwaga Musisz upewnić się, że narzędzia kompilatora znajdują się w Twojej ścieżce. Jeśli nie, może być konieczne uruchomienie pliku vcvars32 .Collection, który znajduje się w folderze Visual C++ \BIN. Ponadto należy pamiętać, że po utworzeniu nowych wersji bibliotek zostaną one skopiowane na początek istniejących elementów w folderze MFC\LIB, aby najpierw zapisać stare.

Stan

Takie działanie jest celowe.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?

Co wpłynęło na Twoje wrażenia?

Czy chcesz przekazać jakieś inne uwagi? (Opcjonalnie)

Dziękujemy za opinię!

×