159 votes

Le fournisseur 'Microsoft.ACE.OLEDB.16.0' n'est pas enregistré sur la machine locale. (System.Data)

J'obtiens cette erreur lorsque j'essaie de me connecter à n'importe quel Excel par le biais de l'importation de données de MSSQL Server, c'est-à-dire du package SSIS The Microsoft.ACE.OLEDB.16.0 n'est pas enregistré sur la machine locale. ( System.Data )

Ce n'est pas la même version, je pense qu'un autre Parcheando est nécessaire.

14 votes

Je ne vois pas pourquoi cette question a été votée pour être fermée en tant que duplicata... Le message d'erreur indique clairement qu'il s'agit d'une version plus récente et qu'il faut un ensemble de composants plus récent ! Cette question et les réponses m'ont aidé pour mon Microsoft.ACE.OLEDB.16.0 questions. La question pointée du doigt par la demande de clôture est la suivante Microsoft.ACE.OLEDB.12.0 et les réponses concernent CETTE version. Cette question devrait être rouverte.

0 votes

@ArvoBowen Pas de problème. Je l'ai rouvert. Mais les deux questions ont la même solution.

13 votes

Comment cela ? Il s'agit de versions différentes nécessitant des téléchargements différents. Ils sont liés mais ont des solutions différentes. Si je suivais la réponse de l'autre question, cela ne résoudrait pas mon problème.

174voto

Paul Dove Points 299

Pour tous ceux qui sont toujours bloqués sur ce problème après avoir essayé ce qui précède. Si vous cliquez avec le bouton droit de la souris sur la base de données et que vous allez dans Tâches->importation, alors voici le problème. Allez dans votre menu de démarrage et sous sql server, trouvez l'assistant d'importation et d'exportation x64 bit et essayez-le. Cela a marché comme un charme pour moi, mais il m'a fallu beaucoup trop de temps pour trouver Microsoft !

3 votes

Pour qu'Excel soit disponible à partir de la version 64 bits de DTSWizard, installez le redistribuable 2016 Access Database Engine : microsoft.com/fr/download/details.aspx?id=54920 Source : sqlblog.com/blogs/john_paul_cook/archive/2017/06/11/ Je l'ai testé moi-même et cela fonctionne. Notez que SSDT est une application 32 bits donc si vous lancez l'assistant d'importation/exportation à partir de celle-ci, c'est la version 32 bits de l'assistant qui se lance. C'est toujours le cas, même à partir de Visual Studio 2017 et SQL Server 2017.

2 votes

Merci pour votre réponse, très utile. J'ai Office (2016) 64 bits et SQL 64 bits ET le connecteur correspondant Microsoft.ACE.OLEDB.16.0. Cependant, je recevais le message "'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local machine." Cela n'avait tout simplement aucun sens. Après avoir ouvert directement l'assistant d'importation 64 bits, je n'ai eu aucun problème pour importer des fichiers Excel. J'ai l'impression que par défaut le chemin tasks->import va vers l'assistant 32-bit et que cela perturbe les éléments 64-bit, je ne suis pas sûr. Merci Paul.

0 votes

@otravers, j'ai téléchargé et installé le redistribuable 2016 d'Access Database Engine, mais ça n'a rien donné. Puis j'ai compris que c'était pour Access, pas pour Excel.

133voto

FA911 Points 889

Note : J'utilise SQL 2016 Developer 64bit, Office 2016 64bit.

J'ai eu le même problème et l'ai résolu en téléchargeant ce qui suit :

  1. Téléchargez et installez ceci : https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. Quel que soit le fichier auquel vous essayez d'accéder/importer, assurez-vous de le sélectionner comme un fichier Office 2010 (même s'il s'agit d'un fichier Office 2016).

Ça marche.

Source :

4 votes

Cela a parfaitement fonctionné pour moi, merci ! J'ai chargé mon fichier Office 2016 comme Office 2007-2010 et cela a bien fonctionné. C'est tellement mieux que d'essayer CSV/TSV.

3 votes

Merci d'avoir mentionné que je ne devrait pas choisir Office 2016. Je ne suis pas sûr que j'aurais essayé l'un des autres.

0 votes

Le premier lien est cassé

29voto

Russ Points 41

Comme solution de rechange rapide, j'ai simplement enregistré le classeur en tant que fichier Excel 97-2003 .xls. J'ai pu importer dans ce format sans erreur.

0 votes

Ça n'a pas marché pour moi. J'ai eu un, "Unexpected error from external database driver (1). (Moteur de base de données Microsoft JET)"

2 votes

Il m'a fallu plusieurs essais, mais j'ai fini par trouver la solution la plus rapide à mon problème.

1 votes

Cela ne fonctionne que si vous avez moins de 64K lignes à importer.

13voto

PeterX Points 583

Une alternative qui fonctionne pour moi est de simplement convertir en CSV.

2 votes

Aux grands problèmes, les grandes solutions, merci @PeterX

1 votes

Ça a marché comme sur des roulettes ! J'ai juste eu besoin de sélectionner flat file au lieu de ms excel 2016 lorsque j'ai téléchargé le csv.

0 votes

Génial ! Quand le "meilleur" moyen ne fonctionne pas, utilisez le "plus facile"... :)

4voto

dinesh vishe Points 1309

ACE.oledb.16.0 ne fonctionne pas sur un système d'exploitation 64 bits.

télécharger le patch à partir de https://www.microsoft.com/en-us/download/details.aspx?id=13255

9 votes

Cela n'a pas marché, j'ai essayé, mais j'obtiens toujours la même erreur.

1 votes

Il fonctionne pour l'importation de Microsoft Excel 2007-2010 sur l'assistant d'importation et d'exportation de SQL Server

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X