Поставщик Microsoft.ACE.OLEDB.16.0 не зарегистрирован на локальном компьютере. (Системные данные)


105

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

Это не та версия, я думаю, что нужны другие исправления


6
Я не понимаю, почему этот вопрос был закрыт как дубликат ... Это явно более новая версия в сообщении об ошибке и требует более нового набора компонентов! Этот вопрос и ответы помогли мне Microsoft.ACE.OLEDB.16.0решить мои проблемы. Вопрос, на который указывает запрос на закрытие, относится к Microsoft.ACE.OLEDB.12.0той версии, а ответы относятся к этой версии. Этот вопрос следует снова открыть.
Арво Боуэн,

@ArvoBowen Нет проблем. Я снова его открыл. Но оба вопроса имеют одинаковое решение.
Хади,

3
Как так? Это разные версии, требующие разных загрузок. Они связаны, но имеют разные решения. Если бы я последовал ответу на другой вопрос, это не решило бы мою проблему.
Арво Боуэн,

Ответы:


116

Примечание. Я использую 64-разрядную версию SQL 2016 Developer, 64-разрядную версию Office 2016.

У меня была такая же проблема, и я решил ее, загрузив следующее:

  1. Загрузите и установите это: https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. Какой бы файл вы ни пытались получить / импортировать, убедитесь, что вы выбрали его как файл Office 2010 (даже если это может быть файл Office 2016).

Оно работает.

Источник


4
У меня отлично сработало, спасибо! Загрузил мой офисный файл 2016 как офис 2007-2010, и он работал хорошо. Намного лучше, чем пробовать CSV / TSV.
tc_NYC 06

2
Спасибо, что упомянули, что мне не следует выбирать Office 2016. Не уверен, что я бы попробовал один из других.
birdus

Первая ссылка не работает
jcvegan

1
Я только что обновил ссылку на текущий URL-адрес для распространяемого
компонента

На 64-битном WS 2016 мне пришлось использовать 32-битную версию, чтобы заставить его работать ...
Лямбда,

99

Для тех, кто все еще застрял в этой проблеме после попытки вышеуказанного. Если вы щелкнете правой кнопкой мыши по базе данных и перейдете к задачам-> импорт, то вот в чем проблема. Перейдите в меню «Пуск» и под sql server найдите мастер импорта и экспорта x64 bit и попробуйте это. Сработало для меня как шарм, но мне потребовалось слишком много времени, чтобы найти его Microsoft!


3
Чтобы Excel был доступен из 64-разрядной версии DTSWizard, установите распространяемый компонент Access Database Engine 2016: microsoft.com/en-us/download/details.aspx?id=54920 Источник: sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 /… Я сам это тестировал, и это работает. Обратите внимание, что SSDT - это 32-разрядное приложение, поэтому, если вы запустите из него мастер импорта / экспорта, запустится 32-разрядная версия мастера. Это по-прежнему
актуально

1
Спасибо за ответ, очень полезно. У меня 64-разрядный Office (2016) и 64-разрядный SQL И соответствующий коннектор Microsoft.ACE.OLEDB.16.0. Однако я получал сообщение «Поставщик Microsoft.ACE.OLEDB.16.0 не зарегистрирован на локальном компьютере». В этом просто не было смысла. После открытия 64-разрядного мастера импорта непосредственно у меня не возникло проблем с импортом файлов Excel. У меня сложилось впечатление, что по умолчанию путь tasks-> import идет к 32-битному мастеру, и это портит 64-битные элементы, не уверен. Спасибо, Пол.
Кофе

@otravers, я скачал и установил распространяемый компонент Access Database Engine 2016, но это не помогло. Потом меня осенило, что это для Access, а не для Excel.
Rod

2
@Rod, несмотря на название, уверяю вас, это решает конкретную проблему с Excel и DTSWizard.
otravers

1
У меня нет 64-разрядной версии мастера импорта / экспорта
PeterX

20

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


У меня не сработало. Получил: «Неожиданная ошибка от драйвера внешней базы данных (1). (Microsoft JET Database 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 server.

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

Вместо установки AccessDatabaseEngine (64- разрядная версия) попробуйте использовать AccessDatabaseEngine (32-разрядная версия) , после установки Windows остановит вас для продолжения установки, если у вас уже установлено другое приложение, если это так, выполните следующие действия. Это от MICROSOFT . Тихая установка.

Если Office 365 уже установлен, параллельное обнаружение не позволит продолжить установку. Вместо этого выполните тихую установку этих компонентов из командной строки. Для этого загрузите нужный AccessDatabaseEngine.exe или AccessDatabaeEngine_x64.exe на свой компьютер, откройте административную командную строку, укажите путь установки и переключите Ex: C: \ Files \ AccessDatabaseEngine.exe / quiet

или проверьте содержимое дополнительной информации по ссылке ниже ,

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 от Access-Redist (32/64-бит). Текущий драйвер XLS поврежден с момента последнего накопительного обновления.


0

Следуй этим шагам:

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