Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Симптомы

При открытии базы данных, созданные в Access 2000 с помощью классов DAO Библиотеки MFC в Visual C++, можно получить следующее сообщение об ошибке:

Нераспознаваемый формат базы данных.

Также сообщение об ошибке при попытке создания новой базы данных MFC DAO SDI или MDI проекта с помощью мастере приложений MFC.

Причина

Это сообщение об ошибке возникает, классы MFC DAO, поставляемых с Visual C++ 6.0 нагрузки 3.5 DAO (Dao350.dll) по умолчанию. DAO 3.5 использует Jet 3.5, которое может быть открыто только формат Jet 3.5 (или более ранней) базы данных. Microsoft Access 2000 создает файлы базы данных, которые представляют неизвестные Jet 3.5 формат Jet 4.0. Чтобы успешно открыть базу данных Access 2000 с помощью классов DAO Библиотеки MFC, необходимо использовать DAO 3.6 (Dao360.dll). DAO 3.6 использует Jet 4.0, который можно открыть на любом доступном формате базы данных Access.

Решение

В настоящее время не имеет решения с помощью AppWizard с источниками данных Microsoft Access 2000.

Приложения для использования версии DAO 3.6 необходимо обновить версию MFC во время выполнения MFC версии 6.01. Это зависит от создаваемого приложения использовать библиотеку DLL MFC или построении с статические библиотеки для MFC.

Если выполняется связывание с библиотекой DLL MFC, можно указать, что требуется MFC использовать DAO 3.6, вставив следующую строку кода, прежде чем открыть базу данных Access 2000:

AfxGetModuleState()->m_dwVersion = 0x0601;

Вставьте эту строку в функцию CYourApp::Initinstance() программы. При создании статическими библиотеками MFC, ниже приведены действия для получения статического построений MFC использовать DAO 3.6.

  1. Измените файл Daocore.cpp в каталоге MFC SRC. Вы получите следующий комментарий:

    // 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, отладочная версия Юникод, нет файлов обозревателя следующая команда командной строки в папке MFC\SRC:

      nmake DEBUG=1

    for release:
    nmake DEBUG=0

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

Примечание. Необходимо убедиться, средствам компилятора в пути. В противном случае необходимо запускать файл vsvars32.bat, расположенный в папке \BIN для Visual C++. Также Обратите внимание, что при создании этих новых версий библиотек, они копируются поверх существующих в папке MFC\LIB, необходимо сначала сохранить старых.

Статус

Данное поведение является особенностью.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×