SQL no Excel - Usar Excel como Banco de Dados

MR
Marcos Rieper

Especialista em Excel

01 de maio de 2023 Atualizado 08 de julho de 2026 3 min de leitura
SQL no Excel - Usar Excel como Banco de Dados 2

Neste artigo você aprenderá como consultar SQL no Excel e usar como banco de dados.

Consultar Excel

No nosso exemplo temos uma tabela de compras aonde temos os campos:

  1. ID
  2. Fornecedor
  3. Data
  4. Valor
SQL no Excel - Usar Excel como Banco de Dados 1

Assim podemos realizar a consulta dos dados via SQL dentro do Excel usando VBA.

Consulta SQL VBA

No nosso exemplo colocamos uma célula mesclada aonde colocaremos o código SQL para realizar a consulta de dados.

SQL no Excel - Usar Excel como Banco de Dados 2

No botão executar criado à partir de uma imagem clique com botão direito em atribuir macro e marque a opção lsConsultaSQLExcel.

SQL no Excel - Usar Excel como Banco de Dados 3

No código VBA nós temos um código que serve para consultar planilhas Excel usando SQL.

Para isso realizamos uma consulta usando um conector ADODB.Connection para conectar com o arquivo Excel e para retornar os dados usamos o Recordset.

Para realizar a conexão usamos este código de connectionstring:

strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\caminho\para\arquivo.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';"

Nele você muda o caminho do arquivo para o caminho completo do arquivo ou se preferir para consultar na própria pasta de trabalho use este outro código de conexão:

strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";Extended Properties='Excel 12.0 Xml;HDR=YES';"

Na consulta usamos o código abaixo aonde são realizadas consultas na tabela definida.

strSQL = Replace(SQL.Range("tSql").Value, "TABELA", "[Compras$" & Replace(Compras.ListObjects("tCompras").Range.Address, "$", "") & "]") & ";"

Perceba que nela usamos o nome TABELA, e na sua consulta SQL você deve usar ela no lugar da tabela se que será consultada, pois ela será substituída pelo caminho completo do intervalo da tabela tCompras.

Então altere o código mudando o nome da planilha e também da tabela conforme a planilha aonde está a tabela e também mude o nome da tabela para consultar a informação.

Veja ume xemplo de código SQL: SELECT * FROM [Compras$B5:E3005] WHERE FORNECEDOR = 'ZALTEC';

Veja que temos o nome da planilha e também o intervalo sempre é necessário passar desta forma o caminho: [Compras$B5:E3005] .

O código VBA para realizar a consulta é o abaixo:

Sub lsConsultaSQLExcel()
    On Error GoTo TratarErro

    'Definir as variáveis
    Dim conn    As ADODB.Connection
    Dim rs      As ADODB.Recordset
    Dim strCon  As String
    Dim strSQL  As String
    Dim rng     As Range
    Dim i       As Integer
    
    'Limpar resultados
    SQL.Range("b9:z1048576").ClearContents
    
    'Consultar dados em outro arquivo
    'strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\caminho\para\arquivo.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';"
    
    'Consultar dados no arquivo atual
    strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";Extended Properties='Excel 12.0 Xml;HDR=YES';"
    
    'Definir a consulta SQL
    strSQL = Replace(SQL.Range("tSql").Value, "TABELA", "[Compras$" & Replace(Compras.ListObjects("tCompras").Range.Address, "$", "") & "]") & ";"
    
    'Definir o intervalo de células onde os resultados serão exibidos
    Set rng = ThisWorkbook.Worksheets("SQL").Range("b10")
    
    'Abrir a conexão com o arquivo Excel
    Set conn = New ADODB.Connection
    conn.Open strCon
    
    'Executar a consulta SQL
    Set rs = New ADODB.Recordset
    rs.Open strSQL, conn
    
    'Colar os dados da consulta
    rng.CopyFromRecordset rs
    
    'Consultar cabeçalhos
    For i = 0 To rs.Fields.Count - 1
        SQL.Cells(9, 2 + i).Value = rs.Fields(i).Name
    Next i
       
Sair:
    'Fechar a conexão e liberar os recursos
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    Exit Sub
TratarErro:
    GoTo Sair
End Sub

Download Consultar Excel com SQL Excel como Banco de Dados

Realize o download da planilha de cálculo de idade no Excel neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Download — baixe aqui: SQL no Excel - Usar Excel como Banco de Dados

Preencha seus dados para receber o link de download no seu e-mail.

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

Perguntas frequentes

O material é realmente gratuito?

Sim. O acesso é gratuito e não exige cadastro.

Preciso ter o Excel instalado?

Recomendamos o Excel 2013 ou superior para todos os recursos.

Como faço para receber atualizações?

As atualizações são automáticas dentro da própria planilha.

Funciona no Excel do Mac?

Sim, funciona no Excel para Windows e para Mac.

Funciona no celular?

É possível visualizar no app do Excel; a edição completa é no computador.

Planilhas relacionadas

Planilha de Fluxo de Caixa

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado