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:
- 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.
- 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