Código VBA para importar dados de tabela/consulta do Access para o Excel

Código VBA para importar dados de consulta da tabela do Access para o Excel
Índice

Importar tabela do Access para o Excel com VBA (imagens e código)

O que é isso?

Esse código VBA ajuda você a baixar ou importar Acesso Dados de tabela ou consulta para o Excel em um clique.

 

Por que isso acontece?

Você pode importar dados da tabela do Access para o Excel sem sequer abrir o banco de dados do Access.

Como importar dados da tabela do Access para o Excel




Passo 1: Abra a pasta de trabalho do Excel e vá para o construtor de código VBA (Alt + F11) e abra um novo módulo.

Xmódulo

Passo 2: Copie e cole o código abaixo nele.

				
					Sub importAccessdata()

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim sQRY As String

Dim strFilePath As String

strFilePath = "C:\DatabaseFolder\myDB.accdb" 'Substitua 'DatabaseFolder' e 'myDB.accdb' pelo caminho do seu banco de dados e pelo nome do banco de dados

Definir cnn = New ADODB.Connection

Set rs = New ADODB.Recordset

cnn.Open "Provedor=Microsoft.ACE.OLEDB.12.0;" & _

"Fonte de dados=" & strFilePath & ";"

sQRY = "SELECT * FROM tblData" 'Substitua 'tblData' pelo nome da tabela do banco de dados do Access ou pelo nome da consulta da qual você deseja fazer download dos dados

rs.CursorLocation = adUseClient

rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly

Application.ScreenUpdating = False

Sheet1.Range("A1").CopyFromRecordset rs

rs.Close

Set rs = Nothing

cnn.Close

Definir cnn = Nothing

Exit Sub

End Sub
				
			

Etapa 3: Clique no botão Executar ou em F5 (você também pode inserir um botão/forma na planilha do Excel, clicar com o botão direito do mouse e atribuir essa macro para ser executada sempre).

Importar tabela do Access

Os registros do Access DB foram baixados com sucesso para o Excel. Abra a pasta de trabalho do Excel e verifique os dados.

Observação: Certifique-se de que a "Biblioteca de objetos de dados Microsoft ActiveX" esteja ativada no Ferramentas – Referências (o número usa a versão mais recente [6.1 no momento desta postagem]).

Importar tabela do AccessPin



Tenho certeza de que você trabalha com muitos dados do Excel, MS Access e VBA, então eu Fortemente Recomendo que você participe do curso abaixo, Ultimate Excel VBA Userform with Access Database! É um investimento que vale a pena em você mesmo! FAÇA ISSO AGORA!

Crie seu próprio programa no mundo real, aprenda o verdadeiro Excel VBA (macros), ultrapasse os limites do Excel com um projeto completo

Anson Antônio
Anson Antônio
Anson é autor colaborador e fundador da www.askeygeek.com. Aprender algo novo sempre foi sua paixão, ASKEYGEEK.com é o resultado de sua paixão por tecnologia e negócios. Ele tem uma década de experiência versátil em terceirização de processos de negócios, finanças e contabilidade, tecnologia da informação, excelência operacional e inteligência de negócios. Durante sua gestão, ele trabalhou para organizações como Genpact, Hewlett Packard, M*Modal e Capgemini em diversas funções e responsabilidades. Fora dos negócios e da tecnologia, ele é um cinéfilo que passa horas juntos assistindo e aprendendo Cinema e também Cineasta!

10 respostas

  1. Olá, gostaria de verificar se, se eu mantiver meu banco de dados do Access em uma unidade compartilhada e distribuir essa macro do Excel em minha organização, ela funcionará? Quero que minha macro do Excel leia alguns valores desse banco de dados do Access e, em seguida, atualize alguma variável ao abrir o Excel.

    Além disso, se o Access não funcionar, posso usar outro Excel mantido em uma unidade da organização e acessá-lo em vez do DB. Tentei usar o método de abertura de pasta de trabalho em minha macro para ler meu Excel do onedrive, que é compartilhado com todos em minha empresa, mas não funcionou.

  2. Finalmente, consegui.

    Estou usando 2 variáveis (caixa de texto1 como valor 'currency, formato R$0.000,00' e caixa de texto2 como 'date', formato mm/dd/yyyy)

    Código ↓

    '================================================ ===|
    '========================================== Kauê Vaz==|
    '================================================ ===|

    Opção explícita

    Clique em Ferramentas, Referências e selecione
    ' Biblioteca de objetos de dados ActiveX 2.0 da Microsoft
    Sub getDataFromAccess(strValue, strDate)

    Dim DBFullName As String
    Dim Connect As String, Source As String
    Dim Connection As ADODB.Connection
    Dim Conjunto de registros como ADODB.Conjunto de registros
    Dim Col As Integer
    Dim mySQLVariable As String
    Dim mySQLVariable_1 As String
    Dim strSQL As String

    mySQLVariable = strValue 'Valor da caixa de texto1 (formato de moeda R$0.000,00)
    mySQLVariable_1 = strDate 'Valor da caixa de texto2 (formato de data mm/dd/aaaa)

    'Código SQL
    strSQL = "SELECT * FROM tblDatabase WHERE "
    strSQL = strSQL & " [Valor] = '" & (mySQLVariable) & "' e "
    strSQL = strSQL & " [Date] = '" & (mySQLVariable_1) & "' "

    ' Banco de dados, selecione o acesso ao banco de dados
    DBFullName = "C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb"

    ' Abrir conexão
    Definir conexão = nova conexão ADODB.Connection
    Conectar = "Provedor=Microsoft.ACE.OLEDB.12.0;"
    Connect = Connect & "Fonte de dados=" & DBFullName & ";"
    Connection.Open ConnectionString:=Connect

    ' Criar RecordSet
    Definir conjunto de registros = Novo conjunto de registros ADODB.Recordset
    Com o conjunto de registros

    ' Pesquisar valores usando a variável de código SQL strSQL
    Fonte = strSQL
    Open Source:=Source, ActiveConnection:=Connection

    ' Importação de colunas do banco de dados.
    For Col = 0 To Recordset.Fields.Count - 1
    Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).Name
    Próximo

    ' Importando linhas do banco de dados.
    Range("A5").Offset(1, 0).CopyFromRecordset Recordset
    Terminar com

    Set Recordset = Nothing
    Conexão.Fechar
    Definir conexão =

    ActiveSheet.Columns.AutoFit

    Finalizar sub

    Saudações

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Parabéns!
Você conseguiu,
Não feche!
Digite sua chance de ganhar 100.000 créditos de personagem UberTTS
Agradecemos a sua visita!

Este pop-up não vai aparecer você decide de novo!!!

Ovo de Páscoa UberTTS 100K
7
Share to...