MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Importar Excel e ignorar cabeçalho.

    Compartilhe

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Dom 20 Set 2015, 21:39

    Prezados,

    vejam se minha duvida é pertinente e se tem como contornar esta situação:

    Eu uso este código para importar planilhas em Excel para o Access, porém, sempre que recebo o novo arquivo excel para importar eu preciso modificar o cabeçalho do xlsx e deixar o mesmo igual está na minha tabela.

    Tem como ignorar as 4 primeiras linhas do arquivo xlsx no momento da importação?
    Seria basicamente como se o arquivo não tivesse cabeçalho.

    Dim strPathFile As String, strFile As String, strPath As String
    Dim strTable As String
    Dim CaminhoDoFicheiro As String
    Dim JanelaDeProcura As Office.FileDialog
    Dim MeusFiltros As Office.FileDialogFilter
    Dim blnHasFieldNames As Boolean

    'On Error Resume Next
    If Forms!logon!nivel = "FINANCEIRO" Or Forms!logon!cboSetor = "ADMINISTRADOR" Then

    blnHasFieldNames = True

    ' strArquivo = Mid(Arquivo, InStrRev(Arquivo, "\") + 1)
    '---------------------------------------------------------------------------------
    'Aplica na variável o nome do caminho que será gravado o arquivo + o nome do mesmo
    '---------------------------------------------------------------------------------
    ' NovoCaminho = CurrentProject.Path & "\Arquivos Importados\" & strArquivo

    strPath = CurrentProject.Path & "\Demonstrativo de Pagamento\" & InitialFileName ' drive onde se situa o seu documento excel
    strTable = "RecebidoMDLMODELO" 'nome da tabela no seu banco que recebera os dados

    Set JanelaDeProcura = Application.FileDialog(msoFileDialogFilePicker)

    With JanelaDeProcura
    .Title = "Selecione o arquivo"
    .Filters.Clear
    .Filters.Add "Excel Files", "*.xlsx"

    .FilterIndex = 2

    .ButtonName = "Selecione"
    .InitialView = msoFileDialogViewDetails
    .InitialFileName = CurrentProject.Path & "\Demonstrativo de Pagamento\" & InitialFileName
    If .Show = -1 Then
    CaminhoDoFicheiro = CStr(JanelaDeProcura.SelectedItems.Item(1))
    Else
    Exit Sub
    End If
    Debug.Print Mid([CaminhoDoFicheiro], InStrRev([CaminhoDoFicheiro], "\") + 1)
    CaminhoDoFicheiro = Mid([CaminhoDoFicheiro], InStrRev([CaminhoDoFicheiro], "\") + 1)
    End With

    strFile = Dir(strPath & CaminhoDoFicheiro) 'preciso que aqui tenha uma opção para procurar o arquivo, com "*.xls" ele carrega todos, e eu quero que ele defina o selecionado.

    Do While Len(strFile) > 0
    strPathFile = strPath & strFile

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    strTable, strPathFile, blnHasFieldNames
    strFile = Dir()
    Loop

    '----------------------
    'Exclui simbolos da tabela Recebido
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM RecebidoMDLMODELO")
    While (Not rs.EOF)
    On Error Resume Next
    rs.Edit
    rs("CdGuia") = Replace(rs("CdGuia"), "-", "")
    rs("CdUsuario") = Replace(rs("CdUsuario"), ".", "")
    rs("QtServico") = Replace(rs("QtServico"), "000", "")
    rs.Update
    rs.MoveNext

    Wend
    rs.Close

    'Insert de Servicos Bloqueados
    DoCmd.OpenQuery "QueryInsertServicosBloqueados"

    'Exclui linha que tem a descrição: Servicos Bloqueados
    DoCmd.OpenQuery "QueryExclServicosBloqueados"

    'Seta registros na tabela Recebido
    CurrentDb.Execute "INSERT INTO Recebido ( senhaAutorizacao, numeroCarteira, nomeBeneficiario, codigo, descricao, dataHoraInternacao, quantidade, valorUnitario, valorTotal )" & vbCrLf & _
    "SELECT RecebidoMDLMODELO.CdGuia, RecebidoMDLMODELO.CdUsuario, RecebidoMDLMODELO.NoUsuario2, RecebidoMDLMODELO.CdServico, RecebidoMDLMODELO.NoServico, RecebidoMDLMODELO.strDtAtendimento, Sum(RecebidoMDLMODELO.QtServico) AS SomaQtServico" & vbCrLf & _
    ",Sum(RecebidoMDLMODELO.VlReferencia) AS SomaDeVlReferencia, Sum(RecebidoMDLMODELO.VlPago_Em_Moeda) AS SomaDeVlPago_Em_Moeda" & vbCrLf & _
    "FROM RecebidoMDLMODELO" & vbCrLf & _
    "GROUP BY RecebidoMDLMODELO.CdGuia, RecebidoMDLMODELO.CdUsuario, RecebidoMDLMODELO.NoUsuario2, RecebidoMDLMODELO.CdServico, RecebidoMDLMODELO.NoServico, RecebidoMDLMODELO.strDtAtendimento;"

    'Exclui linha que tem a nome: Nulo em Recebido
    DoCmd.OpenQuery "QueryExcelRecebidosNull"

    CurrentDb.Execute "DELETE * FROM RecebidoMDLMODELO"

    MsgBox "Demonstrativo de pagamento importado com sucesso!", vbInformation, "Importar Registros"
    DoCmd.OpenForm "frmDtCredito"

    Else
    MsgBox "USUÁRIO ATUAL NÃO TEM PERMISSÃO PARA ALTERAR AS CONFIGURAÇÕES DE ACESSO!", vbCritical, "Aviso"
    End If


    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Qua 23 Set 2015, 17:17

    Up.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Qui 24 Set 2015, 18:34

    Pesquisei no fórum o código abaixo



    Funciona bem para limpar os campos da planilha Excel, mas ainda ficam os campos em branco no arquivo e apresenta erro de importação quando vou rodar o código. Erro "F1 não existe na tabela".

    Alguma dica?

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Sex 02 Out 2015, 22:31

    Up.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Seg 26 Out 2015, 15:19

    Up.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Ter 27 Out 2015, 20:10

    Resolvido.

    luizbtadeu
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 09/12/2015

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  luizbtadeu em Sex 11 Dez 2015, 16:14

    XPTOS,

    TUDO BEM,

    como vc conseguir pular o cabeçalho sem que o access bloqueace.

    o que esta acontecendo ao fazer a importação do excel para o access

    usando o componente ou objeto DoCmd
    consigo pular o cabeçalho usando o range porem o access não valida a informação.

    quando excuta a importação ele pega a partir da 2 linha mas da a seguinte mens:

    Field '425638' doesn't exist in destination table ou seja no excel pulo mas o access verifica
    o nome das colunas.

    como conseguiu resolver isso.

    Obrigado.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Sex 11 Dez 2015, 16:22

    Olá luizbtadeu,

    Me passa seu e-mail que eu te envio um pequeno modelo.

    Atenciosamente,

    luizbtadeu
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 09/12/2015

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  luizbtadeu em Sab 12 Dez 2015, 11:49

    Bom dia XPTOS,

    Segue: [Você precisa estar registrado e conectado para ver este link.].

    Mensagem apresentada:
    O campo 'Doc#SD;Fornecedor;Descrição Forn#;Cond#pgto#;Tipo doc#vendas;I' não existe na tabela de destino 'Tempxxxx'.

    Nota: Mesmo usando especificação do access ao criar a estrutura ocorre esse problema.

    nome das colunas Access 2010:

    DocSD Fornecedor DescricaoFornecedor Condpgto Tipodocvendas Item1 Docfaturamento NotaFiscal Item2 Nrodocumento Centro Cliente Desc Cliente Filial Local Regiao Material Denominacao Qtdfaturada UM básica Data pedido h Pedido Dt1 remessa Data Liberação Data Confirmação Dtafaturamento h Fatura Data Despacho Hora Despacho Data Entrega Dias Reservar Dias Faturar Dias Entrega Falta de Estoque Total Dias Dt Deseja Entr Dias Atraso LiberacaobloqPrazo LiberacaobloqPreco Liberação bloq Créd Liberação bloq Progr Liberação outr Bloq Dias Bloq Prazo Dias Bloq Preco Dias Bloq Credito Dias Bloq Prog Posicao

    Linha de comando:

    DoCmd.TransferText TransferType:=acImportDelim, TableName:="Tempxxxxx", Filename:=strDir, HasFieldNames:=True


    Obrigado pelo apoio.






    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 461
    Registrado : 20/01/2014

    Re: [Resolvido]Importar Excel e ignorar cabeçalho.

    Mensagem  XPTOS em Seg 14 Dez 2015, 10:11

    Olá,

    Veja seu e-mail.

      Data/hora atual: Sab 10 Dez 2016, 06:53