Integração entre du...
 
Notifications
Clear all

Integração entre duas planilhas Excel utilizando DAO

3 Posts
2 Usuários
0 Reactions
987 Visualizações
(@hundin)
Posts: 2
New Member
Topic starter
 

Boa tarde,

Eu estou fazendo a integração entre duas planilhas EXCEL utilizando DAO.
A integração não tem problema algum, o problema é a leitura dos dados.
Na planilha onde busca a informação, a primeira linha não é utilizada como o nome do campo - o nome do campo está na linha 2 -, por conta disso o nome do campo sempre aparece sem o título. O problema é que quando há números neste campo, ele classifica esse campo como "Estouro do campo numérico" pois ele não consegue identificar se é texto ou valores, pois o nome do campo entra como texto enquanto os demais como número.
A solução que eu vejo é fazer o DAO recordset ler a segunda linha como o nome dos campos ou então classificar os campos como números.
Porém não estou conseguindo encontrar um código que me ajude nessas duas situações.

Alguém tem alguma sugestão como posso fazer?
Obrigado!

 
Postado : 27/08/2015 12:35 pm
benzadeus
(@benzadeus)
Posts: 78
Trusted Member
 

Tanto o DAO como o ADO estão obsoletos. No entanto, ao trabalhar com o Excel, prefira usar o ADO ao invés do DAO.
Poderia postar o código que está utilizando?

Felipe Costa Gualberto
Microsoft Excel MVP
http://www.ambienteoffice.com.br

 
Postado : 27/08/2015 12:46 pm
(@hundin)
Posts: 2
New Member
Topic starter
 

Olá Felipe, infelizmente só sei fazer este tipo de operação com o DAO. Sei o quanto é obsoleto, mas é apenas uma integração simples.
Acredito que o ADO não seja muito diferente a programação, mas confesso que não sei como fazer.

--------------------
Private Sub CommandButton1_Click()
'após clicar no botão, ele roda o código
Dim db As DAO.Database
Dim rst As DAO.Recordset
'algumas variáveis conforme o filtro que o usuário escolher
ano = Plan1.ComboBox1.Value
mes = Plan1.ListBox1.Value
aba = Plan1.ListBox2.Value
referencia = "1/" & CByte(Mid(mes, 1, 2)) & "/" & ano
'outra variável com base nas informações da planilha, uma pequena chave
For a = 1 To 10
If aba = Plan2.Cells(a, 2) Then
setor = Plan2.Cells(a, 3)
Exit For
Else
setor = Null
End If
Next

arquivo = "FECHAMENTO " & Mid(mes, 4, 20) & " " & setor & " " & ano

Set db = OpenDatabase(ThisWorkbook.Path & "" & ano & "" & mes & "" & arquivo & ".xls", False, True, "Excel 8.0;")
Set rst = db.OpenRecordset("SELECT * FROM [" & aba & "$] ")
'Recordset com base na informação que o usuário escolher

Plan1.Cells(1, 1) = rst!F2
Plan1.Cells(1, 2) = rst!F3
Plan1.Cells(1, 3) = rst!F4
-------------------

Os campos F2 e F3 consegue puxar a informação, porém o campo F4 é o problema, ele informa o "estouro do campo numérico" justamente por não identificar o tipo de informação a ser utilizada, se é texto ou número.

Obrigado.

 
Postado : 28/08/2015 5:53 am