Corrigindo dois erros em uma tacada só: O provedor “Microsoft.Jet.OLEDB.4.0” não está registrado na máquina local e O inicializador de tipo de 'CrystalDecisions.CrystalReports.Engine.ReportDocument' acionou uma exceção.

Problema: Porque o sistema operacional é 64bits.
Solução: Modo de compatibilidade em 32bits.

Bom se todo post fosse assim tão rápido para solucionar nossos problemas. Agora vamos alongar mais as respostas e enriquecer nosso conteúdo:

1) O provedor “Microsoft.Jet.OLEDB.4.0” não está registrado na máquina local

Se por ventura você recebeu esse erro ao executar uma query em um banco de dados usando OleDb mesmo que tenha o Microsoft Office instalado corretamente é porque provavelmente a versão do driver instalado é para 32bits. Para corrigir isso, sua aplicação deve rodar em 32bits (x86). Nesse post aqui é mostrado como compilar sua aplicação desktop em x86 exclusivamente solucionando o problema. Mas para quem usa aplicações desktop terá que mudar a configuração do pool de aplicação no IIS. Para isso vá no IIS, Pools de Aplicativos e selecione o Pool usado pelas suas aplicações. Clique em Configurações Avançadas e no item Habilitar Aplicativos 32bits configure para True.


2) O inicializador de tipo de 'CrystalDecisions.CrystalReports.Engine.ReportDocument' acionou uma exceção

Caso bem semelhante ao anterior ocorre se sua máquina é 64bits e instalar o Crystal Reports 32bits (x86). O modo de compatibilidade que o Windows coloca para aplicações instaladas não funciona no caso. Para resolver isso basta instalar a versão 64bits do Crystal Reports (x64). Mas se você realizou o passo acima e está habilitado o modo de compatibilidade de 32bits no IIS então terá que usar a versão 32bits do Crystal de qualquer jeito.

7 comentários:

Anônimo disse...

Obrigado pelo post.
Me ajudou bastante, fique na paz.
abs!

Jean Barros disse...

Muito bom, estava com este problema a um tempo já e não sabia mais o que fazer...

Muito obrigado!

Anônimo disse...

Estava com esse problema também porém não consegui resolver desta forma. A solução que tomei foi de instalar uma maquina virtual rodando um sistema 32 bits, ai funcionou perfeitamente.

Marvin Mendes disse...

Thiagão, estava fazendo uma pesquisa sobre este tópico (Acesso ao Jet em arquitetura x64) e achei uma outra solução para quem utiliza Jet para acesso a planilhas excel ou access. E o melhor, nativo em x64

http://www.microsoft.com/en-us/download/details.aspx?id=13255


Abraços e sucesso!

Thiago Marçal disse...

Blz Marvin!

Max disse...

Valeu Thiago, muito obrigado! Grande ajuda!

Anônimo disse...

Thiago Marçal ! muito bom sua dica ! pessoas assim como você deixam nossa comunidade em constante crescimento ! muito obrigado.

Postar um comentário