RELACIONAMENTO DE ARQUIVOS EM XLSX

DOIDO.NNF 27/05/2010 13:42:46
#342965
Pessoal
Preciso desenvolver um sistema de relacionamento entres dois arquivos xlsx com campos iguais
tipo campo telefone de 1.xlsx com campo telefone 2.xlsx
alguem sabe como faço essa conexao?
Grato
HENRIQUE290 27/05/2010 16:49:17
#342984
Não sei se isto é possivel em excel mas vou ver , segue um exemplo para juntar dados de uma mesma planilha.

Sub teste_func()
Dim cn As New Connection
Dim rs As New Recordset
Dim sql As String
Dim i

i = 2
cn = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;[Ô] & _
[Ô]Data Source=D:\cadastro2010\cadastro2010.xlsm;Extended Properties=Excel 12.0; [Ô]
Sheets([Ô]plan3[Ô]).Select
sql = [Ô]select a.codigo, b.nome from [plan1$] a, [plan2$] b where b.codigo=a.codigo [Ô]
cn.Open
Set rs = cn.Execute(sql)

If Not rs.EOF Then
Do While Not rs.EOF

ActiveSheet.Range([Ô]A[Ô] & i).Value = rs(0)
ActiveSheet.Range([Ô]B[Ô] & i).Value = rs(1)

rs.MoveNext
i = i + 1
Loop
End If
cn.Close

End Sub
DOIDO.NNF 27/05/2010 17:31:14
#342989
Opa
fiz a conexao e me parece a deu certo
mas ta me dando erro na hora d criar
Sheets([Ô]plan3[Ô]).Select
este erro
Method [ô]Sheets[ô] of object [ô]_Global[ô] failed

mas ja foi d ótima ajuda
HENRIQUE290 27/05/2010 18:29:34
#342999
Method [ô]Sheets[ô] of object [ô]_Global[ô] failed

este erro é que a planilha não esta ativa ou selecionada
DOIDO.NNF 28/05/2010 09:35:20
#343040
Olha como tá

Dim cn As New Connection

Dim rs As New Recordset
Dim sql As String
Dim i

i = 2
cn = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;[Ô] & _
[Ô]Data Source=C:\P\RELACIONAR XLS\cli.xlsx;Extended Properties=Excel 12.0; [Ô]
cn.Open
cn.Execute ([Ô]select * into [plan6] from [plan1$] , [plan3$] where [plan1$].[cpf]=[plan3$].[cpf] [Ô])

Set rs = cn.Execute(sql)

If Not rs.EOF Then
Do While Not rs.EOF


ActiveSheet.Range([Ô]A[Ô] & i).Value = rs(0)
ActiveSheet.Range([Ô]B[Ô] & i).Value = rs(1)
MsgBox rs(1)
rs.MoveNext
i = i + 1
Loop
End If
cn.Close
Exit Sub
DOIDO.NNF 28/05/2010 13:57:07
#343091
estou quase
ja consigo abrir 2 xlsx e mostrar as estrutura de ambos

agora nao consigo dar um insert no 3 xlsx
tipo aqui
cn.Execute ([Ô]select * into [plan6] from [plan1$] , [plan3$] where [plan1$].[cpf]=[plan3$].[cpf] [Ô])

preciso montar uma sql pra INTO em um 3 xlsx
e estou abrir assim
tanto no 1º quanto no 2º
Set oConn1 = New ADODB.Connection

oConn1.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;[Ô] & _
[Ô]Data Source=[Ô] & arq1 & [Ô];Extended Properties=Excel 12.0; [Ô]
Set oCmd1 = New ADODB.Command
oCmd1.ActiveConnection = oConn1


oCmd1.CommandText = [Ô]SELECT TOP 1 * from [[Ô] & txtplan1 & [Ô]$][Ô]

Set oRS1 = New ADODB.Recordset
oRS1.Open oCmd1, , adOpenKeyset, adLockOptimistic

Dim Vetor() As Variant
Dim row As Long, col As Long
Dim fd As Field

oRS1.MoveLast
ReDim Vetor(oRS1.RecordCount + 1, oRS1.Fields.Count)

col = 0
For Each fd In oRS1.Fields

ltarq1.AddItem oRS1.Fields(col).Name
col = col + 1
Next
até ai beleza


agora no 3º abri assim

Set oConn3 = New ADODB.Connection

oConn3.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;[Ô] & _
[Ô]Data Source=[Ô] & arq3 & [Ô];Extended Properties=Excel 12.0; [Ô]
Set oCmd3 = New ADODB.Command
oCmd3.ActiveConnection = oConn3


oCmd3.CommandText = [Ô]SELECT oRS1.[PLAN1$].*,oRS2.[PLAN2$].* INTO AAA from [[Ô] & txtplan3 & [Ô]$][Ô]

Set oRS3 = New ADODB.Recordset
oRS3.Open oCmd3, , adOpenKeyset, adLockOptimistic

ve c consegue me ajudar
nao estou sabendo fazer o select into usando as outras 2 xlsx
valeu

DOIDO.NNF 30/05/2010 21:36:06
#343279
UP
Tópico encerrado , respostas não são mais permitidas