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?

This VBA code helps you to upload or export Excel data to Access in one click.

Por que isso acontece?

You can export Excel data to Access without even opening the Access DB.

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!

9 respostas

  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!

Levante-se para 60.000 Créditos de personagem UberTTS de graça!!!

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

UberTTS
28
Share to...