Ошибка поставщик oledb не зарегистрирован

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.

Я покажу несколько вариантов решения этой проблемы. Но в начале кратко о возникающей проблеме.

Я использовал следующий вариант подключения к базе nookery.accdb

var conn = new OleDbConnection(@»Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:SQLnookery.accdb»);

               conn.Open();

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

Хотелось бы упомянуть что
accdb — формат файла является более новым и идет с 2010 версии офиса, mdb более старый и шел до 2007 включительно. Соответственно и подключений с более старой версией mdb не возникает, однако accdb такого сказать нельзя. Проблема сводиться к разрядности системы и установленной Microsoft Access. Когда вы его устанавливали у вас автоматически или вручную была установлена разрядность согласно вашей операционной системы. Однако могло быть и такое что вы ставили Microsoft Access 32 битную на 64 битную Windows. А теперь рассмотрим два решения этой проблемы:

Вам необходимо создать пустой проект и запустить следующий метод:

public void Information()

        {

            DataTable table = new OleDbEnumerator().GetElements();

            string inf = «»;

            foreach (DataRow row in table.Rows)

                inf +=row[«SOURCES_NAME»]+ «n»;

            MessageBox.Show(inf);

        }

Далее вам необходимо вызвать данным метод и проанализировать информацию.

И изменить целевую платформу в сборке на x86, а потом на x64. Посмотрев в информации под какую сборку у вас будет доступен поставщик.

Покажу на примере первоначально у меня целевая сборка была под Any CPU метод показал следующую информацию :

Посмотрев на информацию мы не обнаруживаем в ней Microsoft.ACE.OLEDB.12.0. Меняем целевую сборку на x86

Как видим результат остался неизменным, переключаемся на x64

Как мы видим появился доступный нам поставщик Microsoft.ACE.OLEDB.12.0 Для этого всего лишь требовалось сменить целевую платформу.

Необходимо так же добавить или установить в диспетчере конфигурации как показано ниже x64

Если выбора x64 нет, в этом окне так же выберите пункт добавить и соответственно добавьте выбор x64.

Так же необходимо поменять в проекте на x64

Вторым решением будет скачать 2007 Office System Driver ссылка

Таким образом мы рассмотрели два решения существующей проблемы с Поставщиком «Microsoft.ACE.OLEDB.12.0»

  • Remove From My Forums
  • Вопрос

  • Пытаюсь подключится к базе Access 2016 из приложения написанного на C# с помощью драйвера Microsoft ACE OLEDB 12.0. Получаю: «Поставщик «Microsoft.ACE.OLEDB.12.0″ не зарегистрирован на локальном компьютере.». Пытаюсь
    экспортировать таблицу MS SQL в Excel 2007-2013 через мастер экспорта/импорта, получаю тот же результат!

    Вкратце как пытался исправить…

    1) Microsoft Access Database Engine Redistributable ставил, 64 бита, всех версий, так как Windows 10 64 бит.

    2) Office 2016 перестанавливал, и до установки Microsoft
    Access Database Engine Redistributable, и после.

    Версия Windows 10.0.17134 Сборка 17134.

Ответы

  • причём тут порядок иморта в excel???

    Это не Вы писали:

    Пытаюсь экспортировать таблицу MS SQL в Excel 2007-2013 через мастер экспорта/импорта, получаю тот же результат!

    Я же писал, подключаюсь с приложения на c#

    Обратитесь к разработчику приложения.

    • Предложено в качестве ответа

      17 октября 2018 г. 19:08

    • Отменено предложение в качестве ответа
      ВиталийК
      17 октября 2018 г. 21:52
    • Помечено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff, Moderator
      8 августа 2019 г. 6:34

  • Здравствуйте Виталий,

    Пожалуйста не дублируйте Ваши темы.

    лучше помогите с проблемой!

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

    Что до вашей проблемы, то это типично разнобой в разрядности приложения и установленного провайдера. Скорее всего провайдер 32 битный, а приложение 64 битное. Для решения попробуйте установить разрядность в свойствах проекта в 32 бита (x86 или AnyCPU,
    32 bit preferred).

    Объяснение как это сделать и что это значит тут:

    http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11/


    This posting is provided «AS IS» with no warranties, and confers no rights.

Как решать эту проблему ?

private void btnImport_Click(object sender, EventArgs e)
{
    // Вызываем окно проводника
    OpenFileDialog opfd = new OpenFileDialog();

    // Если выбрали, то загружаем
    if (opfd.ShowDialog(this) == DialogResult.OK) {

        if (opfd.FileName.EndsWith(".xlsx")) {
            // on crée une connexion vers le fichier excel reste à trouver son chemin et de modifier la partie rouge...
            OleDbConnection Excel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.xlsx;
            Extended Properties=""Excel 12.0 Xml;HDR=YES"";");

            OleDbCommand cmd = new OleDbCommand("select * from [Feuil1$]", Excel); // l'étoile (*) permet d'importer l'ensemble du fichier Excel
            // j'ouvre la connexion 
            Excel.Open();
            DataTable tableau = new DataTable();
            OleDbDataReader Reader = cmd.ExecuteReader();
            tableau.Load(Reader);
            dataGridView1.DataSource = tableau;
        }
    }
}

  • c#
  • excel
  • oledb

MSDN.WhiteKnight's user avatar

задан 16 ноя 2018 в 21:17

Alexander's user avatar

AlexanderAlexander

3241 золотой знак2 серебряных знака13 бронзовых знаков

3

  • Это не помогает.

    16 ноя 2018 в 21:56

1 ответ

Возможные причины данной ошибки:

  1. Не установлен Microsoft Access 2010 Database Engine или полноценный Microsoft Access

  2. Разрядность приложения не совпадает с разрядностью установленного Database Engine (или Access).

ответ дан 19 ноя 2018 в 3:16

MSDN.WhiteKnight's user avatar

MSDN.WhiteKnightMSDN.WhiteKnight

20.1k6 золотых знаков37 серебряных знаков81 бронзовый знак

RRS feed

  • Remove From My Forums
  • Question

  • Trying to import data from Excel is giving this message.

    Office365 64-bit

    Here’s what I tried:

    1) I installed the 64-bit Access database engine 2016

    2) I tried the 2010 & 2007 versions as well

    3) I reinstalled Office365

    I’m out of ideas. What else could be going on here?

Answers

    • Proposed as answer by
      Puzzle_Chen
      Tuesday, October 9, 2018 8:22 AM
    • Marked as answer by
      Olaf HelperMVP
      Saturday, November 10, 2018 6:25 AM

All replies

    • Proposed as answer by
      Puzzle_Chen
      Tuesday, October 9, 2018 8:22 AM
    • Marked as answer by
      Olaf HelperMVP
      Saturday, November 10, 2018 6:25 AM
  • If you already installed the 64-bit Acess Database Engine 2016 and still have the same problem, you can try opening — the 64-bit  «SQL Server Import and Export Data» directly, out of Management Studio. It worked for for me:

    — Close SQL Server Management Studio

    — Go to Start Menu -> Microsoft SQL Server 2017 ->  SQL Server 2017 Import and Export Data (64-bit)

    — Open the application and try to import data using the «Excel 2016» option, it should work fine.

    Hope this helps.

     

    • Proposed as answer by
      Eric-K
      Saturday, April 27, 2019 7:05 PM

  • The above steps did worl for me also. It still is strange that it didnt work from whitin SSMS. Thanks for the answer.

    Btw i did not close SSMS, and it worked fine.

  • I tried all of these and am still getting the same error.

  • This solution worked for me.  I didn’t need to close SQL Management Studio either.

    Thank you.

    • Edited by
      Syed_Rabbani
      Tuesday, August 13, 2019 4:51 PM
      included more
  • Thanks for the suggestion.  SSMS wouldn’t work, but using the Import-Export Wizard worked just fine.  All my selections were the same, but I-X Wizard worked w/o returning an error.


    Mario

  • It worked fine for me ! Thanks for the suggestion

  • Hello it works, but how can I see my import files .xlsx on sql server?

    thanks.

  • Thanks 

    this worked for me.

    • Edited by
      Mayank Jars
      Friday, January 24, 2020 2:26 AM

  • C:AccessDatabaseEngine.exe /quiet worked for me!

  • If you have already installed the Access Redistributable but still have problems, here is a remedy I discovered:

    (1) On the taskbar, click Windows and scroll down the installed apps to ‘Microsoft SQL Server YYYY’ (where YYYY is the year) and click it. 

    (2) A short list of apps should appear underneath. One of them should be ‘SQL Server YYYY Import and Export’.

    (3) Click that and the DTS Wizard runs. I was able to import data from Excel 365 without any problems.

    It appears that running the wizard outside of SSMS solves the problem.

    Regards.

Понравилась статья? Поделить с друзьями:
  • Ошибка посудомоечной машины bosch e09 в конце цикла
  • Ошибка посуда е 15 бош
  • Ошибка построения пути сертификации криптопро арм как исправить
  • Ошибка после того как включил компьютер
  • Ошибка после прошивки под евро 2