bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Manipular dados de uma planilha Excel usando o Recordset
Manipular dados de uma planilha Excel usando o Recordset

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Podemos usar o Recordset para manipular os dados de uma planilha.  Veja esta imagem:

Usando Access - Update plainilha Excel

Vamos acrescentar à lista mais um produto.  Acompanhe os comentários do código proposto:

Faça o login aqui para ter acesso ao código.

Observe o produto inserido à lista, após a execução do código:

Usando Access - Uso do Recordset em planilha Excel

 

Desafio:

Crie um planilha Excel com a lista de produtos apresentada aqui e altere o código acima para realizar a transferência dos dados dessa planilha para uma tabela no Access.

Bom estudo!


 

 


5 comentário(s)

Fabio Matos   05/04/2023 13:22:54

Mestre, consegui colocando o rsTbl.moveNext.
Muito obrigado pela ajuda. Tu é o cara.

O que seria da minha empresa sem este site aqui... Valeu mesmo.

...
rs!DtHrEstornoVenda = rsTbl!DtHrEstornoVenda
rs!UsuarioLogadoEstornovenda = rsTbl!UsuarioLogadoEstornovenda
rs.Update
rsTbl.moveNext
Loop
rsTbl.Close
...

Avelino Sampaio   05/04/2023 12:21:32

Fabio,

acrescente o rs.moveNext

...
rs!DtHrEstornoVenda = rsTbl!DtHrEstornoVenda
rs!UsuarioLogadoEstornovenda = rsTbl!UsuarioLogadoEstornovenda
rs.Update
rs.moveNext
Loop
rsTbl.Close
...

Sucesso

Fabio Matos   05/04/2023 11:56:02

Professor, o código está copiando sempre o primeiro registro da tabela do Access em um looping infinito.
O que eu faço?
No teste, estou utilizando desta forma:

Dim strTabela As String
Dim strSQL As String
Dim bdExcel As DAO.Database
Dim rs As DAO.Recordset
Dim rsTbl As DAO.Recordset
strArquivo = CurrentProject.Path & "\PlanilhaTeste.xlsm"
Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
strSQL = "SELECT * FROM [Planilha1$]"
Set rs = bdExcel.OpenRecordset(strSQL)
Set rsTbl = CurrentDb.OpenRecordset("tbl_rot_Vendas")
Do While Not rsTbl.EOF
rs.AddNew
rs!Cod_venda = rsTbl!Cod_venda
rs!Cod_comissionista_G1 = rsTbl!Cod_comissionista_G1
rs!OptionOrcamento_venda = rsTbl!OptionOrcamento_venda
rs!Dt_Hr_venda = rsTbl!Dt_Hr_venda
rs!DtValidadeOrcamento = rsTbl!DtValidadeOrcamento
rs!Cod_cliente = rsTbl!Cod_cliente
rs!Grupo_vendas = rsTbl!Grupo_vendas
rs!AutorizadoPor = rsTbl!AutorizadoPor
rs!VendaFinalizada_vendas = rsTbl!VendaFinalizada_vendas
rs!OperadorCaixa_vendas = rsTbl!OperadorCaixa_vendas
rs!CNPJ_loja = rsTbl!CNPJ_loja
rs!Observacao = rsTbl!Observacao
rs!Cod_formaRetiradaEstoque = rsTbl!Cod_formaRetiradaEstoque
rs!ReferenciaCodVenda = rsTbl!ReferenciaCodVenda
rs!ultimaalteracao = rsTbl!ultimaalteracao
rs!USUARIOLOGADOVENDA = rsTbl!USUARIOLOGADOVENDA
rs!USUARIOLOGADOFECHAMENTO = rsTbl!USUARIOLOGADOFECHAMENTO
rs!Estornovenda = rsTbl!Estornovenda
rs!DtHrEstornoVenda = rsTbl!DtHrEstornoVenda
rs!UsuarioLogadoEstornovenda = rsTbl!UsuarioLogadoEstornovenda
rs.Update
Loop
rsTbl.Close
Set rsTbl = Nothing
rs.Close
Set rs = Nothing
bdExcel.Close
Set bdExcel = Nothing
MsgBox "A planilha foi atualizada...", vbInformation, "Aviso"

Avelino Sampaio   28/03/2023 00:31:51

Fábio,

experimente assim:

Public Sub fncATualizarPlanilha()
Dim strTabela As String
Dim strSQL As String
Dim bdExcel As DAO.Database
Dim rs As DAO.Recordset
Dim rsTbl As DAO.Recordset
strArquivo = CurrentProject.Path & "\ListaClientes.xls"
Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
strSQL = "SELECT * FROM [Planilha1$]"
Set rs = bdExcel.OpenRecordset(strSQL)
Set rsTbl = CurrentDb.OpenRecordset("NomeDaTabela")
Do While Not rsTbl.EOF
rs.AddNew
rs!id = rsTbl!id
rs!produto = rsTbl!produto
rs![Valor Produto] = rsTbl!ValorProduto
rs.Update
Loop
rsTbl.Close
Set rsTbl = Nothing
rs.Close
Set rs = Nothing
bdExcel.Close
Set bdExcel = Nothing
MsgBox "A planilha foi atualizada...", vbInformation, "Aviso"
End Sub

Sucesso!

Fabio Matos   27/03/2023 22:38:23

Grande mestre Avelino, preciso de uma ajuda absurdamente importante para o meu projeto e eu não consigo fazer de jeito nenhum. Já tentei muito.
Tem como, dentro deste código, copiar todos os registros da tabela Access para o Excel, em vez de apenas 1?
OBS:
Meu Office é o 2016 32bits e meu banco de Dados está com senha.


Envie seu comentário: