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

Suhail Abdul Rehman Chougule
fonte
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

FA911
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!

Paul Dove
fonte
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.

Russ
fonte
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.

PeterX
fonte
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

jpcarts23
fonte
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
5

ACE.oledb.16.0 não funciona no sistema operacional de 64 bits

baixe o patch em https://www.microsoft.com/en-us/download/details.aspx?id=13255

arnav
fonte
8
Não funcionou, tentei continuar obtendo o mesmo erro
Suhail Abdul Rehman Chougule
1
funciona para importar o Microsoft Excel 2007-2010 no Assistente de Importação e Exportação do SQL Server
Junior Mayhé
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.

bfuerchau
fonte
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.
Francesco Mantovani
fonte