Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal tenho um formulário para importar dados do txt para uma tabela do Access conforme os códigos abaixo
Botão:
Private Sub CGru_Click()
ImportaTXT ("ltopenGru02.txt")
End Sub
E o ImportaTXT:
Public Sub ImportaTXT(Arq As String)
On Error GoTo trataerro
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fs, f
Dim st As String
Dim terminal As String
Dim number As String
Dim bath As String
Dim name As String
Dim Data As Date
Dim Credit As Double
Dim Debit As Double
Dim Payment As Double
Dim strSQL As String
Dim Arquivo As String
Dim Tabela As String
Dim db As DAO.Database
Dim rst As DAO.Recordset
Arquivo = "c:\@Bases\" & Arq
Set db = CurrentDb()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(Arquivo, ForReading, TristateTrue)
strSQL = "DELETE FROM [tbl " & Arq & "];"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
st = f.ReadLine
st = f.ReadLine
Tabela = "tbl " & Arq
Set rst = db.OpenRecordset(Tabela, dbOpenTable)
Do
st = f.ReadLine
rst.AddNew
rst![TERMINAL NUMBER] = Mid(st, 17, 8)
rst![se Number] = Mid(st, 37, 10)
rst![bATCH NUMBER] = Mid(st, 62, 8)
st = f.ReadLine
rst![sE NAME] = RTrim(Mid(st, 10, 31))
st = f.ReadLine
rst![Date] = CDate(Mid(st, 6, 11))
st = f.ReadLine
st = f.ReadLine
rst![CREDIT AMOUNT] = CDbl(Replace(LTrim(Mid(st, 5, 13)), ".", ","))
rst![Debit Amount] = CDbl(Replace(LTrim(Mid(st, 26, 13)), ".", ","))
rst![PAYMENT AMOUNT] = CDbl(Replace(LTrim(Mid(st, 47, 13)), ".", ","))
st = f.ReadLine
rst.Update
Loop While Not f.AtEndOfStream
DoCmd.OpenTable Tabela, acViewNormal, acReadOnly
rst.Close
db.Close
f.Close
Set fs = Nothing
trataerro:
If Err.number <> 0 Then
MsgBox Err.Description & " - " & Err.number, vbCritical
End If
End Sub
Tudo funciona perfeitamente porque todos os dias tenho apenas 1 arquivo para importar e coloco o nome dele no evento que chama o ImportaTXT, acontece que agora preciso importar mais de 10.000 arquivos para a tabela(todos estão no mesmo diretório da variável arquivo "c:\@Bases\") mas não estou conseguindo implementar essa necessidade no código, tenho que ir alterando o nome do arquivo na chamada do ImportaTXT.
>
Olá Tedy,
Sugestão abaixo:
Importar vários arquivos txt para mdb
Sem mais,
Julien Sorel
_________________________________________________________________
ef3cinco.worpress.com | Programação - não importa a linguagem...
Obrigado pelo retorno mas antes de postar tentei implementar seu código e não consegui, abaixo o que fiz:
Criei o form ifrmExplorer
Criei o textbox txtDir
Criei a tabela base
Criei o botão import_txt e no evento onClick coloquei o seu código
Setei a tabela base na variavel strTable = "base"
Coloco o endereço dos arquivo no textbox c:\base e ao clicar no botão vai direto para a exceção (ERRO número 424 O objeto é obrigatório)
Estou intrigado com a linha de código
DoCmd.TransferText acImportDelim, "ImportSpecification", strTable, strArquivo, False
porque eu alterei para
DoCmd.TransferText acLinkFixed, "ImportSpecification", strTable, strArquivo, False
Quero importar todos os campos do arquivos (delimitado ;)para um único campo da tabela.
Olá pessoal, hoje acordei inspirado e consegui alguns avanços mas continuo com problemas.
Como disse anteriormente fiz alteração no DoCmd e por final ficou assim
DoCmd.TransferText acLinkFixed, "Sgi-bk", strTable, strArquivo, False
Percebam que no campo de especificação que estava "ImportSpecification" (o exemplo do Julien Sorel
)eu criei uma importação e salvei com o nome "Sgi-bk".
Eu consigo importar todos os arquivos que estão no diretório mas se eu quiser importar arquivos que estão em outro diretório preciso criar outra importação e salvá-la novamente (com o mesmo nome Sgi-bk para não mexer no código).
Pergunta: tem como automatizar isso para que eu importe arquivos de qualquer diretório e não apenas do diretório onde criei a importação Sgi-bk ?
Boa tarde
Amigos, preciso fazer a exportação de umas informações de execel para um arquivo .txt, porem nesse arquivo os separadores nao podem ter " / " utilizado em data e " :" em horas. vi alguns topicos que utilizar macros, porem nao entendo de programação e nesse exportava os valores com esses caracteres.
Se puderem ajudar agradeço.
Forte abraço.
>
Boa tarde
Amigos, preciso fazer a exportação de umas informações de execel para um arquivo .txt, porem nesse arquivo os separadores nao podem ter " / " utilizado em data e " :" em horas. vi alguns topicos que utilizar macros, porem nao entendo de programação e nesse exportava os valores com esses caracteres.
Se puderem ajudar agradeço.
Forte abraço.
Não entendi bem mas me diga:
Quais colunas sua planilha possui.
Qual o campo possui o a data e qual posui a hora.
Qual o separador você quer usar.
Tente detalhar mais ok ?
ok.
Assim tenho uma planilha de execel onde serao anotados as entradas e saidas dos funcionarios, ex: data em uma coluna entrada coluna 2 saida coluna 3, entrada coluna 4 e saida coluna 5. o formato da data esta em ex: 27/03/2012 da hora ex: 08:00. Para eu exportar essas informações para meu programa de folha de pagamento tenho que transformar isso em um arquivo de texto, ai pensei poderia copiar e colar facil né, porem meu sistema nao lê caracteres diferentes, ex. se eu copia do excel para o bloco de notas ficaria assim: 27/03/2012 08:00 11:00 13:00 18:00 , e meu sistema nao le esses espaços, barras e dois pontos.
Preciso exportar essas informações para que fique assim lembrando que em um arquivo de .txt 270320120800110013001800 entendeu? mas no caso teria uma continuação abaixo pois seria marcações do mes inteiro.
se puder ajudar e se sim comentar onde poderia modificar caso quisesse adicionar mais uma coluna e tal.ok.
Obrigado desde já.
>
ok.
Assim tenho uma planilha de execel onde serao anotados as entradas e saidas dos funcionarios, ex: data em uma coluna entrada coluna 2 saida coluna 3, entrada coluna 4 e saida coluna 5. o formato da data esta em ex: 27/03/2012 da hora ex: 08:00. Para eu exportar essas informações para meu programa de folha de pagamento tenho que transformar isso em um arquivo de texto, ai pensei poderia copiar e colar facil né, porem meu sistema nao lê caracteres diferentes, ex. se eu copia do excel para o bloco de notas ficaria assim: 27/03/2012 08:00 11:00 13:00 18:00 , e meu sistema nao le esses espaços, barras e dois pontos.
Preciso exportar essas informações para que fique assim lembrando que em um arquivo de .txt 270320120800110013001800 entendeu? mas no caso teria uma continuação abaixo pois seria marcações do mes inteiro.
se puder ajudar e se sim comentar onde poderia modificar caso quisesse adicionar mais uma coluna e tal.ok.
Obrigado desde já.
Tem como montar o layout no próprio excel desde que esse arquivo não seja tão grande...
Um exemplo;
|A |B |C |D |E
1|data_entrada|hora_entrada|data_saida|hora_saida|RESULTADO
2|27/03/2012 |10:45 |27/03/2012|09:30 |270320121045270320120930
3|10/02/2012 |09:00 |02/03/2012|13:20 |100220120900020320121320
Na célula E2 coloque a fórmula
=EXT.TEXTO(A2;1;2)&EXT.TEXTO(A2;4;2)&EXT.TEXTO(A2;7;4)&EXT.TEXTO(B2;1;2)&EXT.TEXTO(B2;4;2)&EXT.TEXTO(C2;1;2)&EXT.TEXTO(C2;4;2)&EXT.TEXTO(C2;7;4)&EXT.TEXTO(D2;1;2)&EXT.TEXTO(D2;4;2)
O cuidado que você deve ter é que todas as células, com exceção da célula que leva a fórmula, deve estar formatada como texto.
Veja se você consegue montar e posta ai !
Pergunta: tem como automatizar isso para que eu importe arquivos de qualquer diretório e não apenas do diretório onde criei a importação Sgi-bk ? /applications/core/interface/imageproxy/imageproxy.php?img=http://www.dubaa.info/Hardware.gif&key=e06c5b0d092d64f38b119e45b51b9d9a4a8f0eff3a6b6484701d76027fb713b3" alt="Hardware.gif" />
Boa NOITE a todos preciso exportar dados de uma planilha de excel para um arquivo txt, porem esse arquivo sera importado para outro sistema, por isso tem um layout ja definido, existe algum macro que possa fazer que consiga fazer isso?
ex.: minha planilha tem:
nome: erica
cidade: curitiba
salario: 1000
o arquivo tem que ficar com seguinte layout:
erica curitiba 0000100000 1200 000000 *
pedro filho londirna 0000090000 000000 *
note que erica começa em 1 termina 50, a cidade começa 51 termina 80; e assim por diante finalizando sempre com *
no começo tem os dados da empresa ai tem as posições tambem para cada um.
Caso algeum possa ajudar, como nao esntendo de programação se puder colocar o comentario no codigo ai consigo ir vendo e fazendo isso no restante das 300 informações que preciso importar rsrs...
Obrigada.ericaffj
Membro
Mensagens: 2
Registrado em: Ontem, 16:02
Agradeceu : 0 time
Foi agradecido: 0 time
Mensagem particularE-mail ericaffjVoltar ao topo
Olá Tedy,
Sugestão abaixo:
Importar vários arquivos txt para mdb
Sem mais,
Julien Sorel
_________________________________________________________________
ef3cinco.worpress.com | Programação - não importa a linguagem...