Постачальник 'Microsoft.ACE.OLEDB.16.0' не зареєстрований на локальній машині. (System.Data)


105

Я отримую цю помилку, коли я намагаюся підключитися до будь-якого excel через імпорт даних MSSQL Server, тобто пакет SSIS Microsoft.ACE.OLEDB.16.0Провайдер не зареєстрований на локальній машині. ( System.Data)

Це не та сама версія, я думаю, що потрібні інші виправлення


5
Я не розумію, чому це питання було проголошено за закриття як дублікат ... Очевидно, це нова версія у повідомленні про помилку і потребує нового набору компонентів! Це питання та відповіді допомогли мені у Microsoft.ACE.OLEDB.16.0вирішенні питань. Питання, на яке вказує пильний запит, стосується Microsoft.ACE.OLEDB.12.0і відповіді стосуються ТОЇ версії. Це питання слід відкрити назад.
Арво Боуен

@ArvoBowen Немає проблем. Я знову відкрив це. Але обидва питання мають однакове рішення.
Хаді

3
Як так? Це різні версії, що вимагають різного завантаження. Вони пов’язані між собою, але мають різні рішення. Якби я відповів на інше питання, це не вирішило б мого питання.
Арво Боуен

Відповіді:


116

Примітка. Я використовую SQL 2016 Developer 64bit, Office 2016 64bit.

У мене була та сама проблема, і я вирішив її, завантаживши наступне:

  1. Завантажте та встановіть це: https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. Незалежно від файлу, до якого ви намагаєтеся отримати доступ / імпортувати, виберіть його як файл Office 2010 (хоча це може бути файл Office 2016).

Це працює.

Джерело


4
У мене чудово вийшло, дякую! Завантажив файл Office 2016 як Office 2007-2010, і він працював добре. Набагато краще, ніж спробувати CSV / TSV.
tc_NYC

2
Дякую, що згадали, що я не повинен обирати Office 2016. Не впевнений, що спробував би один із інших.
birdus

Перша посилання розірвана
jcvegan

1
Я щойно оновив посилання на поточну URL-адресу для Microsoft Access Database Engine 2016, що розповсюджується
e_i_pi

На WS 2016 64Bit мені довелося використовувати 32-бітну версію, щоб він запрацював ...
Лямбда

99

Для всіх, хто все ще зациклювався на цьому питанні після спроб вище. Якщо ви клацаєте правою кнопкою миші на базі даних і переходите до завдань-> імпорту, то тут проблема. Перейдіть у меню "Пуск" та під SQL-сервером, знайдіть майстер експорту x64 біт та спробуйте це. Це спрацювало для мене як шарм, але мені знадобилося занадто багато часу, щоб знайти його Microsoft!


3
Щоб мати доступ до Excel із 64-розрядної версії DTSWizard, встановіть 2016 Access Database Engine, який можна розповсюджувати: microsoft.com/en-us/download/details.aspx?id=54920 Джерело: sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 /… Я перевірив це сам і це працює. Зауважте, що SSDT - це 32-розрядний додаток, тому якщо ви запускаєте майстра імпорту / експорту з нього, це 32-бітна версія майстра, яка запускається. Це все ще стосується Visual Studio 2017 та SQL Server 2017.
otravers,

1
Дякую за вашу відповідь, дуже корисно. У мене є Office (2016) 64-розрядна та SQL 64-розрядна І відповідний роз’єм Microsoft.ACE.OLEDB.16.0. Однак я отримував повідомлення "Постачальник Microsoft.ACE.OLEDB.16.0 'не зареєстрований на локальній машині." Це просто не мало сенсу. Після безпосереднього відкриття майстра імпорту 64-розрядної версії у мене не виникло проблем із імпортом файлів Excel. Я склав враження, що за замовчуванням шлях-> імпорт шляху переходить до 32-розрядного майстра, і він псує 64-розрядні елементи, не впевнений. Дякую Поле.
кава

@otravers, я завантажив і встановив 2016 р. доступ до передаткового механізму доступу до бази даних, але це не допомогло. Потім мене вдарило, це для Access, а не для Excel.
Стержень

2
@Rod, незважаючи на назву, я запевняю, що це вирішує цю конкретну проблему за допомогою Excel та DTSWizard.
otravers

1
У мене немає версії x64 майстра імпорту / експорту
PeterX

20

В якості швидкого вирішення я просто зберегла робочу книгу як файл Excel 97-2003 .xls. Мені вдалося імпортувати цей формат без помилок.


Не працювало для мене. Отримав "Несподівана помилка з боку зовнішнього драйвера бази даних (1). (База даних Microsoft JET Data Engine Engine")
Ст

2
Потрібно було кілька спроб, але врешті-решт я знайшов це найшвидше рішення своєї проблеми.
ClubbieTim

1
Це працює, лише якщо у вас є менше 64 тис. Рядків для імпорту.
Cougar9000

Обережно, щоб у вашій електронній таблиці не було більше 65 536 рядків, інакше ви можете втратити дані, виконуючи це перетворення.
Фіак Рід

9

Альтернатива, яка працює для мене, - це просто перетворити на CSV.


2
За великі проблеми, відмінні рішення, дякую @PeterX
ElMatador

1
@PeterX Врятував мій день, брате
Мохаммад

1
Працював як оберіг! Мені просто потрібно було вибрати плоский файл замість ms excel 2016, коли я завантажував csv.
kiradotee

6

Якщо у вас ОС (64 біт) і SSMS (64 біт) і вже встановлено AccessDatabaseEngine (64 біт), і ви все-таки отримали помилку, спробуйте наступні рішення:

1: пряме відкриття майстра імпорту та експорту сервера sql.

якщо ви можете підключитися за допомогою майстра прямого імпорту та експорту сервера sql, тоді імпорт із SSMS є проблемою, це все одно, що активувати 32 біт, якщо ви імпортуєте дані із SSMS.

Замість того, щоб встановлювати AccessDatabaseEngine (64 біт) , спробуйте використовувати AccessDatabaseEngine (32 біт) , після встановлення вікна зупинять вас для продовження інсталяції, якщо у вас вже встановлена ​​інша програма, якщо так, то виконайте наступні дії. Це від MICROSOFT . Тиха установка.

Якщо Office 365 вже встановлено, паралельне виявлення не дозволить продовжувати установку. Натомість виконайте / тиху установку цих компонентів із командного рядка. Для цього завантажте на свій ПК потрібний AccessDatabaseEngine.exe або AccessDatabaeEngine_x64.exe, відкрийте командний рядок адміністратора та вкажіть шлях встановлення та перемикач Ex: C: \ Files \ AccessDatabaseEngine.exe / silent

або перевірте вміст Додаткової інформації за посиланням нижче ,

https://www.microsoft.com/en-us/download/details.aspx?id=54920


1
Ого, це було неприємно. Виявляється, інсталятор SSMS 18.5 має 64 біти, а сам додаток - 32 біт. Я продовжував встановлювати 64-бітні офісні компоненти AccessDatabaseEngine з тією ж помилкою. Подивившись на диспетчер завдань, побачив, що SSMS є 32-бітовим ... Потім я використав ваш метод: C: \ Files \ AccessDatabaseEngine.exe / quiet, оскільки у мене встановлено 64-бітний Office 2016. Це спрацювало !! Він успішно встановив 32-бітний механізм баз даних поряд із 64-бітним офісом.
rjkunde


1

Тепер ви повинні використовувати новий XLSX -Driver від Access-Redist (32/64-біт). Поточний драйвер XLS пошкоджений з часу останнього сукупного оновлення.


0

Виконайте такі дії:

  1. Перейдіть [сюди] [1], завантажте Microsoft Access Database Engine 2016 Redistributableта встановіть
  2. Закрийте студію управління SQL Server
  3. Перейдіть до меню Пуск -> Microsoft SQL Server 2017 -> Імпорт та експорт даних SQL Server 2017 (64-розрядні)
  4. Відкрийте програму та спробуйте імпортувати дані за допомогою опції «Excel 2016», вона повинна працювати нормально.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.