Boa Noite Pessoal!
Estou necessitando muito da ajuda de vocês com uma rotina de importação de Arquivo Retorno.
Ela funciona direitinho, até porque não foi eu quem a fez, apenas adaptei às minhas necessidades.
Agora estou tentando melhorá-la para que faça a importação de vários arquivos ao mesmo tempo, de uma pasta expecífica.
O caminho da pasta é obtido de um campo txtPath. e os arquivos tem a terminação .ret
Já fiz uns testes com a modificação abaixo e funciona apenas no primeiro arquivo. Entretanto aparece no 'Debug.Print "importing " & strFile' que todos os arquivos da pasta foram tratados.
Agradeço muito caso possam me ajudar.
Abaixo segue a rotina:
Dim db As Database
Dim rs As Recordset
Dim Linha As String
On Error Resume Next
Dim strDir As String
Dim strFile As String
Dim I As Long
'DoCmd.OpenQuery "Qry_Limpa_Tabela_BoletosImportadosPagos" 'apaga registros anteriores
Set db = CurrentDb
Set rs = db.OpenRecordset("Boletos_Pagos_importar_access", dbOpenTable)
I = 0
If Left(txtPath, 1) <> "\" Then
strDir = txtPath & "\"
Else
strDir = txtPath
End If
strFile = Dir(strDir & "*.ret")
Do While strFile <> ""
I = I + 1
strFile = strDir & strFile
Debug.Print "importing " & strFile
Open strFile For Input As #1 ' Abre o arquivo a ser importado
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Left$(Linha, 1) = "1" Then
With rs
.AddNew
!conta = Mid$(Linha, 21, 17)
!Nosso_Numero = Mid$(Linha, 71, 11)
!Documento = Mid$(Linha, 117, 10)
!Operacao = Mid$(Linha, 109, 2)
!valor = Mid$(Linha, 153, 13) / 100
!emissao = Mid$(Linha, 296, 2) & "/" & _
Mid$(Linha, 298, 2) & "/" & _
Mid$(Linha, 300, 2)
!valor = Mid$(Linha, 254, 13) / 100
!juros = Mid$(Linha, 267, 13) / 100
!Data_Pag = Mid$(Linha, 111, 2) & "/" & _
Mid$(Linha, 113, 2) & "/" & _
Mid$(Linha, 115, 2)
!CNPJ = Mid$(Linha, 4, 14)
!Sacado = Mid$(Linha, 38, 14)
.Update
End With
End If
Wend
strFile = Dir()
Loop
Saida:
Close
Set rs = Nothing
Set db = Nothing
MsgBox "Arquivo Importado com Sucesso, clique em atualizar para Processar os dados"
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
wbonelli
Estou necessitando muito da ajuda de vocês com uma rotina de importação de Arquivo Retorno.
Ela funciona direitinho, até porque não foi eu quem a fez, apenas adaptei às minhas necessidades.
Agora estou tentando melhorá-la para que faça a importação de vários arquivos ao mesmo tempo, de uma pasta expecífica.
O caminho da pasta é obtido de um campo txtPath. e os arquivos tem a terminação .ret
Já fiz uns testes com a modificação abaixo e funciona apenas no primeiro arquivo. Entretanto aparece no 'Debug.Print "importing " & strFile' que todos os arquivos da pasta foram tratados.
Agradeço muito caso possam me ajudar.
Abaixo segue a rotina:
Dim db As Database
Dim rs As Recordset
Dim Linha As String
On Error Resume Next
Dim strDir As String
Dim strFile As String
Dim I As Long
'DoCmd.OpenQuery "Qry_Limpa_Tabela_BoletosImportadosPagos" 'apaga registros anteriores
Set db = CurrentDb
Set rs = db.OpenRecordset("Boletos_Pagos_importar_access", dbOpenTable)
I = 0
If Left(txtPath, 1) <> "\" Then
strDir = txtPath & "\"
Else
strDir = txtPath
End If
strFile = Dir(strDir & "*.ret")
Do While strFile <> ""
I = I + 1
strFile = strDir & strFile
Debug.Print "importing " & strFile
Open strFile For Input As #1 ' Abre o arquivo a ser importado
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Left$(Linha, 1) = "1" Then
With rs
.AddNew
!conta = Mid$(Linha, 21, 17)
!Nosso_Numero = Mid$(Linha, 71, 11)
!Documento = Mid$(Linha, 117, 10)
!Operacao = Mid$(Linha, 109, 2)
!valor = Mid$(Linha, 153, 13) / 100
!emissao = Mid$(Linha, 296, 2) & "/" & _
Mid$(Linha, 298, 2) & "/" & _
Mid$(Linha, 300, 2)
!valor = Mid$(Linha, 254, 13) / 100
!juros = Mid$(Linha, 267, 13) / 100
!Data_Pag = Mid$(Linha, 111, 2) & "/" & _
Mid$(Linha, 113, 2) & "/" & _
Mid$(Linha, 115, 2)
!CNPJ = Mid$(Linha, 4, 14)
!Sacado = Mid$(Linha, 38, 14)
.Update
End With
End If
Wend
strFile = Dir()
Loop
Saida:
Close
Set rs = Nothing
Set db = Nothing
MsgBox "Arquivo Importado com Sucesso, clique em atualizar para Processar os dados"
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
wbonelli