Bom dia a todos do fórum, Tenho o seguinte código abaixo onde ele varre um arquivo .txt de extrato de conta corrente, poderem desejo que ele inicie a importação dos dados a partir de uma palavra especifica, pois o código que tenho no momento começar a salvar as informações a partir da primeira linha.
On Error GoTo TrataErro
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim RS1 As DAO.Recordset
Dim Linha As String
Dim strLinha As String, TodoTexto As String
Dim StatusTexto As String, ContaReg As Integer
Dim objFileSys, objFolder
CAMINHO = [caminho_extrato]
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSys.GetFolder(CAMINHO)
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_extratos")
For Each objFile In objFolder.Files
Open CAMINHO & objFile.Name For Input As #1 ' Abre o arquivo a ser importado
'If MsgBox("Deseja importar a lista de Arquivo?", vbQuestion + vbYesNo, "Sistema!") = vbYes Then
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Mid$(Linha, 1, 29) = "Conta: 400400-0" Then
strconta_corrente = Mid$(Linha, 22,
ElseIf Mid$(Linha, 1, 19) = "Mês/ano referência:" Then
strperiodo = CDate(Mid$(Linha, 22, 18))
ElseIf Mid$(Linha, 17, 18) = "BB CP CORP 10 MILH" Then
strtipo_investimento = Mid$(Linha, 17, 18)
ElseIf Mid$(Linha, 1, 14) = "SALDO ANTERIOR" Then
strsaldo_anterior = CStr(Mid$(Linha, 15, 33))
ElseIf Mid$(Linha, 1, 21) = "APLICAÇÕES (+)" Then
straplicacoes = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "RESGATES (-)" Then
strresgates = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "RENDIMENTO BRUTO (+)" Then
strrendimento_bruto = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "IMPOSTO DE RENDA (-)" Then
strimposto_renda = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "IOF (-)" Then
striof = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 18) = "RENDIMENTO LÍQUIDO" Then
strrendimento_liquido = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 20) = "SALDO ATUAL =" Then
strsaldo_atual = CStr(Mid$(Linha, 22, 26))
With rs
.AddNew
!conta_corrente = strconta_corrente
!periodo = strperiodo
!tipo_investimento = strtipo_investimento
!saldo_anterior = strsaldo_anterior
!aplicacoes = straplicacoes
!resgates = strresgates
!rendimento_bruto = strrendimento_bruto
!imposto_renda = strimposto_renda
!iof = striof
!rendimento_liquido = strrendimento_liquido
!saldo_atual = strsaldo_atual
.Update
'Excluindo duplicidade de registros importados
PrimeiroRegisto = True
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_extratos ORDER BY conta_corrente,periodo, tipo_investimento, saldo_anterior, aplicacoes, resgates, rendimento_bruto, imposto_renda, iof, rendimento_liquido, saldo_atual;")
Do While Not Rst.EOF
If PrimeiroRegisto Then
PrimeiroRegisto = False
strregistro_unico = Rst("registro_unico")
ElseIf strregistro_unico = Rst("registro_unico") Then
Rst.Delete
Else
strregistro_unico = Rst("registro_unico")
End If
Rst.MoveNext
Loop
Set Rst = Nothing
Exit Sub
End With
End If
Wend
Close #1
Next
Rst.MoveNext
Set Rst = Nothing
Saida:
Close
Set rs = Nothing
Set db = Nothing
Exit Sub
TrataErro:
MsgBox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then ' Compilação condicional - Em desenvolvimento
Stop
Resume
#End If
Resume Saida
End Sub
On Error GoTo TrataErro
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim RS1 As DAO.Recordset
Dim Linha As String
Dim strLinha As String, TodoTexto As String
Dim StatusTexto As String, ContaReg As Integer
Dim objFileSys, objFolder
CAMINHO = [caminho_extrato]
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSys.GetFolder(CAMINHO)
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_extratos")
For Each objFile In objFolder.Files
Open CAMINHO & objFile.Name For Input As #1 ' Abre o arquivo a ser importado
'If MsgBox("Deseja importar a lista de Arquivo?", vbQuestion + vbYesNo, "Sistema!") = vbYes Then
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Mid$(Linha, 1, 29) = "Conta: 400400-0" Then
strconta_corrente = Mid$(Linha, 22,
ElseIf Mid$(Linha, 1, 19) = "Mês/ano referência:" Then
strperiodo = CDate(Mid$(Linha, 22, 18))
ElseIf Mid$(Linha, 17, 18) = "BB CP CORP 10 MILH" Then
strtipo_investimento = Mid$(Linha, 17, 18)
ElseIf Mid$(Linha, 1, 14) = "SALDO ANTERIOR" Then
strsaldo_anterior = CStr(Mid$(Linha, 15, 33))
ElseIf Mid$(Linha, 1, 21) = "APLICAÇÕES (+)" Then
straplicacoes = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "RESGATES (-)" Then
strresgates = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "RENDIMENTO BRUTO (+)" Then
strrendimento_bruto = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "IMPOSTO DE RENDA (-)" Then
strimposto_renda = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 21) = "IOF (-)" Then
striof = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 18) = "RENDIMENTO LÍQUIDO" Then
strrendimento_liquido = CStr(Mid$(Linha, 22, 26))
ElseIf Mid$(Linha, 1, 20) = "SALDO ATUAL =" Then
strsaldo_atual = CStr(Mid$(Linha, 22, 26))
With rs
.AddNew
!conta_corrente = strconta_corrente
!periodo = strperiodo
!tipo_investimento = strtipo_investimento
!saldo_anterior = strsaldo_anterior
!aplicacoes = straplicacoes
!resgates = strresgates
!rendimento_bruto = strrendimento_bruto
!imposto_renda = strimposto_renda
!iof = striof
!rendimento_liquido = strrendimento_liquido
!saldo_atual = strsaldo_atual
.Update
'Excluindo duplicidade de registros importados
PrimeiroRegisto = True
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_extratos ORDER BY conta_corrente,periodo, tipo_investimento, saldo_anterior, aplicacoes, resgates, rendimento_bruto, imposto_renda, iof, rendimento_liquido, saldo_atual;")
Do While Not Rst.EOF
If PrimeiroRegisto Then
PrimeiroRegisto = False
strregistro_unico = Rst("registro_unico")
ElseIf strregistro_unico = Rst("registro_unico") Then
Rst.Delete
Else
strregistro_unico = Rst("registro_unico")
End If
Rst.MoveNext
Loop
Set Rst = Nothing
Exit Sub
End With
End If
Wend
Close #1
Next
Rst.MoveNext
Set Rst = Nothing
Saida:
Close
Set rs = Nothing
Set db = Nothing
Exit Sub
TrataErro:
MsgBox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then ' Compilação condicional - Em desenvolvimento
Stop
Resume
#End If
Resume Saida
End Sub