Подтвердить что ты не робот

Microsoft.ACE.OLEDB.12.0 не зарегистрирован

У меня есть задание SQL Server, которое выполняется ежемесячно, что выполняется на сервере. В задании используется пакет SSIS и предполагается извлечь данные из базы данных, а также создать лист Excel и скопировать данные в Excel 2003.

Я действительно получил около 140 000 строк из базы данных из-за проблемы усечения в Excel 2003 (Excel поддерживает 64 000 строк). Поэтому я изменил файл конфигурации для поддержки формата Excel 2007.

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="  +  @[User::FullPath]  + ";Extended Properties=\"Excel 12.0;HDR=YES\"

Но когда я пытаюсь выполнить задание, он не показывает сообщение об ошибке:

"Запрошенный поставщик OLE DB Microsoft.ACE.OLEDB.12.0 не зарегистрирован"

4b9b3361

Ответ 1

Подведены: INSTALL 32-разрядная версия Microsoft Access Database Engine 2010, распространяемая. Удалите 64-разрядную версию, если она была установлена ​​ранее. http://www.microsoft.com/en-us/download/details.aspx?id=13255

Менеджер соединений Excel пытается использовать провайдер ACE OLE DB для доступа к файлу Excel, если версия выше 2007 (xlsx). Хотя ваш бокс 64-битный, вы используете SQL Server Data Tools, который является 32-битным приложением. 64-битной версии для SSDT нет. Когда вы разрабатываете свой пакет в SSDT, вы используете 32-битный процесс, который может использовать только 32-разрядные провайдеры. Когда вы пытаетесь выбрать таблицу в файле Excel, диспетчеру связи необходимо получить доступ к 32-разрядной версии поставщика ACE OLE DB, но этот провайдер не зарегистрирован на вашем компьютере, установлена ​​только 64-разрядная версия.

Вам следует загрузить версию 32-разрядной версии Microsoft Access Database Engine 2010 Redistributable. Когда вы пытаетесь установить его, вы можете получить сообщение об ошибке. Сначала вы должны удалить только 64-разрядную версию "Microsoft Access Database Engine 2010 Redistributable", которую вы, вероятно, установили ранее. 64-разрядная версия и 32-битная версия не могут жить вместе на одном и том же хосте, поэтому вам придется удалить (через "Программа и функции" ) и установить другую, если вы хотите переключиться между ними.

Как только вы закончите удаление 64-разрядной версии и установили 32-разрядную версию поставщика, проблема решена, и вы можете, наконец, выбрать таблицу в файле Excel. Менеджер соединений Excel теперь может использовать поставщика ACE OLE DB (32-разрядную версию) для доступа к файлу Excel.

Ответ 2

Есть альтернативный путь. Откройте файл Excel в Microsoft Office Excel и сохраните его как "Excel 97-2003 Workbook". Затем используйте новый сохраненный файл excel в вашем подключении к файлу.

Ответ 3

Другой вариант - запустить пакет в 32-битном режиме. Нажмите на решение = > properties =? Debugging = > Установить в 64 бит значение false.

Ответ 4

Я установил "Microsoft Access Database Engine 2010 Redistributable", как упомянуто выше, и получил побочные проблемы с устранением неполадок, связанных с битрейтом, когда это казалось проблемой с версией.

Установка "Драйвер системы Office 2007: компоненты подключения данных" разобрала его для меня.

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

Ответ 6

Самым простым решением для меня было изменить задание агента SQL на запуск в 32-разрядной среде выполнения. Перейдите в раздел "Работа SQL"> щелкните правой кнопкой мыши свойства> шаг> изменить (шаг)> вкладка "Параметры выполнения"> "Использовать 32-разрядную среду выполнения".

Скриншот

Ответ 8

Я выполнил инструкции по использованию /passive switch здесь после загрузки 64-битного ядра базы данных Access. Я запускаю Office 32-битную табличную модель SSAS в SQL Server 2012. Когда я загрузил и запустил 64-битный движок базы данных Access, появилось сообщение о том, что я не смог установить это без первой деинсталляции Office 2010, но /passive switch, похоже, решил это (теперь я могу импортировать книги Excel и таблицы Access в табличную модель).

Ответ 9

Самое легкое решение, которое я нашел, это указать версию Excel200-2003 в настройке диспетчера подключений.

Ответ 10

Я получал эту же ошибку после того, как ранее смог выполнить аналогичные операции. Я не пытался загрузить ни один из упомянутых пакетов, так как у меня их не было раньше, и все работает. IT на моей работе сделал "Ремонт" в Microsoft Office 2013 (Панель управления > Программы > Добавить/Удалить - Выбрать Изменить, затем Восстановить). Взял несколько минут, чтобы закончить, но все исправил.

Ответ 11

Просто установите 32-битную версию ADBE в пассивном режиме:

запустите cmd в режиме администратора и запустите этот код:

AccessDatabaseEngine.exe/passive

http://www.microsoft.com/en-us/download/details.aspx?id=13255