Меню

Access database engine windows 10

MS Access DB Engine (32-разрядная версия) с 64-разрядной версией Office

в настоящее время у нас есть серьезная проблема с использованием Microsoft Access Database Engine 2010. Двигатель поставляется в 64-битной и 32-битной формах, что хорошо. Однако, по-видимому, вам нужно всегда устанавливать 32-разрядную версию, если хост-процесс всегда 32-разрядный. Хорошо, мы можем это сделать.

наше программное обеспечение имеет дело с большим количеством устаревших компонентов, которые являются 32-разрядными, и большая часть из них находится в коде VB6, который генерирует 32-разрядную сборку. Таким образом, мы исходим из предположения, что драйвер также должен быть установлен как 32-битный. Действительно, когда мы устанавливаем 32-разрядные драйверы на 64-разрядной машине и запускаем наши 32-разрядные приложения, он работает правильно.

однако проблема начинается, когда в системе установлен 64-разрядный Office 2010. Поверьте мне, мы пытались обучить пользователей, что 64-битный Office в значительной степени не нужен, но безрезультатно. Поскольку компьютеры выходят из сборочной линии с 64-разрядными версиями, мы не можем идти в ногу с запросами поддержки, когда наше программное обеспечение что-то ломает. Либо 64-разрядные перерывы Office наша установка или наша установка нарушает их версию Office, но это не очень красиво в любом случае. Еще одна проблема заключается в том, что не устаревшее программное обеспечение иногда устанавливает 64-разрядные драйверы (как и должно), и две версии просто не сосуществуют каким-либо разумным образом. Либо наше программное обеспечение ломается, либо их программное обеспечение ломается.

Итак, кому-нибудь удалось найти способ заставить 32-разрядные драйверы сосуществовать с 64-разрядными установками? Я видел, что установка с /passive флаг позволяет двух должны быть установлены, и наш установщик использует пассивный. Оба устанавливаются, но как только в системе либо наше программное обеспечение больше не работает, либо Office постоянно ремонтирует его установку. Есть ли разумный способ заставить это работать?

6 ответов

вот обходной путь для установки 64-разрядной версии Microsoft Access Database Engine 2010, распространяемой в системе с установленной 32-разрядной версией MS Office:

  • Проверьте 64-разрядный раздел реестра «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths» перед установкой 64-разрядной версии распространяемого компонента Microsoft Access Database Engine 2010.
  • если он не содержит «mso.dll » значение реестра, тогда вам нужно будет переименуйте или удалите значение после установки 64-разрядной версии распространяемого компонента Microsoft Access Database Engine 2010 в системе с установленной 32-разрядной версией MS Office.
  • используйте параметр командной строки» / passive » для установки распространяемого файла, например «C:\directory путь\AccessDatabaseEngine_x64.exe-файла» /пассивный
  • удалить или переименовать «mso.dll » значение реестра, которое содержит путь к 64-разрядной версии MSO.DLL (и не должен использоваться 32-битным MS Office версии.)

теперь вы можете запустить 32-разрядное приложение MS Office без проблемы «повторной настройки». Обратите внимание, что «mso.dll » значение реестра уже будет присутствовать, если установлена 64-разрядная версия MS Office. В этом случае значение не следует удалять или переименовывать.

также, если вы не хотите использовать параметр командной строки «/passive», вы можете отредактировать AceRedist.msi-файл для удаления проверки архитектуры MS Office:

  • скачать и установка Microsoft Orca: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557 (v=против 85).aspx
  • распакуйте AccessDatabaseEngine.exe или AccessDatabaseEngine_x64.exe файл
  • откройте AceRedist.msi-файл в Orca
  • найдите две строки таблицы, содержащие действие «CheckOfficeArchitecture», и удалите эти строки
  • сохранить обновленный AceRedist.msi-файл

теперь вы можете использовать этот файл для установки Microsoft Access Database Engine 2010 распространяется в системе, где установлена» конфликтующая » версия MS Office (например, 64-разрядная версия в системе с 32-разрядной версией MS Office) Убедитесь, что вы переименовали » mso.dll » значение реестра, как описано выше (при необходимости).

Я ненавижу отвечать на мои собственные вопросы, но я, наконец, нашел решение, которое действительно работает (использование связи сокетов между службами может решить проблему, но это создает еще больше проблем). Поскольку наша база данных является legacy, это просто требуется Microsoft.ACE.OLEDB.12.0 в строке подключения. Оказывается, это также было включено в Office 2007 (и MSDE 2007), где доступна только 32-разрядная версия. Таким образом, вместо установки MSDE 2010 32-бит, мы установить MSDE 2007, и это прекрасно работать. Другие приложения могут установить 64-разрядный MSDE 2010 (или 64-разрядный Office 2010), и это не конфликтует с нашим приложением.

до сих пор, похоже, это приемлемое решение для всех сред ОС Windows.

установите версию 2007, кажется, что если вы установите версию, противоположную используемой версии Office, вы можете заставить ее работать.

аналогичный подход к ответу @Peter Coppins. Это, я думаю, немного проще и не требует использования утилиты Orca:

проверьте раздел реестра» HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths «и убедитесь, что значение» mso.dll » нет. Если он присутствует, то Office 64-бит, похоже, установлен, и вам не нужно это обходное решение.

из командной строки, выполните команду: AccessDatabaseEngine_x64.ехе /пассивный

(Примечание: этот установщик молча разбился или не удался для меня, поэтому я распаковал компоненты и запустил: AceRedist.msi / passive и это установлено нормально. Может быть, Windows 10.)

  1. удалить или переименовать «mso.dll файлы» значение «реестре: HKEY_LOCAL_MACHINE\программное обеспечение\Майкрософт\Офис\14.0\общие\FilesPaths» ключ.

У меня было более конкретное сообщение об ошибке, в котором говорилось, чтобы удалить «Office 16 Click-To-Run Extensibility Component»

  • перейти к Пуск > Выполнить (или Winkey + R)
  • введите «installer» (который открывает папку%windir % installer), убедитесь, что все файлы видны в Windows (настройки папки)
  • добавить столбец «тема» (и сделать его не менее 400 пикселей в ширину) – щелкните правой кнопкой мыши на заголовках столбцов, нажмите больше, а затем найти тему
  • сортировка в столбце тема и прокрутите вниз, пока не найдете имя, указанное на экране ошибки («Office 16 Click-To-Run Extensibility Component»)
  • щелкните правой кнопкой мыши MSI и выберите Удалить

Если обе версии Microsoft Access Database Engine 2010 не могут сосуществовать, тогда ваше единственное решение-пожаловаться Microsoft, что загрузка 64-битных версий этого в вашем 32-битном приложении невозможна напрямую, вы можете сделать службу, которая работает в 64 битах, которая взаимодействует с другой 32-битной службой или вашим приложением через каналы или сетевые сокеты, но это может потребовать значительных усилий.

Источник статьи: http://askdev.ru/q/ms-access-db-engine-32-razryadnaya-versiya-s-64-razryadnoy-versiey-office-92693/

Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере

Доброе время суток, форумчане.

Дело все в том что написанная минипрограмка заточена под Office 2010 когда я пытаюсь открыть проект или запустить скомпилированный exe файл, на ПК где стоит Office 2013 то появляется сообщение поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере

Вот как быть в таких случаях когда на ПК может стоять совсем другой office или вовсе не стоять?
Как обходить такие ошибки и что бы все работало?

Но как его потом интегрировать, что бы не надо было на других ПК где будет запускаться, его отдельно устанавливать?

Поставщик «Microsoft.Ace.Oledb.12.0» не зарегистрирован на локальном компьютере
Ошибка » Поставщик «microsoft.ace.oledb.12.0″ не зарегистрирован на локальном компьютере» в.

Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере
В чем дело? В VISUAL BASIC 2013 Создал форму кинул на нее DataGreedView, подключил файл с.

Поставщик «Microsoft.Ace.OLEDB.12.0» не зарегистрирован на локальном компьютере
Здравствуйте, не могу понять почему не работает SQL, написал самый простой запрос и выдал такую.

Поставщик «Microsoft.Jet.OLEDB.4.0» не зарегистрирован на локальном компьютере (Windows7, x32)
При изучение БД по самоучителю, столкнулся с проблемой, при попытке запуска программы выдается.

Решение

vova_king, проблема в том, что скорее всего у тебя система x64 а программа откомпилированадля AnyCPU, и учитывая битность твоей системы, она пытается запустить программу с параметрами x64, но провайдер идет для x86.
Поэтому, настрой компилятор студии для своего приложения под x86 вместо AnyCPU и выполни построение заново. ну и проверь. должно работать и на x86 и на x64.

Думаю в этом и есть проблема.

Добавлено через 2 минуты
Кстати dimsaratov тебе на это и намекнул.

Добавлено через 7 минут
Недавно Памирыч вылодил свой исходник программы для поиска фотографий, в ней тоже работа с базой Access через провайдера только OLEDB.4.0. так вот и у него та же самая проблема. На моей системе не пускается, пишет что провайдер не найден.
ИСПРАВИЛ ПЕРЕИЗДАНИЕМ ПОД x86.

Решение

Смотрю по постам, что тема очень наболевшая.
И я тоже с ней столкнулся.
Задача — написать расчетную программу, которая будет распространяться среди наших партнеров.

Написал в VB.net на своем компе — Win 10 64, Office 2013 64.
Так как речь идет о большом количестве товаров, я создал БД в Access, не заполнять же массивы вручную.

На моём компе разобрался — поставил в VB конфигурацию х64 и заработало всё как надо.
Но, надо же, чтобы прога и на других компах работала. Это же элементарно! А на других компах разные ОС, разные Офисы, разные битности.

Источник статьи: http://www.cyberforum.ru/vb-net/thread1475774.html


Adblock
detector