"Невозможно открыть базу данных, созданную с помощью предыдущей версии приложения", показывает, когда программа VB.NET пыталась открыть файл MDB с помощью OleDBConnection
Я создал программное обеспечение с использованием VB.NET в 32-разрядной ОС Windows 7.
Он содержит следующие строки кодов:
Dim cn As New OleDbConnection
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fileNameStr & ";Jet OLEDB:Database Password=xxxxxxx"
cn.Open()
Коды открывают файл MDB (файл Microsoft Access), защищенный паролем.
Когда я запускаю программное обеспечение на моем компьютере, оно работает хорошо.
Однако при тестировании на другом компьютере появляется сообщение об ошибке "Невозможно открыть базу данных, созданную в предыдущей версии приложения".
Сообщение об ошибке отображается после третьей строки кода.
Не могли бы вы подсказать, где мои ошибки и как мне решить проблему.
Спасибо.
2 ответа
Когда я запускаю программное обеспечение на моем компьютере, оно работает хорошо.
Однако при тестировании на другом компьютере появляется сообщение об ошибке "Невозможно открыть базу данных, созданную в предыдущей версии приложения".
Это может произойти, когда на разных компьютерах установлены разные версии Access Database Engine. В частности, сообщение об ошибке появится, если
- файл.mdb находится в формате Access 97, и
- на компьютере установлена версия Access Database Engine Access 2013 (или более поздняя версия).
В Access 2013 удалена поддержка формата файлов Access 97.
Это может немного сбить с толку, если ваша строка подключения содержит
Provider=Microsoft.ACE.OLEDB.12.0
потому что все версии Access Database Engine Access 2007 (12.0), Access 2010 (14.0) и Access 2013 (15.0) Access Database Engine регистрируют провайдера под именем "12.0", чтобы обеспечить некоторую степень обратной совместимости. Таким образом, для любой машины с Access 2007+ вы можете указать
Microsoft.ACE.OLEDB.12.0
но то, что вы на самом деле используете
Microsoft.ACE.OLEDB.12.0
на машине Access 2007Microsoft.ACE.OLEDB.14.0
на машине Access 2010Microsoft.ACE.OLEDB.15.0
на машине Access 2013
Вот почему одно и то же стороннее приложение может открывать файл.mdb на одном компьютере (с установленным Access 2007 или 2010), но не на другом компьютере (с установленным Access 2013).
Я пытался открыть *.mdb, который был сохранен в 2006 году. Я пробовал разные вещи, но использование SQL Server Management Studio 18.9.2 (SSMS) для импорта данных было для меня способом. Вот что я сделал (предполагается, что у вас есть доступ к SQL Server и базе данных):
- Щелкните правой кнопкой мыши базу данных, в которую вы хотите поместить импортированные таблицы.
- Выберите Задачи -> Импорт данных.
- В качестве источника данных выберите Microsoft Access (ядро базы данных Microsoft Jet).
- Имя файла - перейдите к файлу *.mdb, выберите его и нажмите «Открыть».
- Нажмите "Далее
- Назначение: собственный клиент SQL Server 11.0
- Выберите имя сервера (возможно, оно уже установлено правильно)
- Настройте любую аутентификацию, необходимую вашему серверу, в поле аутентификации
- Убедитесь, что в раскрывающемся списке базы данных выбрана правильная база данных (возможно, она уже верна)
- Нажмите "Далее
- Оставьте настройку «Копировать данные из одной или нескольких таблиц или представлений».
- Нажмите "Далее
- Выберите таблицы, которые вы хотите импортировать
- Нажмите "Далее
- Нажмите "Далее
- нажмите "Готово". Это сделало это для меня. После того, как вы установили его в SQL Server, вы можете манипулировать им по своему усмотрению.