Código VBA para exportar dados do Excel para o Access

Código VBA para exportar dados do Excel para o Access
Índice

Exportar dados do Excel para o Access com VBA (imagens e código)

O que é isso?

Este código VBA ajuda você a fazer upload ou exportar dados do Excel para o Access em um clique.

Por que isso acontece?

Você pode exportar dados do Excel para o Access sem sequer abrir o banco de dados do Access.

Como exportar dados do Excel para o Access





Passo 1: Abra o Excel e acessar o construtor de código VBA (Alt + F11) e Abrir um novo módulo

.Exportar dados do Excel para o Access

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

Const TARGET_DB = "myDB.accdb" Substitua o 'myDB.accdb' pelo nome do seu banco de dados e certifique-se de que o Excel e o banco de dados do Access estejam no mesmo caminho.
Sub PushTableToAccess()
Dim cnn como ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim i As Long, j As Long
Dim Rw As Long

Sheets("Nome da planilha").Activate Substitua o 'Sheet Name' pelo nome de sua planilha do Excel
Rw = Range("A65536").End(xlUp).Row
Forneça o intervalo de dados de sua planilha do Excel

Definir cnn = New ADODB.Connection
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB

Com a cnn
.provedor = "Microsoft.ACE.OLEDB.12.0"
Abrir MyConn
Terminar com

Substitua o 'tblMyExcelUpload' pelo nome de sua tabela no Access

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="tblMyExcelUpload", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Opções:=adCmdTable

'Carregar todos os registros do Excel para o Access.
For i = 2 To Rw
rst.AddNew
Para j = 1 a 7
rst(Cells(1, j).Value) = Cells(i, j).Value
Próximo j
rst.Update
Próximo i

' Fechar a conexão
rst.Close
cnn.Fechar
Set rst = Nothing
Set cnn = Nothing

Finalizar sub

Etapa 3Clique no botão Executar ou em F5 (você também pode inserir um botão/forma na planilha do Excel e, em seguida, clicar com o botão direito do mouse e atribuir essa macro para ser executada sempre). O upload está concluído! Os registros do Excel foram carregados com êxito no Access. Abra a tabela do banco de dados do Access e verifique os dados.

Exportar dados do Excel para o Access

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

Adodb_Exportar dados do Excel para o AccessPin


Picture of Anson Antony
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!

Respostas de 8

  1. Olá a todos;

    Esses dois locais de caminho devem ser os mesmos para que essa ADODBConnection funcione? Esse é o ThisWorkbook.Path e o Target_DB.
    Comando de cima:
    ThisWorkbook.Path & Application.PathSeparator & TARGET_DB

    Ou, o Workbook.Path pode ser, por exemplo
    "C:\MyExcelFiles\MyWorkbook.xlsx" e a base de dados do Access TARGET_DB esteja em
    "C:\MyDataBases\MyAccessDB.accdb"?

    Meu código funciona quando a pasta de trabalho do Excel e o banco de dados do Access estão na mesma pasta, mas quando estão em pastas diferentes (estrutura de biblioteca organizada adequadamente), o código falha no ponto .Open MyConn.

    Obrigado a todos,
    Mario,

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!

Acesso UberCreate Creator Pro
de graça!!!

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

28
Share to...