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 5 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 : 3928
    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: 8/9/2024, 01:05