MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    Importar Linha Específica

    avatar
    Valdenirst
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 20
    Registrado : 04/05/2015

    Importar Linha Específica Empty Importar Linha Específica

    Mensagem  Valdenirst em 11/4/2019, 14:33

    Bom dia,

    Estou usando este código para importar uma planilha do excel adaptado pelo " Fabio Paes". Segue código abaixo:

    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
    ----------------------------------------------

    Minha pergunta é, Como faço para iniciar a importação a partir da linha 20 por exemplo, não precisando assim editar a planilha do excel para retirar o cabeçalho, pois eu já iniciaria na linha que eu quiser.

    Espero ter sido claro na minha indagação.

    Att,

    valdenir
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10570
    Registrado : 04/11/2009

    Importar Linha Específica Empty Re: Importar Linha Específica

    Mensagem  JPaulo em 2/9/2019, 17:06

    Teste por favor, adiconando ao seu código o rs.Move 20;

    Código:
    Set rs = bdExcel.OpenRecordset(strSQL)
    'Abre o recordset na tabela que recebera os dados
    Set rs1 = CurrentDb.OpenRecordset("tb1")

    If rs.RecordCount > 0 Then
        rs.Move 20 'avança 20 registros, neste caso linhas
    End If

    'Adiciona os dados a tabela tb1
    Do While Not rs.EOF


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Importar Linha Específica Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Importar Linha Específica Folder_announce_new 102 Códigos VBA Gratuitos...
    Importar Linha Específica Folder_announce_new Instruções SQL como utilizar...

      Data/hora atual: 22/9/2019, 01:19