none
Macro para Access para carregar dados de arquivo em txt ou csv em uma unica tabela. RRS feed

  • Pergunta

  • Boa tarde Prezados,

    Estou aprendendo esse mundo VBA para Access, e sou apenas um iniciante, e utilizo o Access 2013 na empresa para manipular muitos dados que não tem como fazer no Excel.

    Atualmente recebemos uma Base de Arquivo em torno de 3gb, e consigo subir ela na macro conforme abaixo:

    ''TABELA DE SETEMBRO PARTE 5'
    Sub SETEMBRO()
    DoCmd.TransferText acLinkDelim, "TABELA_MODELO", "SETEMBRO", _
        "C:\CRTECNICO\Residencial\HFC\Setembro_16\SETEMTO\Set_5\TABELA3G.csv"
    End Sub

    Porém o problema é que recebemos uma tabela picada, tipo assim, Setembro recebemos três arquivos para consolidar, 3gb, 2gb, 3gb e gostaria de saber se é possível incluir uma macro para juntar esses 4 arquivos em uma única tabela (vinculada)?

    Desde já agradeço a ajuda ou resposta.

    Muito obrigado.


    • Editado LucianodaMata sexta-feira, 25 de novembro de 2016 02:13
    quinta-feira, 10 de novembro de 2016 20:29

Todas as Respostas

  • Bom dia,

    Vc pode criar uma .bat para consolidar estes arquivos.

    Copie o comando abaixo e cole em um documento do bloco de notas

    copy Nome_arquivo*.csv Arquivo_Consolidado.csv

    Salve o arquivo com a extensão .bat

    Observe no código acima que o Nome_arquivo é acompanhado asterisco (*), isto significa que a bat irá  juntar todos arquivos que o nome inicie com o (Nome_arquivo) e ele criará um arquivo chamado Arquivo_Consolidado.csv. Vc tem q padronizar os 3 arquivos que recebe, exemplo:

    Nome_arquivo1.csv

    Nome_arquivo2.csv

    Nome_arquivo3.csv

    O arquivo bat tem que ficar na mesma pasta onde estarão os arquivos csv

    segunda-feira, 14 de novembro de 2016 10:53
  • Edvaldo, obrigado pela resposta, esse comando .bat já utilizo nas minhas rotinas no trabalho. Acho que não fui especifico, o que preciso juntar no Access é esses arquivos de 3GB, 4GB, eu recebo eles apartado e preciso juntar eles para fazer uma análise, e disgnóstico pelo Access. 

    Hoje atualmente eu recebo esses arquivos de uma mês e subo eles no Access através dessa macro, porém o que eu preciso é consolidar eles quando subir no access pela macro. Se eu consolidar todo arquivo exemplo (6GB) eu não consigo subir o arquivo, devido ao limite do Access.

    Não tem como eu subir a macro consolidando os arquivos no Access de uma vez só?

    Abs, obrigado.

    terça-feira, 22 de novembro de 2016 19:25
  • Luciano,

    Para está quantidade de informações acredito que Access não vai suportar, talvez (não tenho certeza), vc pode tentar vincular as 3 bases ao Access, assim estas bases "não ficarão internamente" no Access (limite do 2 GB), é uma tentativa, após ter vinculado estas bases, para uni-las, basta criar uma consulta union.  Se isto não resolver pelo, volume de dados, sugiro que vc instale o SQL SERVER Express (gratuito e limite de 10 GB) ou o MySql, para trabalhar com estas bases. 

    quarta-feira, 23 de novembro de 2016 10:59
  • Fiz um teste vinculando 6 bases ao Access, cada uma com aproximadamente 1,5 GB, o banco ficou com cerca de 800 KB, depois eu fiz uma consulta união e funcionou, claro que conforme vc for aplicando critérios em uma posterior consulta a tendencia é ficar lento, se vc tiver uma máquina com no minimo 4 GB memória, talvez vc consiga tbm, pois consome muita memória, em meu teste a maquina chegou a travar, mas após alguns minutos, voltou a funcionar e retornou os dados de um critério que eu apliquei na consulta.
    • Editado Edvaldo A quinta-feira, 24 de novembro de 2016 17:19 .
    quarta-feira, 23 de novembro de 2016 11:22
  • Se não em engano o SQL Sever 2014 gratuito permite 10GB, para cada Banco de Dados.

    Uma Pergunta para o MYSQL, eu consigo subir uma base de 10GB em um único comando?

    Depois do Access, estou tentando subir 9GB no formato de txt pelo comando abaixo:

    -- INSERINDO TABLE'
    LOAD DATA LOCAL INFILE 'C:\Users\lucia\Desktop\MSYSQL_IMPORT\OUTUBRO1.txt' INTO TABLE DESABILITADOS

    Ocorre que ele dá erro, e não localizou colunas da tabela, é necessário criar toda estrutura da tabela para usar esse comando, ou não?

    No aguardo.

    Abs.

    sexta-feira, 25 de novembro de 2016 01:38
  • Sim, as versões express do SQL Server somente 10 GB ...

    Consegue sim subir no MySQL, existe algumas formas de fazer isto, veja estes links:

    http://www.mysqltutorial.org/import-csv-file-mysql-table/

    http://stackoverflow.com/questions/11077801/import-csv-to-mysql-table

    ou ainda vc pode usar o SGBD MySql - Front, pois ele tem uma interface simples, porém eficiente, e para importar a sua base, em poucos cliques vc consegue fazer isto.


    sexta-feira, 25 de novembro de 2016 10:57

  • Depois do Access, estou tentando subir 9GB no formato de txt pelo comando abaixo:

    -- INSERINDO TABLE'
    LOAD DATA LOCAL INFILE 'C:\Users\lucia\Desktop\MSYSQL_IMPORT\OUTUBRO1.txt' INTO TABLE DESABILITADOS

    Ocorre que ele dá erro, e não localizou colunas da tabela, é necessário criar toda estrutura da tabela para usar esse comando, ou não?

    No aguardo.

    Abs.

    A sugestão que eu disse nos posts anteriores é vincular as suas bases ao Access e não importa -lo para o Access, desta forma que vc está tentando fazer vc não vai conseguir mesmo, o access suporta até 2 GB, vincule as bases ao Access, na aba dados externos vc encontrará está opção. 
    sexta-feira, 25 de novembro de 2016 11:05