Ошибка microsoft access database engine 2010

Добрый день.

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

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

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

Начитался на форумах про кучу доп файлов, качал их — не работает. Даже на моём 2-м компе — Win 10 x64, Office 16 x64.
Проверял наличие Microsoft.ACE.OLEDB.12.0 на обеих компах — есть.
А программа не запускается всё с той же ошибкой.
Я уже молчу про 32 бита…

Помогите!!!

  • Remove From My Forums
  • Question

  • Am trying to import excel 2016 files from network drive but an getting “Microsoft Access Database Engine 2010 Redistributable not found on local machine»  error ,.. which i have installed it using command line.it worked for one day and
    after two days I tried importing the same files am getting the same error “Microsoft Access Database Engine 2010 Redistributable not found on local machine” am using windows 10 -64 bits and using Excel 2016 can any one please help me with this, I tried
    reinstalling and also restarted my computer several time but no success in this.

These configurations worked in January of 2020 on my new machine build:

(1 — x64 only) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 installed with /passive argument, VStudio build settings set to x64 explicitly, with the following connection string: Provider= Microsoft.ACE.OLEDB.16.0; Data Source=D:…MyDatabase.accdb

(2 — x64 or x32) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 installed with /passive argument, PLUS AccessDatabaseEngine 2010 (32bit) installed with /passive argument, VStudio build settings set to AnyCPU, with the following connection string: Provider= Microsoft.ACE.OLEDB.16.0; Data Source=D:…MyDatabase.accdb

(3 — x32 only) Windows 10 x64, Office 365 x32, AccessDatabaseEngine 2010 (32bit) installed with /passive argument, VStudio build settings set to x86, with the following connection string: Provider= Microsoft.ACE.OLEDB.12.0; Data Source=D:…MyDatabase.accdb

FAILURE NOTES

Using the ACE.OLEDB.12.0 x64 provider in the connection string failed with only the AccessDatabaseEngine_x64 2016 installed as above in (1).

Using AnyCPU in the visual studio build settings failed in (1). Setting x64 is required. Maybe this is because AnyCPU means that Vstudio must see an x32 ACE.OLEDB.nn.0 provider at compile time.

The ACE.OLEDB.12.0 2016 x32 /passive engine would NOT install when it saw x64 applications around. (The ACE.OLEDB.12.0 2010 x32 /passive installer worked.)

CONCLUSIONS

To use x64 build settings, you need to have the 2016 x64 database engine AND the ACE.OLEDB.16.0 connection-string provider AND explicit x64 build settings to work with Office 365 in January of 2020. Using the /passive option makes installations easy. Credit to whoever posted that tip!

To use AnyCPU, I needed to have both the ACE.OLEDB.12.0 2010 x32 engine and the ACE.OLEDB.16.0 x64 engines installed. That way Vstudio could see both x32 and x64 engines at «AnyCPU» compile time. I could change the provider connection string to ACE.OLEDB.12.0 for x32 operation or to ACE.OLEDB.16.0 for x64 operation. Both worked fine.

To use x86 build settings, you need to have the 2010 x32 database engine AND the ACE.OLEDB.12.0 connection-string provider AND explicit x86 build settings to work with Office 365 x32 in January of 2020.

Summarized: INSTALL 32 bit version of Microsoft Access Database Engine 2010 Redistributable. Uninstall 64 bit version if previously installed. http://www.microsoft.com/en-us/download/details.aspx?id=13255

The Excel connection manager is trying to use the ACE OLE DB provider in order to access the Excel file when the version is above 2007 (xlsx).
Although your box is 64-bit, you’re using SQL Server Data Tools, which is a 32-bit application. There is no 64-bit version for SSDT. When you design your package within SSDT, you’re using a 32-bit process, which can only use 32-bit providers. When you try to choose the table in the Excel file, the connection manager needs to access the 32-bit version of the ACE OLE DB provider, but this provider is not registered on your machine, only the 64-bit version is installed.

You should download the 32-bit version of the “Microsoft Access Database Engine 2010 Redistributable”. When you try to install it, you might get an error message.
You should first uninstall only the 64-bit version of the “Microsoft Access Database Engine 2010 Redistributable”, which you probably installed previously. The 64-bit version and the 32-bit version can’t live together on the same host, so you’ll have to uninstall (through “Program and Features”) and install the other one if you wish to switch between them.

Once you finish uninstalling the 64-bit version and installing the 32-bit version of the provider, the problem is solved, and you can finally choose the table within the Excel file. The Excel connection manager is now able to use the ACE OLE DB provider (32-bit version) in order to access the Excel file.

Для всех тех, кто все еще затронут этим.

Я получаю ошибку…

OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

… как описано OP, Шайлеш Саху.

У меня 64-битная Windows 7.

Моя проблема заключается в сценариях PowerShell, но использует строку подключения, похожую на сообщение OP, поэтому, надеюсь, мои результаты могут быть применены к С#, PowerShell и любому другому языку, использующему драйвер Microsoft.ACE.OLEDB.

Я следил за инструкциями на этом форуме MS: http://goo.gl/h73RmI

Сначала я попробовал установить 64-битную версию, а затем установил 32-разрядную версию AccessDatabaseEngine.exe с этой страницы
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Но до сих пор нет радости.

Затем я запустил код ниже в PowerShell (с сайта SQL Panda http://goo.gl/A3Hu96)

(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 

… который дал мне этот результат (я сократил другие источники данных для краткости)…

SOURCES_NAME              SOURCES_DESCRIPTION                                                                       
------------              -------------------                                                                       
Microsoft.ACE.OLEDB.15.0  Microsoft Office 15.0 Access Database Engine OLE DB Provider

Как вы можете видеть, у меня есть Microsoft.ACE.OLEDB. 15.0 (пятнадцать) не Microsoft.ACE.OLEDB. 12.0 (двенадцать)

Итак, я поменял мою строку подключения на 15 и работал.

Итак, быстрый фрагмент PowerShell, чтобы продемонстрировать, как программировать версию…

$AceVersion = ((New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Where-Object { $_.SOURCES_NAME -like "Microsoft.ACE.OLEDB*" } | Sort-Object SOURCES_NAME -Descending | Select-Object -First 1 SOURCES_NAME).SOURCES_NAME

$connString = "Provider=$AceVersion;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=NO`";"

изменен, чтобы выбрать последнюю версию ACE, если более одного

Надеюсь, кто-нибудь, кто найдет это, теперь может проверить, какая версия OLEDB установлена ​​и использовать соответствующий номер версии.

Понравилась статья? Поделить с друзьями:
  • Ошибка mfc140u dll при запуске приложения coreldraw
  • Ошибка microsoft visual basic for application
  • Ошибка metro 2033 applications load error 5 0000065434
  • Ошибка microsoft store код 0x803fb005
  • Ошибка messages file c program files