TEXTO EM MDB
Pessoal, eu tenho uma arquivo chamado "new.txt".
nele ha varios registros (atualizado pela net) dessa forma:
svchost,sim
svchost2,não
svchoster,não
E tenho um banco de dados acces cuja tabela se chama: "NovasAssinaturas" e dois campos na tabela :Assinatura e Tipo.
Como eu faço pra inserir os registros do arquivo de texo na tabela, sendo que os campos do texto separado por "," serão os campos da tabela?
Exemplo: q na tabela assinaturas sejam adicionadas:
Assinatura Tipo
svchost sim
svchost2 não
svchoster não
Alguem ja passou por isso e sabe como resolve-lo?
nele ha varios registros (atualizado pela net) dessa forma:
svchost,sim
svchost2,não
svchoster,não
E tenho um banco de dados acces cuja tabela se chama: "NovasAssinaturas" e dois campos na tabela :Assinatura e Tipo.
Como eu faço pra inserir os registros do arquivo de texo na tabela, sendo que os campos do texto separado por "," serão os campos da tabela?
Exemplo: q na tabela assinaturas sejam adicionadas:
Assinatura Tipo
svchost sim
svchost2 não
svchoster não
Alguem ja passou por isso e sabe como resolve-lo?
é simples. Primeiro você tem que pegar os registros do seu .txt, dividi-los (tomando a vÃrgula como divisor) e depois gravar cada pedaço no campo apropriado.
Para pegar os registros:
Open "C:\Teste.txt" for input as #1
do while not eof(1) 'loop pra pegar os registros até a última linha do seu txt
Input #1, coringa 'pego o registro e o armazeno na minha variável "coringa"
redim divide(2, 0) as string 'apaga o que tiver na matriz e a prepara pra receber strings em 3 colunas e uma linha
divide = split(coringa, ",") 'divide coringa em strings cujo separador é a vÃrgula, e as armazena na matriz (array) "divide"
Ainda dentro do loop, abra sua tabela para gravação dos registros da matriz "divide". Vamos supor que você usou a famosa variável "rs" pra consulta SQL que abriu sua tabela pra edição:
rs(0) = divide(0) 'a primeira string vai ser armazenada na primeira coluna da sua tabela, e assim por diante.
rs(1) = divide(1)
rs(2) = divide(2) 'um for-next cairia bem aqui...
loop
rs.close
Close #1
Lembrando que a matriz está armazenando strings. Se sua tabela tem valores sim/não (booleanos) seria interessante colocar um if dentro do loop pra pegar os "sim" e tranformá-los em "True" e os "não" em "False"
Para pegar os registros:
Open "C:\Teste.txt" for input as #1
do while not eof(1) 'loop pra pegar os registros até a última linha do seu txt
Input #1, coringa 'pego o registro e o armazeno na minha variável "coringa"
redim divide(2, 0) as string 'apaga o que tiver na matriz e a prepara pra receber strings em 3 colunas e uma linha
divide = split(coringa, ",") 'divide coringa em strings cujo separador é a vÃrgula, e as armazena na matriz (array) "divide"
Ainda dentro do loop, abra sua tabela para gravação dos registros da matriz "divide". Vamos supor que você usou a famosa variável "rs" pra consulta SQL que abriu sua tabela pra edição:
rs(0) = divide(0) 'a primeira string vai ser armazenada na primeira coluna da sua tabela, e assim por diante.
rs(1) = divide(1)
rs(2) = divide(2) 'um for-next cairia bem aqui...
loop
rs.close
Close #1
Lembrando que a matriz está armazenando strings. Se sua tabela tem valores sim/não (booleanos) seria interessante colocar um if dentro do loop pra pegar os "sim" e tranformá-los em "True" e os "não" em "False"
Isso é que dá fazer as coisas na correria...
Puts! Coloquei o rs.close fora do loop! Não foi uma boa solução, essa de abrir e fechar o recordset a cada volta do loop. E pra piorar, ainda dimensionei a matriz ao contrário (linha no lugar da coluna). Pra encerrar o assunto, veja em
E desculpas aà pro Tio Max. Deve ter sido o Panetone.
Puts! Coloquei o rs.close fora do loop! Não foi uma boa solução, essa de abrir e fechar o recordset a cada volta do loop. E pra piorar, ainda dimensionei a matriz ao contrário (linha no lugar da coluna). Pra encerrar o assunto, veja em
E desculpas aà pro Tio Max. Deve ter sido o Panetone.
Puts! Que bagunça! O Host resolveu acertar a hora e a última mensagem saiu antes da primeira!!! E não saiu o link!!! De novo:
http://www.macoratti.net/dica16.htm
http://www.macoratti.net/dica16.htm
Tópico encerrado , respostas não são mais permitidas