MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

5 participantes

    Importação de arquivo OFX , para access via codigo

    avatar
    winddrake
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 11/11/2015

    Importação de arquivo OFX , para access via codigo Empty Importação de arquivo OFX , para access via codigo

    Mensagem  winddrake 25/2/2016, 19:45

    olá galera!

    Gostaria de saber se alguem possui , o codigo para efetuar importações para o access de um arquivo em .ofx

    recebo vários extratos de vários bancos distintos e gostaria de criar uma ferramenta para importar para meu access.

    estou com certa dificuldade , não estou conseguindo predefinir as tags a serem importadas.


    obrigado
    avatar
    NADIRONUNES
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 546
    Registrado : 30/08/2010

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  NADIRONUNES 26/2/2016, 13:23

    esse eu importo arquivo da caixa


    Public Function ImportaOFX(Caminho As String, cConta As Integer)

    Dim DB As Database
    Dim RS, r As Recordset
    Dim CodOFx As Integer
    Dim Sec As Variant
    Dim Rotulo, Linha As String
    Set DB = CurrentDb

    'Abrir arquivo, adicionar novo extrato na tabela OFX
    '---------------------------------------------------

    nFileNum = FreeFile
    Open Caminho For Input As nFileNum
    'Form_OFXimport.pbar.Value = 2

    'Abrir tabela OFX e adicionar novo extrato
    Set r = DB.OpenRecordset("OFX", dbOpenDynaset)

    r.AddNew
    r!NomeExtrato = "EXT-" & cConta & Format(Time, "HHssmm")
    r!data = Format(Date, "dd/mm/yyyy", vbUseSystemDayOfWeek, vbUseSystem)
    r!Conta = cConta

    'Percorre linha por linha do arquivo
    Do Until EOF(nFileNum)
    Line Input #nFileNum, slinetext

    If slinetext = "" Then 'se a linha é vazia, vai pra próxima!
    GoTo pulalinha
    End If

    Linha = LTrim(Replace(slinetext, vbTab, " ")) 'Substitui as tabulações por espaços e corta os espaços
    Sec = Split(Linha, ">", 2, vbTextCompare) 'Secciona a linha até o caracter >
    Rotulo = Sec(0) 'pega a primeira parte da seção

    Select Case Rotulo
    Case Is = "r!IdBanco = Mid(Linha, 19)
    Case Is = "r!IdConta = Mid(Linha, 19)
    Case Is = "r!dti = DateSerial(Int(Mid(Linha, 10, 4)), Int(Mid(Linha, 14, 2)), Int(Mid(Linha, 16, 2)))
    Case Is = "r!Dtf = DateSerial(Int(Mid(Linha, 8, 4)), Int(Mid(Linha, 12, 2)), Int(Mid(Linha, 14, 2)))
    End Select
    pulalinha:
    'Form_OFXimport.pbar.Value = Form_OFXimport.pbar.Value + 0.1
    Loop

    r.Update
    r.MoveLast

    CodOFx = r!COD 'pega o código do extrato salvo para vincular os movimentos

    r.Close
    Close nFileNum
    Set r = Nothing

    'Agora lançar os movimentos
    '-------------------------------------------------------------------------

    Open Caminho For Input As nFileNum 'abre o mesmo arquivo
    'Form_OFXimport.pbar.Value = 50
    Set RS = DB.OpenRecordset("SubOFX", dbOpenDynaset) 'abre a tabela para receber os dados

    Do Until EOF(nFileNum)
    Line Input #nFileNum, slinetext

    If slinetext = "" Then 'se a linha é vazia, pula ela!
    GoTo passadireto
    End If

    Linha = LTrim(Replace(slinetext, vbTab, " ")) 'substitui as tabulações por espaços e corta os espaços
    Sec = Split(Linha, ">", 2, vbTextCompare) 'secciona a linha (>)
    Rotulo = Sec(0) 'pega a primeira parte da seção

    Select Case Rotulo
    Case Is = " RS.AddNew
    Case Is = " 'define o tipo = 1 ou 2 e armazena
    If Mid(Linha, 10, 5) = "DEBIT" Then
    RS!tipo = 2
    Else
    RS!tipo = 1
    End If
    Case Is = " 'armazena a data
    RS!data = DateSerial(Int(Mid(Linha, 11, 4)), Int(Mid(Linha, 15, 2)), Int(Mid(Linha, 17, 2)))
    Case Is = " 'armazena o valor
    If RS!tipo = 1 Then
    RS!Valor = FormatCurrency(Mid(Linha, 9), 2, vbUseDefault, vbUseDefault, vbUseDefault) / 100
    RS!Credito = FormatCurrency(Mid(Linha, 9), 2, vbUseDefault, vbUseDefault, vbUseDefault) / 100
    Else
    RS!Valor = FormatCurrency(Mid(Linha, 10), 2, vbUseDefault, vbTrue, vbUseDefault) / 100
    RS!Debito = FormatCurrency(Mid(Linha, 10), 2, vbUseDefault, vbTrue, vbUseDefault) / 100
    End If
    Case Is = " 'armazena o cheque
    RS!Doc = Mid(Linha, 11)
    Case Is = " 'armazena o memorando
    RS!Memorando = Mid(Linha, 7)
    Case Is = "
    'armazena o CODOFX
    RS!OFX = CodOFx
    RS.Update
    Case Is = " RS.Close
    'sai da função
    End Select
    passadireto:
    'Form_OFXimport.pbar.Value = Form_OFXimport.pbar.Value + 0.1
    Loop

    Close nFileNum
    'Form_OFXimport.pbar.Value = 100
    MsgBox "OFX importado com sucesso!", vbInformation, "Mensagem"
    'Form_OFXimport.pbar.Value = 0.0001
    Set DB = Nothing
    Set RS = Nothing
    End Function
    avatar
    winddrake
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 11/11/2015

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  winddrake 3/3/2016, 14:00

    valeu  NADIRO , vou aplicar o código e se funcionar para os outros bancos posto e aviso.

    =)
    avatar
    winddrake
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 11/11/2015

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  winddrake 9/3/2016, 14:41

    Bom dia! desculpe a demora ,  o código funcionou para a importação do , ITAU e do BB  , porem ele da pau no do bradesco , pois o arquivo não vem estruturado.
    No caso do Bradesco ele vem sem  quebras de linha o código todo , e o seu código faz a verificação linha a linha como o Bradesco traz em uma unica linha ele não consegue efetuar a leitura.

    eu estava verificando e a estrutura do OFX e muito similar ao XML , porem o OFX não possui tags de fechamento quando falamos dos lançamentos.

    será que este seria mais viável para a importação sobre qualquer banco? alguém teve o mesmo problema ?
    avatar
    renatobsilva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 09/10/2014

    Importação de arquivo OFX , para access via codigo Empty Importação de arquivo OFX , para access via codigo Nubank

    Mensagem  renatobsilva 7/9/2018, 00:31

    Olá pessoal,

    Me interessei por esta rotina de importação de arquivos OFX e adaptei ela para trabalhar com o arquivo OFX que o Itau gera.
    Deu tudo certo para o Itau, mas não consegui fazer ela funcionar importando o arquivo OFX do Nubank.

    Alguém já passou por esta dificuldade com o Nubank ou outros bancos?
    Parece que para o arquivo do Itaú, ele pega certinho o rótulo da seção do arquivo e extraindo seus rótulos:
    Exemplo:
    Sec = Split(Linha, ">", 2, vbTextCompare) 'seciona a linha (>)
    Rotulo = Sec(0) 'pega a primeira parte da seção

    Já no arquivo do Nubank, ele não consegue ler linha a linha seu rótulos...
    Será que existe variações de arquivos OFX?
    Gostaria de receber informações de amigos que passaram pela mesma dificuldade..

    Obrigado,
    Renato
    avatar
    renatobsilva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 09/10/2014

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  renatobsilva 10/9/2018, 18:40

    Olá pessoal,

    A rotina funciona legal com o arquivo OFX do Itau, mas não faz o mesmo com outros arquivo OFX, do Nubank por exemplo.
    Percebi que o problema é na codificação do arquivo gerado, depois que fiz um teste... limpei manualmente o arquivo do itau (que funciona) e colei nele todo o conteúdo que estava no arquivo do nubank, assim o código funcionou normalmente e conseguiu importar os dados.

    Como obter o mesmo resultado do OFX do Itaú para os demais bancos?
    Será que automatizar copia dos dados no arquivo do Itaú antes de importar? (ficaria horrível).
    avatar
    souza-joel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 18/10/2016

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  souza-joel 10/7/2019, 20:44

    Boa tarde a todos!

    Eu não tenho muito conhecimento VB, será que alguem poderia disponibilizar o banco de dados com o resultado final?
    avatar
    Alex07
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 19/05/2017

    Importação de arquivo OFX , para access via codigo Empty Re: Importação de arquivo OFX , para access via codigo

    Mensagem  Alex07 16/1/2020, 22:05

    Boa tarde Pessoal,

    Alguém poderia enviar um bd de exemplo para que eu possa tentar remontar conforme meu caso?

      Data/hora atual: 5/12/2022, 18:27