MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


4 participantes

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    Mensagem  FabioPaes 24/1/2017, 19:17

    Quando a planilha do Excel não possui padrão em nomes de campos e nao sendo possível renomear suas colunas não é possível utilizar o método .TransferSpreadsheet pois este método tanto a Tabela Access quanto a do Excel precisam ter o mesmo Nome de campos.
    Veja um exemplo de planilha que necessito importar os dados:
    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel 212h9ug

    É possível perceber que a linha com cabeçalho dos campos, não tem padrão... Alguns tem até tres linha como nome de Campos... Alem de conter colunas mescladas...
    Dessa forma é impossível utilizar os Nomes das colunas...

    O método utilizado aqui:
    Realiza a abertura da Planilha Excel;
    Abre um Recordset na Planilha;
    Transfere os dados do Excel para a tabela do Access tendo como base o Numero de Colunas e não nome de campos.


    parte do Código foi adaptado do site UsandoAccess.com

    Código:
    Private Sub btImportar_Click()
    '------------------------------------------------------------------'
    '              Adaptado do site UsandoAccess.com                   '
    '                 Por FabioPaes em 24/01/2017                      '
    '------------------------------------------------------------------'
    Dim strTabela As String
    Dim strSQL As String
    Dim bdExcel As DAO.Database
    Dim rs, rs1 As DAO.Recordset
    'Passa o local e nome do arquivo para a variável
    strArquivo = CurrentProject.Path & "\Exemplo.xlsx"
    'Abre arquivo ListaClientes.xls
    Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
    'Monta a consulta do Recordset
    strSQL = "SELECT * FROM [Planilha1$]"
    'Abre o Recordset da consulta
    Set rs = bdExcel.OpenRecordset(strSQL)
    'Abre o recordset na tabela que recebera os dados
    Set rs1 = CurrentDb.OpenRecordset("tb1")
    'Adiciona os dados a tabela tb1
    Do While Not rs.EOF
    rs1.AddNew
        'verifico antes sem tem dados na primeira coluna, se tiver eu lanço, se nao eu ignoro!
        If Nz(Len(rs(0)), 0) > 0 Then
        
        rs1!Pos = rs(0) '0 é a primeira coluna do Excel
        rs1!NProduto = rs(1)
        rs1!Descricao = rs(2)
        rs1!Qnt = rs(4)
        rs1!valUnit = rs(13)
        rs1!ValorTotal = rs(14)
    rs1.Update
        End If
    rs.MoveNext
    Loop

    'fecha o Recordset
    rs.Close
    Set rs = Nothing
    rs1.Close
    Set rs1 = Nothing
    'Fecha o arquivo Excel
    bdExcel.Close
    Set bdExcel = Nothing
    MsgBox "A Tabela foi Atualizada...", vbInformation, "Aviso"

    End Sub

    Obs: Considere a primeira coluna do Excel como sendo a coluna 0 e assim por diante (0,1,2,3,4,5...)
    Anexos
    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel AttachmentIMPORTA DO EXCEL COM RECORDSET.zip
    Importa Excel através de Recordset informando Numero da Coluna
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 301 vez(es)


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty Re: Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    Mensagem  Alvaro Teixeira 24/1/2017, 23:33

    Olá Fábio, Parabéns!
    Obrigado pela partilha e dedicação.
    Mais uma para a comunidade MaximoAccess.
    Abraço
    jeansefan
    jeansefan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 27/11/2016

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty Re: Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    Mensagem  jeansefan 25/1/2017, 02:35

    Fabio, mais uma vez muito obrigado pela ajuda.

    Gostaria de parabeniza-lo pelo excelente trabalho e dedicação em ajudar o próximo.


    Abraços!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty Re: Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    Mensagem  FabioPaes 25/1/2017, 03:50

    Grato aos Amigo!!! Ate a Proxima se Deus quiser!!!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    elandy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 29/03/2016

    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty

    Mensagem  elandy 13/1/2018, 22:38

    Muito Obrigado!
    Rápido e simples!

    Conteúdo patrocinado


    Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel Empty Re: Importar do Excel através de Recordset informando a Coluna e não Nome dos Campos excel

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 17:25