excel delphi odbc ado delphi-10.1-berlin

Controlador ODBC Excel: error inesperado del controlador de base de datos externo



delphi delphi-10.1-berlin (8)

En una máquina de clientes, he desinstalado KB4041681 (Windows 7) que viene con el último parche de Microsoft. En mi máquina, he desinstalado KB4041676 (Windows 10). Después de eso, Microsoft.Jet.OLEDB.4.0 ahora está trabajando.

Espero que Microsoft solucione este error pronto.

Desde la actualización de Windows del 10 de octubre, los controladores ODBC Excel han dejado de funcionar. Recibimos el siguiente error cuando intentamos leer un archivo:

"Error inesperado del controlador de la base de datos externa (1)"

Abrimos archivos de Excel en Delphi usando una conexión ADO con la siguiente cadena de conexión:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

Puedo hacer que funcione al cambiar a Microsoft.ACE.OLEDB.12.0, pero para que funcione, todos nuestros clientes tendrían que instalar el Motor de base de datos de Microsoft Access redistribuible en todas las computadoras en las que usan nuestro software.

¿Alguien tiene otra solución o solución alternativa? Gracias por adelantado.


Este problema fue introducido por una actualización reciente de Microsoft Office. no hay soluciones alternativas en este momento.


Hay una solución. Reemplazar "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" con Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/MyExcel.xls; Extended Properties=/"Excel 12.0;HDR = YES; Después de este cambio, deberá instalar 2007 Office System Driver: Componentes de conectividad de datos del enlace en la máquina del cliente.


AQUÍ está la solución ... la encontré en otro foro y funcionó perfectamente para mí ... funcionará al 100%

Como se mencionó en forums.embarcadero.com/thread.jspa?messageID=902557&tstart=0 y forum.kanors-emr.org/showthread.php?tid=571&pid=2652#pid2652, KB4041681 instala la versión 4.0.9801.1 de msexcl40.dll .

  1. Encuentre la versión anterior (4.0.9801.0) de msexcl40.dll

  2. Coloque en otro directorio. Sugieren el directorio de la aplicación, pero dado que en el siguiente paso modificará el registro para que apunte a esta versión anterior, probablemente pueda ir a cualquier parte.

  3. Actualice la clave de registro HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node / Microsoft / Jet / 4.0 / Engines / Excel / win32 para que apunte a la ubicación desde el paso 2.


Tuve el mismo problema con 2 aplicaciones desarrolladas por mí desde hace 3 años (c # y java). Desde 10-oct-2017 no pude exportar a Excel 2003, pero 2007 funcionó, y no pude importar desde Excel 2003, pero 2007 también funcionó para la importación.

En ArcGIS Desktop 10.5.1 Por ESRI (un software muy popular para el procesamiento geográfico) No se pudo abrir, sobresale los archivos 2003 y .mdb.

Temporalmente Solución: desinstale KB4041693, KB4041687 en Windows 8.1 (tal vez para w10).

En microsoft changelog de ambas rutas, diga algo sobre "actualizaciones [...] y actualizaciones de seguridad para microsoft jet". Después de la desinstalación y reinicio, todos los softwares se vuelven normales nuevamente.

este problema fue introducido en 10-oct-2017. En los foros de Microsoft, se informó sobre este problema (kb4041693 debería "arreglarlo" pero aún no funciona). Tal vez en pocas semanas dirijan (adecuadamente) este problema.


Para mí, funcionó siguiendo estos pasos:

ps .: Tenemos un Windows Server 2008R2

1 - Descargue e instale esto: https://www.microsoft.com/en-us/download/details.aspx?id=23734 2 - Abra el archivo .dtsx y cambie su conexión de Excel. En el cuadro de diálogo de propiedades, haga clic en los tres puntos en la propiedad ConnectionString y cámbielo a Microsoft Excel 2007. Esto cambiará automáticamente su cadena de conexión a: Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {YOURPATH}; Propiedades extendidas = "Excel 12.0 XML; HDR = SÍ"; 3 - Algunos de nuestros archivos .dtsx apuntan a un archivo de configuración (generalmente tiene una extensión .dtsConfig). También cambié a estos muchachos para que señalaran al proveedor correcto (prácticamente copié y pegué la cadena de conexión que obtuve del estudio visual)

Después de esto, ejecuté SQL Job nuevamente y funcionó bien.


Si está trabajando con el paquete SSIS, por favor cambie su versión de la hoja de Excel 2003 a 2007 en el destino de Excel Source o Excel. En general, este problema se debe a la versión de Excel.


Yo tuve el mismo problema. Cambió Excel 2007 en los destinos de Excel. Funcionó. Esto es lo mismo que cambiar el proveedor = Microsoft.ACE.OLEDB.12.0.