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.
Carregando comentários...