Alguem me pode dizer como faço para importar vários ficheiros .txt com o código indicado abaixo
O codigo em baixo faz o import de um arquivo .txt, mas eu precisava de importar pelo menos 12 arquivos
Quem puder ajudar...
Private Sub Comando3_Click()
Dim Delimitador As String
Dim DB As Database
Dim fnum As Integer
Dim LinhaDoTexto, LinhaDoTextoTemp As String
Dim InstrucaoSQL As String
Dim Posicao As Integer
Dim QtdDeRegistros As Long
Dim ArquivoTexto As String
Dim strBanco As Databases
Dim strTabela As String
ArquivoTexto = "C:\Users\Ricardo\Desktop\Log Pintura\2014-04-01_VisuLog_S33_SM1.txt" 'caminho do arq de texto
strTabela = "Tabela1" 'nome da tabela no banco
Delimitador = ";" 'defina aqui qual o delimitador
fnum = FreeFile
On Error GoTo NoTextFile
Open ArquivoTexto For Input As fnum
On Error GoTo NoDatabase
Set DB = CurrentDb
On Error GoTo 0
Do While Not EOF(fnum)
Line Input #fnum, LinhaDoTexto
If Len(LinhaDoTexto) > 0 Then
LinhaDoTexto = Replace(LinhaDoTexto, """", "")
InstrucaoSQL = "INSERT INTO " & _
strTabela & " VALUES ("
Do While Len(LinhaDoTexto) > 0
Posicao = InStr(LinhaDoTexto, Delimitador)
If Posicao = 0 Then
InstrucaoSQL = InstrucaoSQL & _
"'" & Replace(LinhaDoTexto, """", "") & "', "
LinhaDoTexto = ""
Else
InstrucaoSQL = InstrucaoSQL & _
"'" & Left$(LinhaDoTexto, Posicao - 1) & _
"', "
LinhaDoTexto = Mid$(Replace(LinhaDoTexto, """", ""), Posicao + Len(Delimitador))
End If
Loop
InstrucaoSQL = Left$(InstrucaoSQL, Len(InstrucaoSQL) - 2) & ")"
On Error GoTo SQLError
DB.Execute InstrucaoSQL
On Error GoTo 0
QtdDeRegistros = QtdDeRegistros + 1
End If
Loop
Close fnum
DB.Close
MsgBox "Inseridas " & Format$(QtdDeRegistos) & " Linhas"
Exit Sub
NoTextFile:
MsgBox "Erro na abertura do Arquivo de Texto."
Exit Sub
NoDatabase:
MsgBox "Erro na abertura do Banco."
Close fnum
Exit Sub
SQLError:
MsgBox "Erro na execusão do SQL '" & _
InstrucaoSQL & "'"
Close fnum
DB.Close
Exit Sub
End Sub
O codigo em baixo faz o import de um arquivo .txt, mas eu precisava de importar pelo menos 12 arquivos
Quem puder ajudar...
Private Sub Comando3_Click()
Dim Delimitador As String
Dim DB As Database
Dim fnum As Integer
Dim LinhaDoTexto, LinhaDoTextoTemp As String
Dim InstrucaoSQL As String
Dim Posicao As Integer
Dim QtdDeRegistros As Long
Dim ArquivoTexto As String
Dim strBanco As Databases
Dim strTabela As String
ArquivoTexto = "C:\Users\Ricardo\Desktop\Log Pintura\2014-04-01_VisuLog_S33_SM1.txt" 'caminho do arq de texto
strTabela = "Tabela1" 'nome da tabela no banco
Delimitador = ";" 'defina aqui qual o delimitador
fnum = FreeFile
On Error GoTo NoTextFile
Open ArquivoTexto For Input As fnum
On Error GoTo NoDatabase
Set DB = CurrentDb
On Error GoTo 0
Do While Not EOF(fnum)
Line Input #fnum, LinhaDoTexto
If Len(LinhaDoTexto) > 0 Then
LinhaDoTexto = Replace(LinhaDoTexto, """", "")
InstrucaoSQL = "INSERT INTO " & _
strTabela & " VALUES ("
Do While Len(LinhaDoTexto) > 0
Posicao = InStr(LinhaDoTexto, Delimitador)
If Posicao = 0 Then
InstrucaoSQL = InstrucaoSQL & _
"'" & Replace(LinhaDoTexto, """", "") & "', "
LinhaDoTexto = ""
Else
InstrucaoSQL = InstrucaoSQL & _
"'" & Left$(LinhaDoTexto, Posicao - 1) & _
"', "
LinhaDoTexto = Mid$(Replace(LinhaDoTexto, """", ""), Posicao + Len(Delimitador))
End If
Loop
InstrucaoSQL = Left$(InstrucaoSQL, Len(InstrucaoSQL) - 2) & ")"
On Error GoTo SQLError
DB.Execute InstrucaoSQL
On Error GoTo 0
QtdDeRegistros = QtdDeRegistros + 1
End If
Loop
Close fnum
DB.Close
MsgBox "Inseridas " & Format$(QtdDeRegistos) & " Linhas"
Exit Sub
NoTextFile:
MsgBox "Erro na abertura do Arquivo de Texto."
Exit Sub
NoDatabase:
MsgBox "Erro na abertura do Banco."
Close fnum
Exit Sub
SQLError:
MsgBox "Erro na execusão do SQL '" & _
InstrucaoSQL & "'"
Close fnum
DB.Close
Exit Sub
End Sub
Última edição por RFPS em 24/4/2014, 17:50, editado 2 vez(es)