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

    Lendo EFD em um banco MS Access

    Compartilhe

    Crônico
    Novato
    Novato

    Respeito às Regras 100%

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

    Lendo EFD em um banco MS Access

    Mensagem  Crônico em 29/6/2016, 08:28

    Em uma pasta disponho de vários arquivos txt. Cada arquivo txt correspondente à Escrituração Fiscal Digital - EFD de um mês de uma dada empresa. Cada linha que inicia com |C100| corresponde a dados gerais de uma nota fiscal enquanto as linhas imediatamente abaixo daquela e que iniciam com |C170| correspondem a itens de mercadoria daquela nota fiscal. Veja arquivo anexo para efeito de ilustração. Note que não há um campo com dados comuns entre as linhas que iniciam com |C100| e aquelas com |C170| de forma que não existe relacionamento explícito entre uma linha C100 e linha C170.

    Objetivo
    Criar um banco Access contendo duas tabelas: tabela 'tabC100' povoada com registros tipo C100 e tabela 'tabC170' povoada com registros tipo C170 envolvendo todos os arquivos txt mensais. As tabelas devem ter um campo que permita relacionar uma com a outra. Esse campo pode ser um inteiro tipo Long.

    Perguntas
    1. Do ponto de vista de performance, devo apensar todos os arquivos txt mensais em um único arquivo txt para só então passar a importar seus dados para as tabelas do bando de dados (BD) OU devo ir importanto via loop cada um dos arquivos txt mensais diretamente para as tabelas do BD?
    2. Para criar um campo de relacionamento entre as tabelas, devo fazer isso escrevendo um long X na linha C100 e nas linhas C170 imediatamente abaixo OU há outra forma com melhor performance?
    3. Há códigos relacionados a esses questionamentos nesse forum? Se sim, como acessá-los (tópicos ou links)?

    Agradeço antecipado qualquer ajuda.
    Anexos
    Txt exemplo ilustrativo.txt
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Kb) Baixado 3 vez(es)


    Última edição por Crônico em 1/7/2016, 04:56, editado 1 vez(es)

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Lendo EFD em um banco MS Access

    Mensagem  ahteixeira em 29/6/2016, 12:32

    Olá Nathan, faltou o anexo.
    Assim será mais fácil para compreender.
    Abraço

    Crônico
    Novato
    Novato

    Respeito às Regras 100%

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

    Re: Lendo EFD em um banco MS Access

    Mensagem  Crônico em 1/7/2016, 05:04

    Caro ahteixeira

    Obrigado pela orientação.
    Tentei originalmente afixar pequeno trecho do arquivo na própria mensagem (já que é um arquivo extensão txt) porém o forum rejeitou a mensagem.
    Pensei que pudesse ser o separador de colunas "|" (pipe) contido no trecho do arquivo que estaria atrapalhando.
    Então tentei anexar o próprio arquivo clicando no botão 'Escolher Arquivo'. O nome do meu arquivo apareceu no local ao lado do botão Escolher arquivo.
    Apesar de estranhar não ter visto o ícone do arquivo anexado, pensei que só o nome do arquivo já indicava seu upload para a mensagem. Agora sei que teria de clicar em outro botão de nome 'Enviar'. Dois botões para fazer upload não é usual e além disso o nome do botão 'Enviar' sugere que é para enviar a mensagem.
    Agora com sua resposta acusando a falta do arquivo, editei a mensagem para anexar o arquivo e acho que consegui.
    Desculpe a mancada.

    Crônico

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3348
    Registrado : 04/04/2010

    Re: Lendo EFD em um banco MS Access

    Mensagem  Avelino Sampaio em 1/7/2016, 05:27

    Olá!

    Utilize a instrução OPEN para abrir o arquivo txt e percorrer linha a linha. Veja na minha dica 51:

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

    utilize a função Split(linha, "|") para extrair os campos de cada linha. Um exemplo do uso da split(), neste meu artigo:

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

    Utilize o recordset para popular as tabelas com os dados dos campos

    Sucesso!



    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

      Data/hora atual: 3/12/2016, 14:42