Consulta SQL | Inne...
 
Notifications
Clear all

[Resolvido] Consulta SQL | Inner Join


JAlmeida
Posts: 31
Registered
Topic starter
(@jalmeida)
Eminent Member
Entrou: 3 anos atrás

Pessoal, boa noite.

Gostaria de uma ajuda para solução de um erro apresentado no código que escrevi, usando Sql e a cláusula Inner Join. Estou utilizando arquivos excel como Tabelas, em ambiente VBA. Ao rodar o código, traz o erro "Dados não é um nome válido ...". Estou anexando o arquivo para auxílio e ajuda.

Obrigado!

Responder
Tags do Tópico
4 Respostas
Anderson
Posts: 182
Registered
(@anderson)
Estimable Member
Entrou: 2 anos atrás

As duas planilhas devem estar no mesmo arquivo.

Responder
1 Responder
JAlmeida
Registered
(@jalmeida)
Entrou: 3 anos atrás

Eminent Member
Posts: 31

@anderson, Obrigado pelo retorno.

Não é possível fazer a conexão com a tabela de pedidos segregada da tabela dados? No meu caso, os dados que necessito coletar, através do Inner Join, não fazem parte do meu arquivo de dados. São dois arquivos distintos, um fazendo referencia ao outro apenas pelo campo ID. Nesse sentido, não consigo colocar as duas tabelas (planilhas) juntas, pois ambas tem endereços distintos.

Anexei os dois arquivos compactados.

Grato!

Responder
Raygsson
Posts: 58
Registered
(@raygsson)
Trusted Member
Entrou: 1 ano atrás

@jalmeida

 

Bastou alguns pequenos ajustes, deve ser suficiente pra resolver o seu problema.

 

Att,

Raygsson

 

Option Explicit
Public ConexaoPlan As ADODB.Connection
Public rsConsulta As ADODB.Recordset
Public Sql As String, File As String
Public n As Integer, lin As Integer

Sub StartConnection()

    Set ConexaoPlan = New ADODB.Connection
    Set rsConsulta = New ADODB.Recordset
    File = "Pedido.xlsx"
    n = Range("A1").CurrentRegion.Rows.Count

     ConexaoPlan.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & ThisWorkbook.Path & "\" & File & ";" & _
    "Extended Properties=""Excel 12.0;HDR=YES"";"
    
    lin = 2
    Do While Cells(lin, "A") <> ""
    
        Sql = "SELECT REF From [Pedido$] WHERE ID = '" & Cells(lin, "A") & "'"
        rsConsulta.Open Sql, ConexaoPlan
        
        If Not rsConsulta.EOF Then Cells(lin, "D") = rsConsulta("REF")
        
        rsConsulta.Close
        
    lin = lin + 1
    Loop
    
    ConexaoPlan.Close
    Set rsConsulta = Nothing
    Set ConexaoPlan = Nothing
    
End Sub
Responder
1 Responder
JAlmeida
Registered
(@jalmeida)
Entrou: 3 anos atrás

Eminent Member
Posts: 31

@raygsson, boa noite.

Mais uma vez, muito obrigado por sua ajuda e colaboração. Sua orientação foi fundamental para solução deste problema. 

Abcs!

Responder