SQL no Excel - Usar Excel como Banco de Dados
Especialista em Excel

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:
- ID
- Fornecedor
- Data
- Valor

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.

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

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.
Principais recursos
Confira o que este material oferece para você.
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
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




