Companheiros, estou implementando em meu projeto o código código do JPaulo para importação do extrato bancário no formato txt, vi os exemplos postados aqui, porém no meu caso tem uma particularidade especifica, o arquivo vem com os caracteres ";", o ponto e vírgula consegui retirar agora as aspas não, podem me ajudar? segue o formato do arquivo txt e o código que estou utilizando.
Arquivo txt:
"Conta";"Data_Mov";"Nr_Doc";"Historico";"Valor";"Deb_Cred"
"1537003000018802";"20120903";"261690";"TRX EL TEV";"270.00";"C"
"1537003000018802";"20120903";"105346";"ENVIO TED";"3000.00";"D"
"1537003000018802";"20120903";"105346";"DOC/TED INTERNET";"7.50";"D"
"1537003000018802";"20120904";"153080";"TRX EL TEV";"600.00";"C"
"1537003000018802";"20120905";"040912";"COB COMPE";"2928.90";"C"
"1537003000018802";"20120905";"178714";"TRX EL TEV";"270.00";"C"
"1537003000018802";"20120905";"203801";"TRX EL TEV";"800.00";"C"
"1537003000018802";"20120905";"005992";"DOC ELET E";"1485.00";"D"
"1537003000018802";"20120905";"006120";"DOC ELET E";"280.00";"D"
"1537003000018802";"20120905";"100339";"PG PREFEIT";"50.26";"D"
"1537003000018802";"20120905";"261407";"PAG BLOQTO";"100.00";"D"
"1537003000018802";"20120905";"027145";"TRX EL TEV";"150.00";"D"
"1537003000018802";"20120905";"053173";"TRX EL TEV";"217.80";"D"
"1537003000018802";"20120905";"005992";"DOC/TEDINTERNET";"7.50";"D"
"1537003000018802";"20120905";"006120";"DOC/TEDINTERNET";"7.50";"D"
"1537003000018802";"20120905";"040912";"DEB SICOB";"3.26";"D"
"1537003000018802";"20120905";"000000";"DB CEST PJ";"21.50";"D"
"1537003000018802";"20120913";"108346";"TRX EL TEV";"200.00";"C"
"1537003000018802";"20120914";"030111";"TRX EL TEV";"60.00";"D"
CÓDIGO UTILIZADO
Private Sub Comando0_Click()
Call ImportaSemDelimitadores
End Sub
Public Sub ImportaSemDelimitadores()
'By JPaulo ® Maximo Access
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:\teste.txt" 'caminho do arq de texto
strTabela = "tblmovconta" 'nome da tabela no banco
Delimitador = ";" & "" 'defina aqui qual o delimitador que não quer importar
If Delimitador = "" Then Delimitador = " "
If Delimitador = "" Then Delimitador = vbTab
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
If Left(LinhaDoTexto, 1) Like "4530" Then
LinhaDoTextoTemp = Mid(LinhaDoTexto, 20, 255)
LinhaDoTexto = LinhaDoTextoTemp
End If
InstrucaoSQL = "INSERT INTO " & _
strTabela & " VALUES ("
Do While Len(LinhaDoTexto) > 0
Posicao = InStr(LinhaDoTexto, Delimitador)
If Posicao = 0 Then
InstrucaoSQL = InstrucaoSQL & _
"'" & LinhaDoTexto & "', "
LinhaDoTexto = ""
Else
InstrucaoSQL = InstrucaoSQL & _
"'" & Left$(LinhaDoTexto, Posicao - 1) & _
"', "
LinhaDoTexto = Mid$(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$(QtdDeRegistros) & " 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
Arquivo txt:
"Conta";"Data_Mov";"Nr_Doc";"Historico";"Valor";"Deb_Cred"
"1537003000018802";"20120903";"261690";"TRX EL TEV";"270.00";"C"
"1537003000018802";"20120903";"105346";"ENVIO TED";"3000.00";"D"
"1537003000018802";"20120903";"105346";"DOC/TED INTERNET";"7.50";"D"
"1537003000018802";"20120904";"153080";"TRX EL TEV";"600.00";"C"
"1537003000018802";"20120905";"040912";"COB COMPE";"2928.90";"C"
"1537003000018802";"20120905";"178714";"TRX EL TEV";"270.00";"C"
"1537003000018802";"20120905";"203801";"TRX EL TEV";"800.00";"C"
"1537003000018802";"20120905";"005992";"DOC ELET E";"1485.00";"D"
"1537003000018802";"20120905";"006120";"DOC ELET E";"280.00";"D"
"1537003000018802";"20120905";"100339";"PG PREFEIT";"50.26";"D"
"1537003000018802";"20120905";"261407";"PAG BLOQTO";"100.00";"D"
"1537003000018802";"20120905";"027145";"TRX EL TEV";"150.00";"D"
"1537003000018802";"20120905";"053173";"TRX EL TEV";"217.80";"D"
"1537003000018802";"20120905";"005992";"DOC/TEDINTERNET";"7.50";"D"
"1537003000018802";"20120905";"006120";"DOC/TEDINTERNET";"7.50";"D"
"1537003000018802";"20120905";"040912";"DEB SICOB";"3.26";"D"
"1537003000018802";"20120905";"000000";"DB CEST PJ";"21.50";"D"
"1537003000018802";"20120913";"108346";"TRX EL TEV";"200.00";"C"
"1537003000018802";"20120914";"030111";"TRX EL TEV";"60.00";"D"
CÓDIGO UTILIZADO
Private Sub Comando0_Click()
Call ImportaSemDelimitadores
End Sub
Public Sub ImportaSemDelimitadores()
'By JPaulo ® Maximo Access
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:\teste.txt" 'caminho do arq de texto
strTabela = "tblmovconta" 'nome da tabela no banco
Delimitador = ";" & "" 'defina aqui qual o delimitador que não quer importar
If Delimitador = "
If 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
If Left(LinhaDoTexto, 1) Like "4530" Then
LinhaDoTextoTemp = Mid(LinhaDoTexto, 20, 255)
LinhaDoTexto = LinhaDoTextoTemp
End If
InstrucaoSQL = "INSERT INTO " & _
strTabela & " VALUES ("
Do While Len(LinhaDoTexto) > 0
Posicao = InStr(LinhaDoTexto, Delimitador)
If Posicao = 0 Then
InstrucaoSQL = InstrucaoSQL & _
"'" & LinhaDoTexto & "', "
LinhaDoTexto = ""
Else
InstrucaoSQL = InstrucaoSQL & _
"'" & Left$(LinhaDoTexto, Posicao - 1) & _
"', "
LinhaDoTexto = Mid$(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$(QtdDeRegistros) & " 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