164 votos

El proveedor 'Microsoft.ACE.OLEDB.16.0' no está registrado en la máquina local. (System.Data)

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

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

15 votos

No veo por qué se votó para cerrar esta pregunta como duplicada... ¡Es claramente una versión más reciente en el mensaje de error y necesita un nuevo conjunto de componentes! Esta pregunta y respuestas me ayudaron con mis problemas de Microsoft.ACE.OLEDB.16.0. La pregunta a la que se hace referencia en la solicitud de cierre es para Microsoft.ACE.OLEDB.12.0 y las respuestas abordan ESA versión. Esta pregunta debería ser reabierta.

0 votos

@ArvoBowen No hay problema. Lo volví a abrir. Pero ambas preguntas tienen la misma solución.

14 votos

¿Cómo así? Son diferentes versiones que requieren descargas distintas. Están relacionados pero tienen soluciones diferentes. Si siguiera la respuesta de la otra pregunta, no resolvería mi problema.

179voto

Paul Dove Puntos 279

Para aquellos que todavía están atascados en este problema después de probar lo anterior. Si están haciendo clic con el botón derecho en la base de datos y yendo a tareas->importar, entonces aquí está el problema. Vayan al menú de inicio y, bajo sql server, encuentren el asistente de importación y exportación de 64 bits y prueben eso. ¡Funcionó como un encanto para mí, pero me llevó DEMASIADO tiempo encontrarlo Microsoft!

3 votos

Para disponer de Excel disponible desde la versión de 64 bits del asistente DTSWizard, instala el redistribuible 2016 del Motor de base de datos de Access: microsoft.com/es-es/download/details.aspx?id=54920 Fuente: sqlblog.com/blogs/john_paul_cook/archive/2017/06/11/… Lo probé yo mismo y funciona. Ten en cuenta que SSDT es una aplicación de 32 bits, por lo que si inicias el asistente de importación/exportación desde él, se lanzará la versión de 32 bits del asistente. Esto sigue siendo cierto incluso con Visual Studio 2017 y SQL Server 2017.

2 votos

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, estaba recibiendo el mensaje "El proveedor 'Microsoft.ACE.OLEDB.16.0' no está registrado en la máquina local". 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, por defecto, la ruta de tareas->importación va al asistente de 32 bits y eso causa problemas con los elementos de 64 bits, no estoy seguro. Gracias Paul.

0 votos

@otravers, Descargué e instalé el redistribuible del Motor de Base de Datos de Access 2016, pero no ayudó. Luego me di cuenta, eso es para Access, no Excel.

134voto

FA911 Puntos 751

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

Yo tuve el mismo problema y lo solucioné descargando lo siguiente:

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

  2. Cualquier archivo que estés intentando accesar/importar, asegúrate de seleccionarlo como un archivo de Office 2010 (aunque pueda ser un archivo de Office 2016).

Funciona.

Fuente

4 votos

¡Funcionó perfectamente para mí, gracias! Cargó mi archivo de office 2016 como office 2007-2010 y funcionó bien. Mucho mejor que intentar con CSV/TSV.

3 votos

Gracias por mencionar que no debería elegir Office 2016. No estaba seguro de si hubiera probado alguno de los otros.

0 votos

El primer enlace está roto

30voto

Russ Puntos 41

Como solución temporal, simplemente guardé el libro de trabajo como un archivo .xls de Excel 97-2003. Pude importarlo con ese formato sin errores.

0 votos

No funcionó para mí. Recibí un, "Error inesperado del controlador de base de datos externo (1). (Motor de base de datos de Microsoft JET)"

2 votos

Tomó un par de intentos pero al final encontré esta la solución más rápida a mi problema.

2 votos

Esto solo funciona si tienes menos de 64k filas para importar.

21voto

jpcarts23 Puntos 189

Si tiene OS (64 bits) y SSMS (64 bits) y ya instaló el AccessDatabaseEngine (64 bits) y aún recibe un error, pruebe las siguientes soluciones:

1: abrir directamente el asistente de importación y exportación del servidor SQL.

Si puede conectarse usando directamente el asistente de importación y exportación del servidor SQL, entonces la importación desde SSMS es el problema, es como activar 32 bits si importa datos desde SSMS.

En lugar de instalar AccessDatabaseEngine (64 bits), intente usar el AccessDatabaseEngine (32 bits), al instalarlo, Windows le detendrá para continuar la instalación si ya tiene otra aplicación instalada, si es así, entonces use los siguientes pasos. Esto es de MICROSOFT. La instalación silenciosa.

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

o consulte en el contenido de Información Adicional desde el enlace a continuación,

https://www.microsoft.com/es-mx/download/details.aspx?id=54920

3 votos

Wow, 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 Office AccessDatabaseEngine de 64 bits con el mismo error. Miré en el administrador de tareas, vi que SSMS es de 32 bits... Entonces, usé tu método: C:\Files\AccessDatabaseEngine.exe /quiet porque tengo instalado Office 2016 de 64 bits. ¡¡Esto funcionó!! Se instaló correctamente el motor de base de datos de 32 bits junto con Office de 64 bits.

1 votos

Intenta usar AccessDatabaseEngine(32bit), funciona para mí.

13voto

PeterX Puntos 583

Una alternativa que me funciona es simplemente convertirlo a CSV.

2 votos

A grandes problemas, grandes soluciones, gracias @PeterX

1 votos

¡Funcionó de maravilla! Solo necesitaba seleccionar el archivo plano en lugar de MS Excel 2016 cuando estaba subiendo el CSV.

0 votos

¡Genial! Cuando la forma 'mejor' no funciona, usa la forma 'más fácil'... :)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X