MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Exportar Arquivo texto por VBA x Layout

    Compartilhe

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 168
    Registrado : 29/04/2011

    Exportar Arquivo texto por VBA x Layout

    Mensagem  vinicius.anna em Seg 23 Jun 2014, 12:59

    Bom dia

    Amigos,

    Em meu sistema possuo uma rotina de exportação de lançamentos em arquivo texto conforme layout definido pelo meu sistema. Uso a seguinte rotina:

    Código:

    'Créditos: http://www.macoratti.net/txt_arqs.htmExporta
    Public Function fncExpLanMax7()
    On Error GoTo trataerro
    Dim db As DAO.Database
    Dim RSP, RSP1 As DAO.Recordset
    Dim strSql As String
    Dim Sai As String
    Dim TamValor As Integer

        Set RSP = CurrentDb.OpenRecordset("SELECT Max(Len(ValorLanc)) FROM tb_Lancamentos;")
        TamValor = RSP(0)

        Set db = CurrentDb
        strSql = "SELECT tb_Lancamentos.DataLan, tb_Lancamentos.Agrupamento, tb_Lancamentos.Devedora7, tb_Lancamentos.Credora7, tb_Lancamentos.ValorLanc, tb_Lancamentos.Histórico FROM tb_Lancamentos ORDER BY tb_Lancamentos.DataLan, tb_Lancamentos.Agrupamento;"

        Set RSP = db.OpenRecordset(strSql)
        strSql = Application.CurrentProject.Path
        Open strSql & "\Lancamentos7.txt" For Output As #1

        'Print #1, Sai
        With RSP
            .MoveFirst
        Do While Not .EOF
            Sai = JustStr(RSP!Devedora7, "000000000", 16) & JustStr(RSP!Credora7, "000000000", 16) & Space(1) & (RSP!DataLan) & Space(1) & (RSP!Agrupamento) & Space(10 + TamValor - Len(RSP!ValorLanc)) & (RSP!ValorLanc) & Space(1) & (RSP!Histórico)
            'Sai = JustStr(RSP!DataLan, " ", 10) & Space(1) & (RSP!Agrupamento) & Space(1) & (RSP!Devedora7) & Space(3) & (RSP!Credora7) & Space(3) & Space(10 + TamValor - Len(RSP!ValorLanc)) & (RSP!ValorLanc) & Space(2) & Space(2) & (RSP!Histórico)
            CtaItens = CtaItens + 1
            Print #1, Sai
            .MoveNext
            Loop
        End With
        MsgBox "Lançamentos Contábeis Exportados!!!", vbExclamation, "Processo Completado OK."
    Set db = Nothing
    Set RSP = Nothing
    Close #1

    Exit_TrataErro:
    Exit Function
    trataerro:
    MsgBox "Falha de Processamento. Função fncLimpa." _
           & vbCrLf & "Erro n°: " & Err.Number _
           & vbCrLf & "Descrição: " _
           & Err.Description, vbInformation, "Erro..."
    Exit Function


    End Function


    Esta rotina funciona perfeitamente, conforme imagem: [Você precisa estar registrado e conectado para ver esta imagem.]

    Ocorre que, o sistema de terceiros usados por meu cliente mudou a forma de integração, exigindo que eu mude meu layout da seguinte forma:

    Por exemplo:
    Tenho um campo chamado Histórico, trata-se de um campo texto, onde tenho até 500 caracteres a serem usados..... pelo layout especificado, tenho que gerar este campo de forma delimitada, onde, inicio na coluna 29 o histórico e após 29 caracteres, quebre a linha e numere a mesma e informe o valor apenas na última linha do lançamento.

    Alguém tem alguma dica de como possa fazê-lo conforme imagem: [Você precisa estar registrado e conectado para ver esta imagem.] (layout terceiros)

    Att. Vinicius

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Re: Exportar Arquivo texto por VBA x Layout

    Mensagem  daniloreiis em Ter 24 Jun 2014, 21:44

    Bom não entendi muito bem, mas quem sabe posso ajudar.

    aqui onde trabalho, passei por uma situação na qual deveria exportar dados para outro sistema no layout da empresa contratante.


    eles me passaram um layout delimitado e eu apenas deveria exportar um txt para importar no sistema deles.
    layout da empresa:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Ai fiz desta forma abaixo:

    primeiro criei uma especificação, como fazer isso assim:

    Passo 1
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Passo 2
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Passo 3

    DoCmd.TransferText acExportFixed, "minha_especificação", "tbl_minha_tabela", strPlanilha


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

      Data/hora atual: Qui 08 Dez 2016, 23:58