Obteniendo un error inesperado del controller de la database externa (1) al importar datos de excel para acceder

Tengo un 2010 Excel file con una hoja que abarca 34864 rows y 1387 columns . Intento importarlo en Access 2010 con el asistente de import, pero cuando selecciono esa hoja, Access deja de responder, y luego de varios segundos me da una

"Error inesperado del controller de la database externa (1)"

¿Esto se debe al tamaño de la hoja o hay algo en las celdas que impide que funcione? Otras hojas del mismo file importan sin problemas.

Puede experimentar este error después de instalar el parche de security KB4041681 . Vea esta input de MSDN . En mi caso, reemplazó Microsoft.Jet.OLEDB.4.0 proveedor de Microsoft.ACE.OLEDB.12.0 con Microsoft.ACE.OLEDB.12.0 .

Consulte esto para la especificación de Access 2010: http://office.microsoft.com/en-us/access-help/access-2010-specifications-HA010341462.aspx .

En su caso, podría tratarse de una cantidad de columnas, por lo que primero intente importar less de 255. Además, podría ser el tamaño de los datos en las columnas o types de datos (importar text en numérico, etc.)

Acabo de experimentar este problema y encontré una solución muy simple y fácil. Noté que mi spreadsheet tenía un nombre personalizado, así que decidí ver si eso estaba causando el problema. Lo cambié al nombre pnetworkingeterminado de "Sheet1" y, efectivamente, ¡funcionó!

Guarde su hoja de Excel en un file .CSV "delimitado por comas" y luego súbalo como file de text. Para mí, esto funciona bien.

El problema es que en .xls (x) hay todo tipo de problemas de layout presentes. Al convertirlo en .CSV, se eliminan todos los márgenes relacionados con el layout y se convierten en datos 'en bruto'.

¡todo lo mejor!

En la línea de la respuesta de RHiggins:

En mi caso, Jet OleDb.4.0 arrojó este error (oledbconnection.open ()) porque el nombre de una hoja de trabajo en un libro de trabajo (.xls) era demasiado largo.

Descargue e instale Redistribuible de Microsoft Access Database Engine 2010, y luego modifique las cadenas de connection de BD en Microsoft Excel para usar ACE como proveedor.

Cambio (ejemplo):

 Provider=Microsoft.Jet.OLEDB.4.0 

a:

 Provider=Microsoft.ACE.OLEDB.12.0. 

Microsoft está trabajando en una resolución y proporcionará una actualización en una próxima versión.

Utilizar esta

 OleDbConnection conObj = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\a.XLS;Extended Properties=Excel 8.0;") 

en lugar de esto

 OleDbConnection conObj = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\a.XLS;Extended Properties=Excel 8.0;") 

En mi caso, la spreadsheet estaba vinculada a otra spreadsheet. Estaba importando un subset de la hoja original. Creé una nueva hoja y copié la columna de datos por columna en el bloc de notas y luego en la nueva hoja que eliminaba los enlaces. Había algo en los enlaces que causaba el problema.
Por cierto: fue este set de datos, ya que he hecho esta secuencia de import desde esta única spreadsheet a esta database más de 50 veces. Reducir a la mitad los datos trabajados para la primera mitad (más grande) de los datos, pero no para la segunda.

hola, también me enfrento a este error cuando importo el file .xlsb. Después de eso, copié los contenidos en otro file xlsx y luego importé este file xlsx.

Obtuve este error al importar desde un file XLSB, guardo el file como file XLSX y luego importo, debería funcionar

Otro problema que se descubre es que si el file de Excel se guarda como una hoja de trabajo de Excel binaria, solo vuelva a savelo como un libro de Excel y cargue bien.

Tuve exactamente el mismo error. La spreadsheet se creó a partir de otro software (SAP). Como no fue creado por Office, Excel no pudo leerlo (!?!). Tengo que abrirlos en Excel, savelos, y luego cargarlos en Access y ¡funciona! En el peor de los casos, digamos que tiene docenas de files, puede abrirlos y cerrarlos por código VBA antes de importarlos.

Tuve el mismo problema, luego de recibir una actualización de security en Windows7, ocurrió este error. Tenemos demasiados files de Excel para realizar una operación de abrir / cerrar, así que decidí probar otras forms.

1- Devolver un punto de restauración cuando Access funcionaba bien: no funcionó en mi caso. El único cambio en la configuration del software es una actualización de security y parece que la actualización de security sigue causando problemas.

2- Reducir filas, columnas, etc.: no funcionó para mí; primer file que el acceso intentó alcanzar tenía 10k filas, networkinguciendo estas filas a 3 no era la solución.

3- Intentar modificar la cadena de connection: no funcionó para mí, tampoco es muy razonable; la connection ha estado funcionando durante años, de repente ¿por qué se detendrá? En algunos casos sí, pero esta vez no.

4- Desinstalar la actualización de security más reciente funcionó en mi caso. Aquí está la actualización de security desinstalada.

Captura de pantalla de la actualización de security desinstalada

Buena suerte con resolver.

Resuelto para Windows 7:

Desinstale las actualizaciones de security KB4041681 y KB4041678 (relacionadas con Excel y el proveedor de Jet / ACE)

Una solución que me ha funcionado a la hora de abordar este problema es tener el file de Excel donde se está ejecutando la import / export abierta cuando está ocurriendo la import y export.

El problema parece ser causado por el parche que impide que se produzca una transacción de datos entre files .xls CERRADOS y otras aplicaciones de bases de datos externas. Tener el file de Excel abierto soluciona este problema.

Algunos ejemplos de ejemplos de código a continuación para destacar lo que funciona y lo que no funciona con VBA:

NO FALLA

 wbTarget.SaveAs strFilename, xlExcel8 wbTarget.Close ExportSheetToDB strFilename, strSheetName, "tblTemp" 

TRABAJOS

 wbTarget.SaveAs strFilename, xlExcel8 ExportSheetToDB strFilename, strSheetName, "tblTemp" wbTarget.Close