... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Importar TXT, via VBA

Usuário Leandro:

Boa tarde.

Quero importar um arquivo de texto pelo VBA, mas preciso que seja habilitada a janela de escolha do diretório e arquivo (FileDialog). Não uso a importação padrão, pois o nome e o diretório do arquivo mudam sempre, sendo assim fica difícil também usar um arquivo ini de configuração.

O arquivo é delimitado por vírgulas (,) e o delimitador decimal é o ponto (.).

A tabela no Microsoft Access possui os mesmos nomes nos campos e a mesma propriedade:

num_id_ponto = inteiro longo
latitude = duplo
longitude = duplo
dat_col_time = data/hora
num_ponto = texto
num_equip = texto
ref = texto

A quantidade de linhas do arquivo é variável, pode ser superior a 65.000

Um arquivo de texto de exemplo:

num_id_ponto,latitude,longitude,dat_col_time,num_ponto,num_equip,ref
1,-28.918343,-49.974716,01/09/2017 10:57:59,0,R4S45699987,
55,-11.928281,-34.95093,23/08/2017 17:03:23,9123456789,R4S45699988,AC010199

Você tem alguma sugestão?

Obrigado.

Suporte:

Leandro,

se cada registro está em uma linha, basta utilizar o seguinte código:

Dim strLinha as String
Dim k
Dim StrSql$
OPEN "c:\MinhaPasta\meuArquivo.txt" FOR Input AS #1
   Do while not eof(1) 'percorre todas as linhas do arquivo texto
      Line Input #1, strLinha 'passa o conteúdo da linha para a string strLinha
      k = split(strlinha,",") 'passa a linha para uma Matriz
      'passa os valores para tabela
      strSql = "INSERT INTO NomeDaTabela (num_id_ponto,latitude,longitude) 
      strSql = strsql & " VALUES('" & k(0) & "','" & k(1) & "','" & k(2) & "');"
      Currentdb.execute strSql
   loop
Close #1

Ponha isso em um botão e teste.

Usuário Leandro:

Bom dia!

Esse código funcionou perfeitamente!  Fiz alguns ajustes para usar o FileDialog.

Muito obrigado, Avelino.


 

 


1 comentário(s)

Tiago   30/05/2018 11:00:24

Muito bom o código!
Contudo, como podemos programar para que o código consiga pular(ignorar) a primeira linha do arquivo aonde estão contidos os cabeçalhos?
Obrigado.


Envie seu comentário: