Microsoft.ACE.OLEDB.12.0 n'est pas enregistré

j'ai un travail de serveur SQL qui tourne tous les mois dans le serveur. Job utilise un paquet SSIS et est censé extraire les données de la base de données et créer une feuille Excel et copier les données dans Excel 2003.

j'ai effectivement obtenu environ 140 000 lignes de la base de données en raison de la question de troncature dans Excel 2003 (Excel prend en charge 64 000 lignes). J'ai donc modifié le fichier de configuration pour prendre en charge le format Excel 2007.

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="  +  @[User::FullPath]  + ";Extended Properties="Excel 12.0;HDR=YES"

Mais quand j'essaie d'exécuter le travail, il ne parvient pas montrer message d'erreur:

"a La demande du fournisseur OLE DB Microsoft.ACE.OLEDB.12.0 n'est pas enregistré"

33
demandé sur Kiquenet 2014-06-04 08:01:13

10 réponses

Summarized: INSTALL pour la version 32 bits Microsoft Access Database Engine 2010 Redistribuable. Désinstaller version 64 bits si déjà installé. http://www.microsoft.com/en-us/download/details.aspx?id=13255

le Gestionnaire de connexion Excel essaie d'utiliser le fournisseur ACE OLE DB pour accéder au fichier Excel lorsque la version est supérieure à 2007 (xlsx). Bien que votre boîte soit 64 bits, vous utilisez des données SQL Server Tools, qui est une application 32 bits. Il n'y a pas de version 64 bits pour SSDT. Lorsque vous concevez votre paquet dans SSDT, vous utilisez un processus 32 bits, qui ne peut utiliser que des fournisseurs 32 bits. Lorsque vous essayez de choisir la table dans le fichier Excel, le gestionnaire de connexion a besoin d'accéder à la version 32 bits du fournisseur ACE OLE DB, mais ce fournisseur n'est pas enregistré sur votre machine, seule la version 64 bits est installée.

vous devriez télécharger le 32-bit version de la "Microsoft Access Database Engine 2010 Redistributable". Lorsque vous essayez de l'installer, vous risquez d'obtenir un message d'erreur. Vous devez d'abord désinstaller uniquement la version 64 bits du "moteur de base de données Microsoft Access 2010 Redistribuable", que vous avez probablement installé précédemment. La version 64-bit et la version 32-bit ne peuvent pas vivre ensemble sur le même hôte, donc vous devrez désinstaller (par le biais de "programme et fonctionnalités") et installer l'autre si vous souhaitez basculer entre eux.

une fois vous terminer la désinstallation de la version 64 bits et l'installation de la version 32 bits du fournisseur, le problème est résolu, et vous pouvez enfin choisir la table dans le fichier Excel. Le Gestionnaire de connexion Excel peut maintenant utiliser le fournisseur ACE OLE DB (version 32 bits) pour accéder au fichier Excel.

51
répondu AlejandroR 2015-04-26 03:31:37

j'ai installé le "Microsoft Access Database Engine 2010 Redistributable" comme mentionné ci-dessus et j'ai eu des problèmes de bitness de dépannage quand il semblait être un problème de version.

installation du "pilote de bureau 2007: Composants de connectivité de données" trié pour moi.

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

6
répondu Luke Puplett 2016-10-04 14:10:16

je pense que vous pouvez vous en tirer en installant les pilotes OLEDB - http://www.microsoft.com/en-us/download/details.aspx?id=13255

5
répondu TMNT2014 2014-06-04 13:19:36

Il y a un alter way. Ouvrez le fichier excel dans Microsoft office Excel, et enregistrez-le sous "Excel 97-2003 Workbook". Ensuite, utilisez le nouveau fichier excel sauvegardé dans votre connexion de fichier.

5
répondu ChinaHelloWorld 2015-07-02 15:37:14

une autre option est d'exécuter le paquet en mode 32 bits. Cliquez sur la solution => propriétés =? Débogage = > définir exécuter 64 bits à false.

4
répondu Tara 2016-03-11 20:46:25

vous avez probablement installé les pilotes 32bit que le travail est exécuté dans 64bit. Plus d'infos: http://microsoft-ssis.blogspot.com/2014/02/connecting-to-excel-xlsx-in-ssis.html

3
répondu Joost 2014-06-04 19:48:05

j'ai suivi les instructions pour utiliser le commutateur /passive ici, après avoir téléchargé le moteur de base de données 64 bits. Je dirige Office 32-bit, SSAS modèle tabulaire dans SQL Server 2012. Lorsque j'ai téléchargé et lancé le moteur de base de données 64 bits, il est venu avec un message disant que je ne pouvais pas installer cela sans d'abord désinstaller Office 2010, mais le / passive switch semble avoir résolu ceci (je peux maintenant importer des classeurs Excel et des tables D'accès dans un tabular modèle.)

3
répondu Andy Brown 2015-07-01 14:28:45

la solution la plus simple pour moi était de changer le travail D'Agent SQL pour exécuter en 32 bits. Aller à L'onglet SQL Job > propriétés du clic droit > step > edit(step) > option D'exécution > Use 32 bit runtime

capture d'écran

3
répondu wiciuo 2018-03-28 11:18:08

la solution la plus simple que j'ai trouvée était de spécifier excel version 97-2003 sur la configuration du gestionnaire de connexion.

1
répondu Jason Meyer 2015-02-23 23:56:54

j'ai eu cette même erreur après avoir été capable d'effectuer des opérations similaires. Je n'ai pas essayé de télécharger les paquets mentionnés car je ne les avais pas auparavant et les choses fonctionnaient. Il à mon travail a fait une "réparation" sur Microsoft Office 2013 (Panneau de configuration > Programmes > Ajouter/Supprimer - sélectionnez Modifier puis réparer). Il a fallu quelques minutes pour tout terminer, mais tout a été réparé.

1
répondu smk081 2016-05-24 13:11:11