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

Importar TXT, via VBA

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

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.


 

 


2 comentário(s)

Hebertti Sales   14/02/2022 10:49:32

Avelino. Tenho um arquivo txt delimitado. como puxo ele direto ? ja existe uma tabela como as colunas iguais. tem como ? obrigado

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: