bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Importar TXT, via VBA

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

Antes de iniciar a sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

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: