Vídeo recomendado
https://youtu.be/diWPPPhW-9E

CONEXÃO ADO - OLEDB PARA EXCEL 2007

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
JJACKLS
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Seg Nov 22, 2010 12:27 pm

CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por JJACKLS »

Olá!

Estou contruindo uma modelo de cadastro de cliente com base no modelo criado pelo Tomás, mas não estou conseguindo carregar as informações no formulário de pesquisa.

Estou montado o meu modelo no Excel 2007, de forma que, construí os forms num arquivo .XLSM (habilitado para Macros) e planilha de dados num arquivo .XLSX.

De forma que, por se tratar de uma versão diferente da que o modelo orginal foi construído, a conexão ADODB não esteja funcionando para mim.

Peço a ajuda de você em me indicar qaul o código indicado para inciar a conexão no caso do Excel 2007, pois acredito que o código abaixo sirva somente para o Excel 2003:

Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = "Data Source=" & caminhoArquivoDados & ";Extended Properties=Excel 8.0;"
.Open
End With

sql = "SELECT * FROM [cadClientes$]"

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenForwardOnly, _
adLockBatchOptimistic
End With

Set rst.ActiveConnection = Nothing

conn.Close


Além das alterações no código, quais referências na biblioteca eu devo habilitar para utilizar o Excel 2007?

Desde já, agradeço a ajuda. Saudações,

Jackson Silva


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por Mauro Coutinho »

Jackson, não sou o mais indicado para esta ajuda por não usar o excel 2007, mas em um outro forum que participo, tinha uma msg parecida ref a conexão no 2007, que foi respondida pelo José Lobo, e seria o seguinte :

Com o Office 2007 houve modificações na forma de acessar dados de e para o excel ou access.
Nos endereços abaixo encontramos algumas referências importantes:

http://www.microsoft.com/downloads/en/d ... laylang=en
http://www.connectionstrings.com/excel-2007

No site da MS está disponível um novo provedor
ACE driver
para ser utilizado no lugar do
JET

A string de conexão seria:
Set oConn = CreateObject("ADODB.Connection")
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\MyExcel2007File.xlsx;
Extended Properties=""Excel 12.0 Xml;
HDR=YES"";"
oConn.Open

Outro ponto que foi discutido refere-se à importação do cabeçalho do arquivo excel.

Arquivo excel COM linha de cabeçalho:
Data Source =c:\myExcelFile.xlsx;HDR=yes;Format=xlsx;

Arquivo excel SEM linha de cabeçalho:
Data Source =c:\myExcelFile.xlsx;HDR=no;Format=xlsx;

Como podemos observar, essa configuração é feita na string de conexão.

Quanto aos tipos de arquivos excel 2007, a linha abaixo define:

Data Source=c:\myFolder\myExcel2007file.xlsx
Data Source=c:\myFolder\myBinaryExcel2007file.xlsb
Data Source=c:\myFolder\myExcel2007file.xlsm

O arquivo excel pode ser tratado como texto, com o flag:
IMEX=1

Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;
HDR=YES;
IMEX=1";

Melhores esclarecimentos nos endereços mencionados.

FOnte: http://br.dir.groups.yahoo.com/group/Ex ... sage/73094

Veja se ajuda.

[]s


JJACKLS
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Seg Nov 22, 2010 12:27 pm

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007 [Resolvido]

Mensagem por JJACKLS »

Mauro,

Após uma vasta pesquisa na internet, consegui resolver o meu problema. Foi necessário baixar o driver para canexão OLE DB no site que você indicou além da alteração no código, conforme abaixo:

Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String

Set conn = New ADODB.Connection

conn.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & caminhoArquivoDados & ";" & _
"Extended Properties=Excel 12.0"
conn.Open


sql = "SELECT * FROM [CadClientes$]"

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenForwardOnly, _
adLockBatchOptimistic
End With

Set rst.ActiveConnection = Nothing

' Fecha a conexão.
conn.Close


Agradeço a atenção e colaboração e espero que com essas informações eu possa ajudar outros programadores que encontrarem a mesma dificuldade em programar com EXCEL 2007.

Saudações,

Jack


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por Mauro Coutinho »

Jack,
Agradeço a atenção e colaboração e espero que com essas informações eu possa ajudar outros programadores que encontrarem a mesma dificuldade em programar com EXCEL 2007.
Eu que tenho a agradecer pelo Retorno, e a sua colaboração em compartilhar com o Forum a solução elaborada por você enriquecendo ainda mais o nosso Forum.

abraços


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


macburn
Manda bem
Manda bem
Mensagens: 135
Registrado em: Qua Jul 07, 2010 7:31 pm

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por macburn »

Boa tarde pessoal,

Gostaria de parabenizar os nobre colegas pela grande contribuição que os mesmos sempre nos fazem.
Funcionou como uma luva pessoal essa última dica.
Meus sinceros agradecimentos.

Abraços


Moacir Gouveia
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Seg Abr 02, 2012 9:59 am

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por Moacir Gouveia »

Olá bom dia, tópico meio antigo, mas se for colocar esse back end com os dados e tipo 10 planilhas cadastrando e consultando teria problemas? Resumindo, mais usuários de uma vez...

Obrigado.

Moacir Gouveia


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: CONEXÃO ADO - OLEDB PARA EXCEL 2007

Mensagem por webmaster »

Moacir,

Até hoje não ouvi falar de um limite conhecido, mas pode ser OLEDB, assumir o mesmo limite do Access, que é de 255. Mas faria um teste para ter certeza. No fim das contas, a intenção de fazer o banco separado é bem essa.

Abraços


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder