SOLUCAO PARA DLL OFFICE NAO REGISTRADA

KURTGU 24/08/2015 00:26:55
#450391
EXCEL.......
Pessoal uso algumas Planilhas do Excel dentro de um sistema e em algumas maquinas apresenta o seguinte erro da foto abaixo ou acima, gostaria de saber qual a solucao mais viavel para resolver este problema, pois procurei e achei varias coisas mais sempre precisa instalar algo, mais nao posso deixar isso na mao do usuario final, como posso resolver esse problema.
Dim pathconn As String = [Ô]Provider = Microsoft.ACE.OLEDB.12.0; Data source=[Ô] & txtcaminhoPuerperio.Text & [Ô];Extended Properties=[Ô][Ô]Excel 12.0;HDR= yes;[Ô][Ô];[Ô]

ACESS........
O por que de da este erro afinal, em outra applicacao uso o Acess, para pegar algumas informacoes e antes quado estava ultilizando outra funcao de conexao estava apresentado o erro da foto. Comecei a usar esse Jet Oledb 4.0 e parou o erro, e em todas as maquinas ficou de boa tambem, teria isso pra excel?
Mycn = New OleDbConnection([Ô]provider=microsoft.jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Banco\Dados.mdb;jet oledb:database password=123;[Ô])
KURTGU 24/08/2015 00:38:25
#450392
Eu tentei mudar a conexao que ultilizo para excel [Ô]provider=microsoft.jet.oledb.4.0;Data Source= adicionando isso e o erro muda para
KURTGU 24/08/2015 01:03:59
#450395
Solucao Besta, o tal do connector ultilizado nao funciona em X64 se voce estiver gerando o debug em ANY vai gerar este erro solucao e Gerar o Debug em X86....
KURTGU 24/08/2015 01:30:01
#450396
Se alguem tiver outra solucao agradeco...
OCELOT 24/08/2015 08:35:43
#450400
Não é uma solução besta, é assim mesmo que funciona.

Se o seu programa estiver como AnyCPU ele vai ser um programa de 64 bits quando rodando em um computador com um Windows x64, e um programa de 64 bits só pode usar DLLs de 64 bits.

Estes conectores do banco de dados não passam de DLLs que são carregadas dinamicamente pelo programa, quando o seu programa de 64 bits tenta encontrar a DLL para carregar ele vai procurar por uma DLL de 64 bits e não vai encontrar, por isso a mensagem do provider não registrado.

Então a solução na maioria dos casos é mesmo a de forçar o programa a rodar sempre como 32 bits, pois muitos providers só existem versões de 32 bits. A alternativa ai é se existir o provider de 64 bits instalar este quando o Windows for de 64 bits, e instalar o de 32 bits quando o Windows for de 32 bits.
RICARDOCENTENO 24/08/2015 08:42:58
#450404
Olá amigo.

Acredito que uma solução para seu problema access é usar o Access Database Engine aqui direto do site da microsoft .Baixe a versão X86 para não ter problema.
Um outro fator crucial, você pode usar o mesmo
  Provider  = Microsoft.Ace.Oledb.12.0;Data Source=... 
para abrir formatos ACCDB como MDB.

Espero ter ajudado.
DAMASCENO.CESAR 26/08/2015 20:19:38
#450535
talvez seja o problema de não ter o Excel do 2007 em diante instalado nas maquinas
se tiver e o arquivo for xls... use esse do site connection strings

Excel 97-2003 arquivos XLS com ACE OLEDB 12,0
Você pode usar essa seqüência de conexão para usar o driver OLEDB Office 2007 (ACE 12,0) para se conectar a mais antigos livros do Excel 97-2003.
Provedor = Microsoft.ACE.OLEDB.12.0; fonte de dados = c: \ myFolder \ myOldExcelFile.xls;
prolongado Propriedades = [Ô]Excel 8.0; HDR = SIM[Ô];
[Ô]HDR = Yes[Ô]; indica que a primeira linha contém columnnames, e não em dados. [Ô]HDR = No[Ô]; indica o oposto.
Tópico encerrado , respostas não são mais permitidas