none
O provedor Microsoft.Ace.OleDb.12.0 não está registrado na máquina local / Problemas em compilar em x64 bits. RRS feed

  • Pergunta

  • Boa noite,

    Tentarei ser breve, mas passar o máximo de informação que tenho. Já adianto que sou iniciante em programação.

    Criei um programinha aqui bem simples. Utilizei o Access como banco de dados. No meu computador o programa está funcionando perfeitamente (depois que instalo o programa). Testei em outro computador aqui em casa, e o programa também funcionou perfeitamente. Testei em um terceiro computador e recebi o erro "provedor ... não registrado ... ". Passei para outra pessoa testar, e ocorreu o mesmo erro.

    Reparei que o pacote Office dos dois computadores que o programa funcionou são x32 bits (sendo o primeiro deles o computador em que o programa foi desenvolvido, que possui Windows x64 bits).

    No terceiro computador que testei (seguindo a ordem do texto acima), notei que o pacote Office é x64 bits. Tentei instalar neste terceiro pc o Microsoft Access DataBase Engine  2016, mas mesmo assim o programa não funcionou. O Windows desse pc é x64 bits.

    No último computador que testei, o pacote Office é x32 bits (não reparei no Windows). Porém, é um computador de empresa, que possui uma sentinela, ou um programa chamado sentinela, para controlar os funcionários. Nesse último computador, o Excel só funciona quando se está conectado a rede da empresa. O Access funciona normal. No fim das contas não sei se o meu programa não está funcionando apenas nas versões Office x64 bits, ou se está funcionando aleatoriamente em versões x32 e x64 bits.

    Eu criei o instalador do programa utilizando o InstallShield do Visual Studio. Eu compilei o programa no modo release para Any CPU. A saída primária também foi utilizando Any CPU.

    Para tentar fazer funcionar no pc que possui Office x64 bits, eu tentei criar um outro pacote de instalação. Criei uma saída primária para 64 Bits, e tentei compilar no modo release em x64. Porém está dando erro. Quando tento compilar recebo o seguinte erro: "A inicialização do objeto pode ser simplificada" (isso na lista de erros do VS). Na saída, vi que aparecem várias linhas dizendo que a saída primária (Release x64) não é compátivel com a plataforma alvo do projeto x86 (ou algo assim).

    ERROR: File 'NomeProjeto' of project output 'Saída primária from NomeProjeto (Release x64)' targeting 'AMD64' is not compatible with the project's target plataform 'x86'

    Por último, eu decidi fazer um teste e rodar a aplicação no modo debug 64 bits (sendo que o Office é x32 bits), e recebi o erro "O provedor ... não está registrado na máquina local".

    Minhas dúvidas:

    Esse erro do provedor é devido as versões do Office 32 e 64 bits? Se sim, como poderia fazer para o o programa funcionar em uma versão com Office 64 bits?

    E última dúvida: Estou tentando fazer uma compilação no VS em 64 bits, e não consigo. Passou pela minha cabeça se eu teria que instalar o VS em um computador que possua uma versão do Office 64 bits para poder fazer a compilação em 64 bits. É isso mesmo?

    Li em algum lugar que quando se marca uma resposta em um tópico de ajuda, é como se o problema já estivesse resolvido. Então vou deixar para marcar as respostas como resposta só depois de um tempo, ok?

    sexta-feira, 1 de junho de 2018 22:09

Respostas

  • Leonardo Amaral Scudellari,

       Por favor, veja:

    =====================================================

    O provedor 'Microsoft.ACE.OLEDB.12.0' não está registrado na máquina local.

    https://social.technet.microsoft.com/Forums/pt-BR/b6a58146-1186-4228-a234-1fe0da2bbbe0/o-provedor-microsoftaceoledb120-no-est-registrado-na-mquina-local?forum=infrageral

    =====================================================

    Instala o AcessDatabaseEngine. Está à disposição no site da Microsoft. Lá vc encontra duas versões, para office (isso mesmo Office) 2007 e 2013. Depois de ler um monte de asneiras e perder muito tempo instalei esse arquivo e tudo foi solucionado.

    =====================================================

    Se for, dá uma olhada neste link:

    estavam com o mesmo problema e uma alternativa foi utilizar o ACE 14.0

    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.14.0','EXCEL 14.0;Database=D:\test.xls;HDR=YES;IMEX=1','SELECT * FROM [sheet1$]');

    • Marcado como Resposta Luiz Mercante domingo, 21 de abril de 2013 23:38

    =====================================================

    []'s,
    Fabio I.
    domingo, 3 de junho de 2018 13:38
  • Nas propriedades do projeto do instalador tem uma opção chamada TargetPlataform. Esta opção possui três opções: x86, x64, Itanium. Fui olhar e a opção estava marcada como x86. Talvez fosse por isso que não estivesse compilando. Marquei a opção x64, e consegui compilar o aplicativo.

    Instalei o aplicativo e funcionou sem erro. Testei apenas em um computador. Vou passar de um pc para o outro para ter certeza, mas parece que o problema está resolvido. 

    Um link para quem precisar de tutorial para utilizar o instalador do visual studio: https://www.csharpens.com/articles/create-setup-installer-for-projects-in-visual-studio-92/

    Vlw Fabio

    segunda-feira, 4 de junho de 2018 00:24

Todas as Respostas

  • Leonardo Amaral Scudellari,

       Por favor, veja:

    =====================================================

    O provedor 'Microsoft.ACE.OLEDB.12.0' não está registrado na máquina local.

    https://social.technet.microsoft.com/Forums/pt-BR/b6a58146-1186-4228-a234-1fe0da2bbbe0/o-provedor-microsoftaceoledb120-no-est-registrado-na-mquina-local?forum=infrageral

    =====================================================

    Instala o AcessDatabaseEngine. Está à disposição no site da Microsoft. Lá vc encontra duas versões, para office (isso mesmo Office) 2007 e 2013. Depois de ler um monte de asneiras e perder muito tempo instalei esse arquivo e tudo foi solucionado.

    =====================================================

    Se for, dá uma olhada neste link:

    estavam com o mesmo problema e uma alternativa foi utilizar o ACE 14.0

    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.14.0','EXCEL 14.0;Database=D:\test.xls;HDR=YES;IMEX=1','SELECT * FROM [sheet1$]');

    • Marcado como Resposta Luiz Mercante domingo, 21 de abril de 2013 23:38

    =====================================================

    []'s,
    Fabio I.
    domingo, 3 de junho de 2018 13:38
  • Pois é, eu instalei o Access Database Engine. Instalei a versão x64, porém continua o mesmo problema.

    Estou com um pc com Office x64 bits. Eu estou conseguindo rodar a aplicação normalmente no modo debug x64 e Any CPU (não consigo rodar no modo x86, creio eu, por conta do Office x64, não vejo outra explicação - quando tento rodar no modo debug em x64 com Office x86 também não roda). Mas não estou conseguindo compilar no parâmetro x64, dá erro (o erro apresentado acima). Eu consigo compilar no modo release Any CPU, com o programa rodando no modo debug (no pc com Office x64), mas quando instalo o aplicativo ocorre o mesmo erro ("O provedor ...").

    Eu já tentei usar o ACE.OLEDB.15.0 (pois vi em um forum), mas o 14.0 não. Vou tentar por desencargo de consciência, mas não sei se dará certo.

    Eu acho que o problema está no instalador (e nas versões do Office). Eu não consigo criar o instalador para x64, e o Office x64 só aceita o programa x64. No modo debug x64 eu consigo executar o programa normalmente (com o Visual Studio aberto), mas não consigo compilar no modo x64. A saída primária que criei é uma saída primária x64, mas não está dando certo.

    Depois eu marco como resposta. Vou deixar aberto pra ver se mais alguém responde.

    domingo, 3 de junho de 2018 20:15
  • Estou testando com um programinha mais besta aqui com poucas strings de conexão. Troquei todos os 12.0 por 14.0, e não consigo compilar. Se não consigo compilar no modo x64 vai dar o mesmo erro depois da instalação.

    Eu acho que está faltando alguma coisa para a compilação no parâmetro x64 funcionar. Eu li em algum lugar que no VS Express Edition eu não tenho o suporte para criar um instalador x64 bits. Estou com o VS Community 2017 (a versão gratuita). Não sei se da versão express para a community alterou alguma coisa.


    domingo, 3 de junho de 2018 20:27
  • Nas propriedades do projeto do instalador tem uma opção chamada TargetPlataform. Esta opção possui três opções: x86, x64, Itanium. Fui olhar e a opção estava marcada como x86. Talvez fosse por isso que não estivesse compilando. Marquei a opção x64, e consegui compilar o aplicativo.

    Instalei o aplicativo e funcionou sem erro. Testei apenas em um computador. Vou passar de um pc para o outro para ter certeza, mas parece que o problema está resolvido. 

    Um link para quem precisar de tutorial para utilizar o instalador do visual studio: https://www.csharpens.com/articles/create-setup-installer-for-projects-in-visual-studio-92/

    Vlw Fabio

    segunda-feira, 4 de junho de 2018 00:24
  • Oi Leonardo,

    Você conseguiu resolver o problema?

    Já testei em 3 máquinas diferentes... 2 Data Center e uma local... O erro continua... Já instalei e reinstalei Access Database Engine.exe mas não funciona...

    Preciso de importar dados de arquivos excel e não estou conseguindo avançar...

    Sds,

    Felisberto

    domingo, 31 de março de 2019 10:10
  • Bom dia Leonardo,

    Achei a resposta:

    Baixa a versão 32 bits e instala no prompt do DOS (cmd)

    Roda da seguinte forma para ele não criticar a versão de 32 bits:

    Access Database Engine.exe /quiet

    Vai resolver o problema. Estou desde ontem à noite para tentar resolver isso... Só consegui em site de Inglês. Repasso para português para quem não conseguir acessar.

    Espero ter ajudado.

    Abs,

    Felisberto João

    • Sugerido como Resposta Fabio I domingo, 31 de março de 2019 12:30
    domingo, 31 de março de 2019 10:53
  • Obrigado, Felisberto João !!!

    Instalei o Visual Studio Community 2019 e continuei um programa que usa o banco de dados do Access iniciado no 2017. Começou a dar problema com o provedor 'Microsoft.ACE.OLEDB.12.0'. Desinstalei o 2019 e voltei para o 2017. O problema persistia.

    Só resolveu quando usei a tua sugestão. Mais uma vez, obrigado!!

    Abraço!


    Éverson_Quintana

    domingo, 21 de abril de 2019 21:03
  • Muito bom, obrigado!
    domingo, 21 de abril de 2019 21:29
  • Utilizei o procedimento indicado e funcionou pra mim.

    Obrigado

    domingo, 30 de junho de 2019 19:37
  • Fiz o procedimento acima e resolveu meu problema.

    Obrigado

    sexta-feira, 16 de agosto de 2019 13:17
  • Obrigado Felisberto João! Só assim funcionou!
    sábado, 25 de julho de 2020 23:34
  • Felisberto João, você é o cara! Resolvi o problema com a tua dica!

    Goiaba

    quarta-feira, 3 de fevereiro de 2021 00:08
  • De fato, isso resolveu. Obrigado Felisberto
    quinta-feira, 28 de outubro de 2021 21:37
  • Oi, precisava de ajuda com esse problema.

    https://social.msdn.microsoft.com/Forums/pt-BR/98343b88-c0b0-493e-8e51-bc809dafba88/vba-erro-de-definio-de-aplicativo-ou-objeto-em-cdigo?forum=vbapt

    se puder avaliar eu agradeço!

    segunda-feira, 24 de janeiro de 2022 14:19