O provedor 'Microsoft.ACE.OLEDB.16.0' não está registrado na máquina local. (System.Data)


103

Recebo este erro quando tento me conectar a qualquer excel através do MSSQL Server Data Import, ou seja, pacote SSIS O Microsoft.ACE.OLEDB.16.0provedor não está registrado na máquina local. ( System.Data)

Não é a mesma versão, acho que é necessário algum outro patch


5
Não vejo por que esta questão foi votada para ser fechada como uma duplicata ... É claramente uma versão mais recente na mensagem de erro e precisa de um novo conjunto de componentes! Esta pergunta e respostas me ajudaram com meus Microsoft.ACE.OLEDB.16.0problemas. A questão apontada pela solicitação de fechamento é para Microsoft.ACE.OLEDB.12.0e as respostas abordam ESTA versão. Esta questão deve ser aberta novamente.
— Arvo Bowen

@ArvoBowen Sem problemas. Eu o reabri. Mas ambas as questões têm a mesma solução.
— Hadi

3
Como assim? São versões diferentes que requerem downloads diferentes. Eles estão relacionados, mas têm soluções diferentes. Se eu seguisse a resposta da outra pergunta, não resolveria meu problema.
— Arvo Bowen

Respostas:


116

Observação: estou executando o SQL 2016 Developer 64bit, Office 2016 64bit.

Eu tive o mesmo problema e resolvi baixando o seguinte:

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

  2. Seja qual for o arquivo que você está tentando acessar / importar, certifique-se de selecioná-lo como um arquivo do Office 2010 (mesmo que possa ser um arquivo do Office 2016).

Funciona.

Fonte


4
Funcionou perfeitamente para mim, obrigado! Carreguei meu arquivo do Office 2016 como Office 2007-2010 e funcionou bem. Muito melhor do que tentar CSV / TSV.
— tc_NYC

2
Obrigado por mencionar que eu não devo escolher o Office 2016. Não tenho certeza se teria tentado um dos outros.
— birdus de

O primeiro link está quebrado
— jcvegan

1
Acabei de atualizar o link para o URL atual do Microsoft Access Database Engine 2016 Redistributable
— e_i_pi

Em um WS 2016 64Bit eu tive que usar a versão 32Bit para fazê-lo funcionar ...
— Lambda

98

Para qualquer um que ainda esteja preso a esse problema depois de tentar o procedimento acima. Se você estiver clicando com o botão direito do mouse no banco de dados e acessando tarefas-> importar, então aqui está o problema. Vá para o menu iniciar e em sql server, encontre o assistente de importação e exportação de 64 bits e tente. Funcionou como um encanto para mim, mas demorei MUITO tempo para encontrá-lo Microsoft!


3
Para ter o Excel disponível na versão de 64 bits do DTSWizard, instale o 2016 Access Database Engine redistribuível: microsoft.com/en-us/download/details.aspx?id=54920 Fonte: sqlblog.com/blogs/john_paul_cook/archive/ 11/06/2017 /… Eu mesmo testei e funciona. Observe que o SSDT é um aplicativo de 32 bits, portanto, se você iniciar o assistente de importação / exportação a partir dele, será a versão de 32 bits do assistente que será iniciada. Esse ainda é o caso mesmo a partir do Visual Studio 2017 e do SQL Server 2017.
— otravers

1
Obrigado pela sua resposta, muito útil. Tenho o Office (2016) de 64 bits e o SQL de 64 bits E o conector correspondente Microsoft.ACE.OLEDB.16.0. No entanto, eu estava recebendo a mensagem "O provedor 'Microsoft.ACE.OLEDB.16.0' não está registrado na máquina local." Isso simplesmente não fazia sentido. Depois de abrir diretamente o assistente de Importação de 64 bits, não tive problemas para importar arquivos excel. Minha impressão é que, por padrão, o caminho tasks-> import vai para o assistente de 32 bits e isso bagunça os itens de 64 bits, não tenho certeza. Obrigado Paul.
— Café em

@otravers, baixei e instalei o 2016 Access Database Engine redistribuível, mas não ajudou. Então me dei conta, isso é para Access, não Excel.
— Rod

2
@Rod, apesar do nome, garanto que isso resolve esse problema específico com Excel e DTSWizard.
— otravers de

1
Não tenho uma versão x64 do assistente de Importação / Exportação
— PeterX

19

Como uma solução rápida, acabei de salvar a pasta de trabalho como um arquivo .xls do Excel 97-2003. Consegui importar com esse formato sem erros.


Não funcionou para mim. Recebi um erro "Erro inesperado do driver de banco de dados externo (1). (Microsoft JET Database Engine)"
— Rod

2
Demorou algumas tentativas, mas no final descobri que esta é a solução mais rápida para o meu problema.
— ClubbieTim

1
Isso só funciona se você tiver menos de 64 mil linhas para importar.
— Cougar9000,

Cuidado para que sua planilha não tenha mais de 65.536 linhas, caso contrário, você pode perder dados com esta conversão.
— Fiach Reid

9

Uma alternativa que funciona para mim é simplesmente converter para um CSV.


2
Para grandes problemas, grandes soluções, obrigado @PeterX
— ElMatador

1
@PeterX salvou meu dia mano
— Mohammad Heydari

1
Funcionou como um encanto! Eu só precisava selecionar um arquivo simples em vez de ms excel 2016 quando estava carregando o csv.
— Kiradotee

6

Se você tem OS (64 bits) e SSMS (64 bits) e já instalou o AccessDatabaseEngine (64 bits) e ainda recebeu um erro, tente as seguintes soluções:

1: abertura direta do assistente de importação e exportação do servidor sql.

se você conseguir se conectar usando o assistente de importação e exportação de servidor sql direto, o problema é importar do SSMS, é como ativar 32 bits se você importar dados do SSMS.

Em vez de instalar o AccessDatabaseEngine (64 bits) , tente usar o AccessDatabaseEngine (32 bits) , após a instalação, o Windows irá impedi-lo de continuar a instalação se você já tiver outro aplicativo instalado, em caso afirmativo, siga os seguintes passos. Isso é da MICROSOFT . A instalação silenciosa.

Se o Office 365 já estiver instalado, a detecção lado a lado impedirá que a instalação prossiga. Em vez disso, execute uma instalação / quiet desses componentes a partir da linha de comando. Para fazer isso, baixe o AccessDatabaseEngine.exe ou AccessDatabaeEngine_x64.exe desejado para o seu PC, abra um prompt de comando administrativo e forneça o caminho de instalação e alterne Ex: C: \ Files \ AccessDatabaseEngine.exe / quiet

ou verifique o conteúdo de Informações Adicionais no link abaixo ,

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


1
Uau, isso foi frustrante. Acontece que o instalador do SSMS 18.5 é de 64 bits, mas o aplicativo em si é de 32 bits. Continuei instalando os componentes de escritório AccessDatabaseEngine de 64 bits com o mesmo erro. Olhei o gerenciador de tarefas, vi que o SSMS é de 32 bits ... Aí, usei seu método: C: \ Files \ AccessDatabaseEngine.exe / quiet porque tenho 64bit Office 2016 instalado. Isso funcionou !! Ele instalou com sucesso o mecanismo de banco de dados de 32 bits ao lado do escritório de 64 bits.
— rjkunde


1

Você tem que usar agora o novo XLSX -Driver da Access-Redist (32/64 bits). Os drivers XLS atuais estão corrompidos desde a última atualização cumulativa.


0

Siga esses passos:

  1. Vá [aqui] [1], baixe Microsoft Access Database Engine 2016 Redistributablee instale
  2. Feche o SQL Server Management Studio
  3. Vá para o Menu Iniciar -> Microsoft SQL Server 2017 -> SQL Server 2017 Importar e Exportar Dados (64 bits)
  4. Abra o aplicativo e tente importar os dados usando a opção "Excel 2016", deve funcionar bem.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.