Neste artigo aprenda como conectar banco de dados no VBA Excel consultar SQL no VBA.
No vídeo abaixo há o passo-a-passo e no artigo mais detalhes e dados da conexão e também o arquivo de download do exemplo.
Como Conectar Banco de Dados no VBA Excel
No exemplo que preparamos neste artigo você pode digitar a consulta SQL em uma célula e clicar em consultar.
Os dados são consultados e retornados automaticamente nas células logo abaixo.
Pode usar também scripts para inserir dados, alterar ou excluir dados, a forma de funcionamento é semelhante.
Banco de Dados Access de Teste
O nosso banco de dados de teste é um arquivo Access.
Ele é um banco de dados simplificado com duas tabelas, Acompanhamentos e Clientes.
Tabela de acompanhamentos de propostas de clientes.
Tabela com os dados cadastrais dos clientes.
Elas são conectadas pelo campo de ID do cliente, sendo um relacionamento 1 para muitos.
Como Conectar Banco de Dados no Excel VBA
No Excel acessamos o VBE, e clicamos em inserir, módulo.
A primeira questão é inserir a referência necessária.
No VBE clique em Ferramentas->Referências e marque a opção Microsoft ActiveX Data Objects 6.1 Library.
Esta biblioteca é necessárias para o banco de dados.
Nele colocamos o seguinte código fonte para conectar com o banco:
Dim gConexao As ADODB.Connection
Private Sub lsConectar()
Dim strConexao As String
Set gConexao = New ADODB.Connection
strConexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data " & _
"Source=C:\BD\Base.accdb;Persist Security Info=False"
gConexao.Open strConexao
End Sub
No script acima você coloca o seu caminho do arquivo e pode mudar também na string de conexão o banco que desejar.
No exemplo é um banco Access, mas pode usar qualquer outro banco de dados.
O código para desconectar do banco de dados no VBA é:
Private Sub lsDesconectar()
If Not gConexao Is Nothing Then
gConexao.Close
Set gConexao = Nothing
End If
End Sub
O código de desconexão é importante também para que o banco não fique “preso” à conexão.
E por fim temos a consulta realizada que cria a consulta e retorna não só os dados, como também os cabeçalhos dos campos no VBA Excel.
Public Sub lsConsultar()
On Error GoTo sair
Dim lrs As ADODB.Recordset
Dim i As Integer
Set lrs = New ADODB.Recordset
lsConectar
lrs.Open Consultar.Range("lsql").Value, gConexao
Consultar.Range("C10:Z1000").ClearContents
'Cabeçalhos
For i = 0 To lrs.Fields.Count - 1
Consultar.Cells(10, i + 3).Value = lrs.Fields(i).Name
Next i
Consultar.Range("C11").CopyFromRecordset lrs
Columns("C:Z").EntireColumn.AutoFit
sair:
If Not lrs Is Nothing Then
lrs.Close
Set lrs = Nothing
End If
lsDesconectar
End Sub
Como resultado temos então a consulta do banco de dados que criamos, podendo também realizar scripts para inserir, alterar ou excluir dados, além de consultas.
Download Planilha Exemplo Importar PDF no Excel com Power Query
Clique no botão abaixo para realizar o download do arquivo de exemplo: