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


+3
renatobsilva
NADIRONUNES
winddrake
7 participantes

    [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty [Resolvido]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 : 578
    Registrado : 30/08/2010

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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

    [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Re: [Resolvido]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?
    pedrovaleriojr
    pedrovaleriojr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 13/04/2021

    [Resolvido]Importação de arquivo OFX , para access via codigo Empty Importação de OFX Bradesco

    Mensagem  pedrovaleriojr 26/6/2024, 20:04

    Pessoal, sei que esse tópico é antigo, mas me deparei com esse problema e consegui solucionar da seguinte forma:

    O arquivo OFX do Bradesco coloca um comando no final da linha, o CHR(10), que não é uma quebra de linha.
    Por isso ele só tem uma linha, caso você tente ler até o fim (EOF).

    Vou postar o BD, mas gostaria de comentar um pouco sobre como fiz.

    Abro o arquivo no BD pelo VBA e "importo" o conteúdo inteiro para uma variável do tipo STRING.

    Depois faço um FOR que vai de 1 até o tamanho total da STRING e leio caracter por caracter.
    Quando ele identifica o CHR(10), sei que a linha terminou e trato essa linha.

    Vou atribuindo os valores às variáveis que quero e depois gravo nos campos da tabela. Ficou show!
    Claro que tudo pode melhorar e, se alguém tiver ideias e o fizer, basta compartilhar conosco.

    Valeu! cheers

    Segue anexo o arquivo.

    ET: Junto tem um módulo contendo algumas funções bacanas. bounce
    Anexos
    [Resolvido]Importação de arquivo OFX , para access via codigo AttachmentImporta Extrato Bradesco OFX.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (64 Kb) Baixado 13 vez(es)

    Marcelo David gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3946
    Registrado : 21/04/2011

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

    Mensagem  Marcelo David 27/6/2024, 17:43

    Obrigado Pedro, vou dar por encerrado esse tópico. Caso o autor ache necessário, poderá reabrí-lo.


    .................................................................................
    [Resolvido]Importação de arquivo OFX , para access via codigo Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Importação de arquivo OFX , para access via codigo Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Importação de arquivo OFX , para access via codigo Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Importação de arquivo OFX , para access via codigo Marcel11

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 14:41