2017-10-12 43 views
5

Depuis la mise à jour de Windows à partir du 10 octobre, les pilotes ODBC Excel ont cessé de fonctionner. Nous obtenons l'erreur suivante lorsque vous essayez de lire un fichier:Pilote ODBC Excel: erreur inattendue provenant du pilote de base de données externe

« Erreur inattendue du pilote de base de données externe (1) »

Nous ouvrons des fichiers Excel dans Delphi en utilisant une connexion ADO avec la chaîne de connexion suivante :

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

Je peux le faire fonctionner en passant à Microsoft.ACE.OLEDB.12.0, mais pour cela de travailler, tous nos clients ont dû installer le moteur de base de données Microsoft Access redistribuable sur tous les ordinateurs qu'ils utilisent notre logiciel sur.

Est-ce que quelqu'un a une autre solution ou solution de contournement? Merci d'avance.

+0

Attendez, ou pressez Microsoft (c'est un nouveau problème). Cela n'a rien à voir avec Delphi. Je suppose que c'est vous qui avez posté dans [ce fil] (https://social.msdn.microsoft.com/Forums/sharepoint/en-US/2feac7ff-3fbd-4d46-afdc-65341762f753/odbc-excel-driver-stopped -working-with-inattendu-error-from-externe-database-driver-1? forum = sqldataaccess), n'est-ce pas? – Victoria

+0

Oui, c'était moi. Je pensais que cela n'avait rien à voir avec Delphi, mais peut-être que quelqu'un a une solution spécifique à Delphi (comme les composants alternatifs ou FireDAC). – Bram

+0

Eh bien, au plus le pilote ODBC alternative. Et il n'est pas encore clair si le problème est avec le pilote ou l'application Access. Seul Microsoft sait à coup sûr. – Victoria

Répondre

-2

Ce problème a été introduit par une mise à jour récente de Microsoft Office. il n'y a pas de solutions alternatives pour le moment.

3

Sur une machine client, j'ai désinstallé KB4041681 (Windows 7) fourni avec le dernier correctif Microsoft. Sur ma machine j'ai désinstallé KB4041676 (Windows 10). Après que Microsoft.Jet.OLEDB.4.0 fonctionne maintenant.

J'espère que Microsoft va corriger ce bug bientôt.

+0

Merci. Nous conseillons également à nos clients de désinstaller le correctif. – Bram

+0

Si votre système est Windows 8.1, vous devez désinstaller KB4041693. – Sashus

+0

@donhauro J'ai désinséré KB4041681 (Windows 7) mais toujours confronté à _ "Erreur inattendue du pilote de base de données externe" _. pouvez-vous me suggérer un autre substitut? – Madhuri

1

Il existe une solution. Remplacer "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" avec Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; Après cette modification, vous devrez installer le pilote Office System 2007: composants de connectivité de données à partir de link sur l'ordinateur client.

0

Voici la solution ... je l'ai trouvé dans un autre forum et parfaitement travailler pour moi ... il sera fonctionne 100%

Comme mentionné dans ce qui suit:

https://forums.embarcadero.com/thread.jspa?messageID=902557&tstart=0

https://forum.kanors-emr.org/showthread.php?tid=571&pid=2652#pid2652

Le KB4041681 installe la version 4.0.9801.1 de msexcl40.dll.

  1. Trouver version antérieure (4.0.9801.0) de msexcl40.dll

  2. place dans un autre répertoire. Ils suggèrent le répertoire de l'application, mais puisque dans l'étape suivante vous allez modifier le registre pour pointer vers cette ancienne version, il peut probablement aller n'importe où.

  3. registre mise à jour clé HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Jet \ 4.0 \ Engines \ Excel \ win32 pour pointer vers l'emplacement de l'étape 2.

1

J'ai eu le même problème avec 2 applications développées par moi depuis 3 ans (C# et java). Depuis le 10-oct-2017, je n'ai pas pu exporter vers Excel 2003 mais 2007 a fonctionné, et n'a pas pu importer d'Excel 2003 mais 2007 a fonctionné aussi pour l'importation.

Dans ArcGIS Desktop 10.5.1 Par ESRI (un logiciel très populaire pour le traitement géographique) Impossible d'ouvrir les fichiers Excel 2003 et .mdb.

Solution temporaire: désinstallez KB4041693, KB4041687 dans Windows 8.1 (peut-être pour w10). Dans le microsoft changelog des deux chemins, on peut lire "mises à jour [...] et mises à jour de sécurité pour Microsoft Jet". Après la désinstallation et le redémarrage, tous les logiciels redeviennent normaux.

ce problème a été introduit dans 10-oct-2017. Dans les forums de Microsoft ce problème a été signalé (kb4041693 devrait "réparer" mais ne fonctionne toujours pas). Peut-être que dans quelques semaines, ils iront (correctement) ce problème.

0

Pour moi, cela a fonctionné, procédez comme suit:

ps .: Nous avons un Windows Server 2008R2

1 - Téléchargez et installez ceci: https://www.microsoft.com/en-us/download/details.aspx?id=23734 2 - Ouvrez le fichier .dtsx et modifiez votre Excel connexion. Dans la boîte de dialogue des propriétés, cliquez sur les trois points de la propriété ConnectionString et modifiez-la en Microsoft Excel 2007. Cela modifiera automatiquement votre chaîne de connexion à: Provider = Microsoft.ACE.OLEDB.12.0; Source de données = {YOURPATH}; Extended Properties = "Excel 12.0 XML; HDR = OUI"; 3 - Certains de nos fichiers .dtsx pointent vers un fichier de configuration (généralement avec une extension .dtsConfig). J'ai également changé ces gars pour pointer vers le bon fournisseur (à peu près copié et collé la chaîne de connexion que j'ai eu de Visual Studio)

Après cela, j'ai couru le travail SQL à nouveau et cela a bien fonctionné.

0

Si vous travaillez avec le package SSIS, veuillez modifier votre feuille Excel 2003 à 2007 dans Excel Source ou Excel destination.En général, ce problème est dû à la version Excel.

0

J'ai eu le même problème. Changement Excel 2007 dans les destinations Excel. Ça a marché. C'est la même chose que changer le fournisseur = Microsoft.ACE.OLEDB.12.0.

0

Désinstallez ces mises à jour (selon votre système d'exploitation) et votre code commenceront normalement en cours d'exécution

  • KB4041681 - Windows 7 SP1 et Windows Server 2008 R2 SP1
  • KB4041690 -Windows Server 2012
  • KB4041693 - windows 8.1 et windows Server 2012 R2
  • KB4041678 - Pour moi, ce fut la question

https://support.microsoft.com/en-in/help/4041678/windows-7-update-kb4041678