RELACIONAMENTO DE ARQUIVOS EM XLSX
                    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
                
            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
                    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
            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
                    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
            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
                    Method [ô]Sheets[ô] of object [ô]_Global[ô] failed
este erro é que a planilha não esta ativa ou selecionada
                
            este erro é que a planilha não esta ativa ou selecionada
                    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
                
            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
                    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
                
            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
                    UP 
                
             
                
                        Tópico encerrado , respostas não são mais permitidas
                    
                
