Integrando SQL no Excel: Como Conectar e Consultar Dados Diretamente nas Planilhas | Excelmax Soluções e Controles

sábado, janeiro 11, 2025

Integrando SQL no Excel: Como Conectar e Consultar Dados Diretamente nas Planilhas

Utilizando SQL no Excel

Introdução

No Excel, é possível utilizar comandos SQL diretamente em suas planilhas para realizar consultas em dados, simplificando análises complexas e otimizar processos de importação e manipulação de informações. Utilizando a integração com o ADO (ActiveX Data Objects), podemos conectar o Excel a fontes de dados, como outras planilhas ou bancos de dados externos, e executar consultas SQL de maneira eficiente. Neste artigo, vamos demonstrar como conectar o Excel a si mesmo utilizando SQL e como realizar consultas para extrair, filtrar e organizar dados com facilidade, sem precisar sair do ambiente da planilha.

A seguir, apresentamos duas macros: a primeira estabelece a conexão entre o Excel e o SQL, e a segunda executa a consulta SQL, retornando os resultados diretamente em uma nova planilha. Essa abordagem proporciona uma maneira poderosa de manipular dados, trazendo a flexibilidade do SQL diretamente para dentro das planilhas Excel.

Antes de utilizar a conexão e a consulta SQL no Excel, é fundamental que você prepare corretamente as planilhas de dados e de saída. Para garantir o funcionamento correto do processo, siga estas diretrizes:

  1. Planilha de Dados:
    • A consulta SQL será executada em uma planilha chamada "Dados".
    • Essa planilha deve conter, no mínimo, duas colunas: UF (Unidade Federativa) e Faturamento, que serão utilizadas na consulta.
  2. Planilha de Resultado:
    • Os dados extraídos pela consulta SQL serão listados em uma planilha chamada "Lista".
    • Certifique-se de que a planilha "Lista" exista antes de executar a macro. Caso contrário, a macro pode gerar erros ao tentar gravar os dados nela.

Seguindo essas orientações, você estará pronto para utilizar a consulta SQL no Excel de forma eficiente, integrando dados e facilitando a análise diretamente nas suas planilhas.


A macro a seguir estabelece a conexão entre o Excel e o SQL. 

Sub ConectarExcel()

    Dim Caminho As String

    Dim Arquivo As String

    Dim strCaminhoCompleto As String

    

    Caminho = Caminho = ThisWorkbook.Path & "\"

    Arquivo = ActiveWorkbook.Name

    strCaminhoCompleto = Caminho & Arquivo

    

    ' Criação da string de conexão

    str_Conexao = "Provider=Microsoft.ACE.OLEDB.12.0;" & _

                  "Data Source=" & strCaminhoCompleto & ";" & _

                  "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"

    

    ' Criando e abrindo a conexão ADO

    Set ado_Conexao = CreateObject("ADODB.Connection")

    ado_Conexao.Open str_Conexao

End Sub


A macro a seguir, executa a consulta SQL e  retorna os dados em planilha.

Option Explicit

Global str_Conexao As String

Global ado_Conexao As Object


Sub Listar_Dados()

    Dim rs_Consulta As Object

    Dim str_Consulta As String

    Dim i As Integer


    Call ConectarExcel

    

    Set rs_Consulta = CreateObject("ADODB.Recordset")

    

    ' Consulta SQL (ajustada para o seu caso)

    'str_Consulta = "Select UF, SUM(Faturamento) as fat From [Dados$] Group By UF Order By 2 Desc; "

    str_Consulta = "SELECT * FROM [DADOS$]; "

    rs_Consulta.Open str_Consulta, ado_Conexao


    ' Limpar dados antigos na Lista

    Lista.Range("A1:M50000").ClearContents


    ' Copiar os cabeçalhos das colunas

    For i = 1 To rs_Consulta.Fields.Count

        Lista.Cells(1, i).Value = rs_Consulta.Fields(i - 1).Name

    Next i


    ' Copiar os dados para a planilha

    Lista.Range("A2").CopyFromRecordset rs_Consulta

    

    ' Fechar a consulta e liberar objetos

    rs_Consulta.Close

    Set rs_Consulta = Nothing

End Sub

Nenhum comentário:

Postar um comentário

Seja um participante desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari