Среда выполнения Access 2010 вызывает сбой .NET OleDbConnection.Open () с файлом MDB Access97

Я поддерживаю приложение .NET 3.5 (использующее Visual Studio 2008), которое вызывает OleDbConnection.Open () с поставщиком строки подключения Microsoft.ACE.OLEDB.12 и файлом MDB с форматом Access97. Это приложение требует, чтобы была установлена ​​среда выполнения Access 2007.

Вызов OleDbConnection.Open () завершается успешно, если установлена ​​среда выполнения Office 2007, а среда выполнения Access 2010 НЕ установлена. После установки Access 2010 Runtime (например, пользователь устанавливает Office 2010) вызов не выполняется. Сообщение об ошибке: «Невозможно открыть базу данных, созданную с помощью предыдущей версии вашего приложения».

  1. Из чтения других тем в StackOverflow и других местах выясняется, что Access 2010 не поддерживает чтение или преобразование файлов MDB Access97. Нет ли возможности вызвать функциональные возможности среды выполнения Office 2007 после установки среды выполнения Access 2010 (без удаления Access 2010).

  2. Другой подход заключается в программном преобразовании Access97 MDB в более поздний формат, который может быть прочитан Access 2010. Я пробовал вызывать: Microsoft.Office.Interop.Access.Application.ConvertAccessProject (), реализованный в библиотеке объектов Microsoft Access 14.0; с установленными различными версиями Access, но я получаю сообщение об ошибке COM (сбой при выполнении сервера 80080005).

  3. Я также пробовал запустить msaccess.exe в своем приложении с флагом / Convert. Это приводит к открытию Access 2000, но с сообщением об ошибке («Microsoft Access не удалось преобразовать ...»).

  4. Между прочим, базы данных MDB не содержат ничего "сложного", никаких реляционных данных, никаких макросов, никакой безопасности и т. Д., Только плоские записи.

  5. Я нашел несколько полезных советов по программированию на сайте Аллена Брауна (http://allenbrowne.com/ser-48.html "Преобразование из Access97" и http://allenbrowne.com/Access2007.html " Преобразование в Access 2007 »), но ничего из этого не вышло.

Есть мысли о том, как лучше всего решить эту проблему?


person MarkA    schedule 19.08.2011    source источник


Ответы (1)


Я бы проголосовал за преобразование из формата A97 в Jet 4, который будет широко поддерживаться в течение очень долгого времени (хотя ACE отсутствует с 2007 года).

person David-W-Fenton    schedule 24.09.2011
comment
Я должен поддерживать Access 97, поскольку это основной файл данных в нескольких устаревших системах, с которыми мне приходится работать? Мы говорим, что это невозможно сделать? - person Jordan; 15.10.2013