El proveedor 'Microsoft.ACE.OLEDB.16.0' no está registrado en la máquina local. (Datos de sistema)

103

Recibo este error cuando intento conectarme a cualquier Excel a través de la importación de datos del servidor MSSQL, es decir, el paquete SSIS. El Microsoft.ACE.OLEDB.16.0proveedor no está registrado en la máquina local. ( System.Data)

No es la misma versión, creo que se necesita algún otro parche

Suhail Abdul Rehman Chougule
fuente
5
No veo por qué se votó que esta pregunta se cerró como un duplicado ... ¡Claramente es una versión más nueva en el mensaje de error y necesita un conjunto más nuevo de componentes! Esta pregunta y sus respuestas me ayudaron con mis Microsoft.ACE.OLEDB.16.0problemas. La pregunta a la que apunta la solicitud de cierre es Microsoft.ACE.OLEDB.12.0y las respuestas abordan ESA versión. Esta pregunta debería volver a abrirse.
Arvo Bowen
@ArvoBowen No hay problema. Lo volví a abrir. Pero ambas preguntas tienen la misma solución.
Hadi
3
¿Cómo es eso? Son diferentes versiones que requieren diferentes descargas. Están relacionados pero tienen diferentes soluciones. Si seguí la respuesta de la otra pregunta, no resolvería mi problema.
Arvo Bowen

Respuestas:

116

Nota: estoy ejecutando SQL 2016 Developer 64bit, Office 2016 64bit.

Tuve el mismo problema y lo resolví descargando lo siguiente:

  1. Descargue e instale esto: https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. Sea cual sea el archivo al que intente acceder / importar, asegúrese de seleccionarlo como un archivo de Office 2010 (aunque podría ser un archivo de Office 2016).

Funciona.

Fuente

FA911
fuente
4
Funcionó perfectamente para mí, ¡gracias! Cargué mi archivo de Office 2016 como Office 2007-2010 y funcionó bien. Mucho mejor que probar CSV / TSV.
tc_NYC
2
Gracias por mencionar que no debería elegir Office 2016. No estoy seguro de haber probado uno de los otros.
birdus
El primer enlace está roto
jcvegan
1
Acabo de actualizar el enlace a la URL actual para Microsoft Access Database Engine 2016 Redistributable
e_i_pi
En un WS 2016 de 64 bits, tuve que usar la versión de 32 bits para que funcionara ...
Lambda
98

Para cualquiera que todavía esté atascado en este problema después de intentar lo anterior. Si hace clic derecho en la base de datos y va a tareas-> importar, aquí está el problema. Vaya a su menú de inicio y en SQL Server, busque el asistente de importación y exportación de x64 bits y pruébelo. Funcionó como un encanto para mí, ¡pero me tomó DEMASIADO tiempo encontrarlo en Microsoft!

Paul Dove
fuente
3
Para tener Excel disponible desde la versión de 64 bits de DTSWizard, instale el motor de base de datos de Access 2016 redistribuible: microsoft.com/en-us/download/details.aspx?id=54920 Fuente: sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 /… Lo probé yo mismo y funciona. Tenga en cuenta que SSDT es una aplicación de 32 bits, por lo que si inicia el asistente de importación / exportación desde él, es la versión de 32 bits del asistente la que se inicia. Este sigue siendo el caso incluso a partir de Visual Studio 2017 y SQL Server 2017.
otravers
1
Gracias por tu respuesta, muy útil. Tengo Office (2016) de 64 bits y SQL de 64 bits Y el conector correspondiente Microsoft.ACE.OLEDB.16.0. Sin embargo, recibía el mensaje "El proveedor 'Microsoft.ACE.OLEDB.16.0' no está registrado en la máquina local". Esto simplemente no tenía sentido. Después de abrir directamente el asistente de importación de 64 bits, no tuve ningún problema para importar archivos de Excel. Mi impresión es que, de forma predeterminada, la ruta de tareas-> importación va al asistente de 32 bits y eso se estropea con los elementos de 64 bits, no estoy seguro. Gracias Paul.
Café
@otravers, descargué e instalé el motor de base de datos de Access 2016 redistribuible, pero no ayudó. Entonces me di cuenta, eso es para Access, no Excel.
Rod
2
@ Rod, a pesar del nombre, le aseguro que esto resuelve este problema específico con Excel y DTSWizard.
otravers
1
No tengo una versión x64 del asistente de importación / exportación
PeterX
20

Como solución rápida, acabo de guardar el libro como un archivo .xls de Excel 97-2003. Pude importar con ese formato sin errores.

Russ
fuente
No funcionó para mí. Obtuve un "Error inesperado del controlador de la base de datos externa (1). (Motor de base de datos Microsoft JET)"
Rod
2
Me tomó un par de intentos, pero al final encontré que esta era la solución más rápida a mi problema.
ClubbieTim
1
Esto solo funciona si tiene menos de 64K filas para importar.
Cougar9000
Tenga cuidado de que su hoja de cálculo no tenga más de 65,536 filas, de lo contrario puede perder datos al realizar esta conversión.
Fiach Reid
9

Una alternativa que me funciona es simplemente convertir a un CSV.

PeterX
fuente
2
A grandes problemas, grandes soluciones, gracias @PeterX
ElMatador
1
@PeterX Saved my Day hermano
Mohammad Heydari
1
¡Trabajado como un encanto! Solo necesitaba seleccionar un archivo plano en lugar de ms excel 2016 cuando estaba cargando el csv.
kiradotee
6

Si tiene sistema operativo (64 bits) y SSMS (64 bits) y ya instaló AccessDatabaseEngine (64 bits) y aún recibió un error, pruebe las siguientes soluciones:

1: apertura directa del asistente de importación y exportación del servidor SQL.

Si puede conectarse utilizando el asistente de importación y exportación de servidor SQL directo, entonces el problema es importar desde SSMS, es como activar 32 bits si importa datos desde SSMS.

En lugar de instalar AccessDatabaseEngine (64 bits) , intente usar AccessDatabaseEngine (32 bits) , después de la instalación, Windows lo detendrá para continuar con la instalación si ya tiene otra aplicación instalada, si es así, siga los siguientes pasos. Esto es de MICROSOFT . La instalación silenciosa.

Si Office 365 ya está instalado, la detección en paralelo evitará que continúe la instalación. En su lugar, realice una instalación silenciosa de estos componentes desde la línea de comandos. Para hacerlo, descargue el AccessDatabaseEngine.exe o AccessDatabaeEngine_x64.exe deseado en su PC, abra un símbolo del sistema administrativo y proporcione la ruta de instalación y cambie Ex: C: \ Files \ AccessDatabaseEngine.exe / quiet

o consulte el contenido de la información adicional en el enlace siguiente ,

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

jpcarts23
fuente
1
Vaya, esto fue frustrante. Resulta que el instalador de SSMS 18.5 es de 64 bits, pero la aplicación en sí es de 32 bits. Seguí instalando los componentes de oficina AccessDatabaseEngine de 64 bits con el mismo error. Miré el administrador de tareas, vi SSMS de 32 bits ... Luego, usé su método: C: \ Files \ AccessDatabaseEngine.exe / quiet porque tengo Office 2016 de 64 bits instalado. ¡¡Esto funcionó !! Instaló con éxito el motor de base de datos de 32 bits junto con la oficina de 64 bits.
rjkunde
5

ACE.oledb.16.0 no funciona en el sistema operativo de 64 bits

descargue el parche de https://www.microsoft.com/en-us/download/details.aspx?id=13255

arnav
fuente
8
No funcionó Intenté recibir el mismo error
Suhail Abdul Rehman Chougule
1
funciona para importar Microsoft Excel 2007-2010 en el Asistente de importación y exportación de SQL Server
Junior Mayhé
1

Tienes que usar ahora el nuevo XLSX -Driver de Access-Redist (32/64-Bit). El controlador XLS actual está dañado desde la última actualización acumulativa.

bfuerchau
fuente
0

Sigue estos pasos:

  1. Ir [aquí] [1], descargar Microsoft Access Database Engine 2016 Redistributable e instale
  2. Cerrar SQL Server Management Studio
  3. Vaya al menú Inicio -> Microsoft SQL Server 2017 -> Datos de importación y exportación de SQL Server 2017 (64 bits)
  4. Abra la aplicación e intente importar datos usando la opción "Excel 2016", debería funcionar bien.
Francesco Mantovani
fuente