Le fournisseur 'Microsoft.ACE.OLEDB.16.0' n'est pas enregistré sur l'ordinateur local. (Données système)


105

J'obtiens cette erreur lorsque j'essaie de me connecter à n'importe quel Excel via MSSQL Server Data Import, c'est-à-dire le package SSIS Le Microsoft.ACE.OLEDB.16.0fournisseur n'est pas enregistré sur la machine locale. ( System.Data)

Ce n'est pas la même version, je pense que d'autres correctifs sont nécessaires


6
Je ne vois pas pourquoi cette question a été votée pour être fermée en tant que duplicata ... Il s'agit clairement d'une version plus récente dans le message d'erreur et nécessite un ensemble de composants plus récent! Cette question et ces réponses m'ont aidé pour mes Microsoft.ACE.OLEDB.16.0problèmes. La question pointée par la demande de clôture est pour Microsoft.ACE.OLEDB.12.0et les réponses concernent CETTE version. Cette question devrait être rouverte.
Arvo Bowen le

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

3
Comment? Ce sont des 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.
Arvo Bowen

Réponses:


116

Remarque: j'utilise SQL 2016 Developer 64 bits, Office 2016 64 bits.

J'ai eu le même problème et je 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 / d'importer, assurez-vous de le sélectionner en tant que fichier Office 2010 (même s'il peut s'agir d'un fichier Office 2016).

Ça marche.

La source


4
A parfaitement fonctionné pour moi, merci! J'ai chargé mon fichier Office 2016 en tant que bureau 2007-2010 et cela a bien fonctionné. Tellement mieux que d'essayer CSV / TSV.
tc_NYC

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

Le premier lien est rompu
jcvegan

1
Je viens de mettre à jour le lien vers l'URL actuelle du moteur de base de données Microsoft Access 2016 redistribuable
e_i_pi

Sur un WS 2016 64Bit, j'ai dû utiliser la version 32Bit pour le faire fonctionner ...
Lambda

99

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 accédez à tâches-> importation, voici le problème. Accédez à votre menu Démarrer et sous le serveur SQL, recherchez l'assistant d'exportation d'importation x64 bits et essayez cela. Cela a fonctionné comme un charme pour moi, mais il m'a fallu beaucoup trop de temps pour le trouver Microsoft!


3
Pour que Excel soit disponible à partir de la version 64 bits de DTSWizard, installez le moteur de base de données Access 2016 redistribuable: microsoft.com/en-us/download/details.aspx?id=54920 Source: sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 /… J'ai testé cela moi-même et cela fonctionne. Notez que SSDT est une application 32 bits donc si vous lancez l'assistant d'import / export à 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.
otravers

1
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 "Le fournisseur" Microsoft.ACE.OLEDB.16.0 "n'est pas enregistré sur la machine locale." 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. Mon impression est que par défaut, le chemin des tâches -> importation va à l'assistant 32 bits et cela gâche les éléments 64 bits, pas sûr. Merci Paul.
Café du

@otravers, j'ai téléchargé et installé le moteur de base de données Access 2016 redistribuable, mais cela n'a pas aidé. Ensuite, cela m'a frappé, c'est pour Access, pas Excel.
Rod

2
@Rod, malgré le nom, je vous assure que cela résout ce problème spécifique avec Excel et DTSWizard.
otravers

1
Je n'ai pas de version x64 de l'assistant d'importation / exportation
PeterX

20

Pour contourner le problème, je viens d'enregistrer le classeur en tant que fichier Excel 97-2003 .xls. J'ai pu importer avec ce format sans erreur.


Cela n'a pas fonctionné pour moi. Vous avez un, "Erreur inattendue du pilote de base de données externe (1). (Moteur de base de données Microsoft JET)"
Rod

2
Cela a pris quelques essais, mais à la fin, j'ai trouvé que c'était la solution la plus rapide à mon problème.
ClubbieTim

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

Veillez à ce que votre feuille de calcul ne contienne pas plus de 65 536 lignes, sinon vous risquez de perdre des données lors de cette conversion.
Fiach Reid

9

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


2
Pour de grands problèmes, de grandes solutions, merci @PeterX
ElMatador

1
@PeterX a sauvé ma journée bro
Mohammad Heydari

1
A travaillé comme un charme! J'avais juste besoin de sélectionner un fichier plat au lieu de ms excel 2016 lorsque je téléchargeais le csv.
kiradotee

6

Si vous disposez d'un système d'exploitation (64 bits) et de SSMS (64 bits) et que vous installez déjà AccessDatabaseEngine (64 bits) et que vous recevez toujours une erreur, essayez les solutions suivantes:

1: ouverture directe de l'assistant d'importation et d'exportation du serveur SQL.

si vous pouvez vous connecter à l'aide de l'assistant d'importation et d'exportation de serveur SQL direct, alors l'importation à partir de SSMS est le problème, c'est comme activer 32 bits si vous importez des données à partir de SSMS.

Au lieu d'installer AccessDatabaseEngine (64 bits) , essayez d'utiliser AccessDatabaseEngine (32 bits) , lors de l'installation, Windows vous arrêtera pour continuer l'installation si vous avez déjà installé une autre application, si c'est le cas, utilisez les étapes suivantes. Cela vient du MICROSOFT . L'installation silencieuse.

Si Office 365 est déjà installé, la détection côte à côte empêchera l'installation de se poursuivre. Effectuez plutôt une installation / quiet de ces composants à partir de la ligne de commande. Pour ce faire, téléchargez le fichier AccessDatabaseEngine.exe ou AccessDatabaeEngine_x64.exe souhaité sur votre PC, ouvrez une invite de commande administrative et indiquez le chemin d'installation et le commutateur Ex: C: \ Files \ AccessDatabaseEngine.exe / quiet

ou vérifiez le contenu des informations supplémentaires à partir du lien ci-dessous ,

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


1
Wow, c'était frustrant. Il s'avère que le programme d'installation de SSMS 18.5 est 64 bits, mais l'application elle-même est 32 bits. J'ai continué à installer les composants de bureau AccessDatabaseEngine 64 bits avec la même erreur. Regardé le gestionnaire de tâches, vu que SSMS est 32 bits ... Ensuite, j'ai utilisé votre méthode: C: \ Files \ AccessDatabaseEngine.exe / quiet car j'ai 64 bits Office 2016 installé. Cela a fonctionné !! Il a installé avec succès le moteur de base de données 32 bits aux côtés du bureau 64 bits.
rjkunde


1

Vous devez maintenant utiliser le nouveau XLSX -Driver d'Access-Redist (32/64-Bit). Le pilote XLS actuel est corrompu depuis la dernière mise à jour cumulative.


0

Suivez ces étapes:

  1. Allez [ici] [1], téléchargez Microsoft Access Database Engine 2016 Redistributableet installez
  2. Fermer SQL Server Management Studio
  3. Accédez au menu Démarrer -> Microsoft SQL Server 2017 -> SQL Server 2017 Importer et exporter des données (64 bits)
  4. Ouvrez l'application et essayez d'importer des données en utilisant l'option «Excel 2016», cela devrait fonctionner correctement.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.