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

Adquira a assinatura vitalícia do site e passe a ter acesso aos arquivos exemplos, vídeos, revistas, livros e ao kit de montagem de ribbons. Você terá suporte por e-mail, caso necessite tirar dúvidas pontuais. Clique AQUI e veja como obter um dos nossos planos. Clique AQUI e faça uma visita a seção Downloads do site e verifique as centenas de arquivos que estará à sua disposição. Clique AQUI e faça uma visita a seção Vídeos do site e veja a lista que estará disponível ao se tornar o nosso assinante vitalício. Clique AQUI e saiba mais detalhes sobre o kit de montagem de ribbons (deixe seus aplicativos com aspecto profissional).

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/2020 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: