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 participantes

    [Resolvido]Exportar Relatórios individuais baseados em consulta

    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 29/7/2019, 21:30

    Fiz uma função mas não sei (ainda) fazer recordset
    Aí fiz tudo manual mesmo.. rs

    Alguma santa alma consegue me ajudar?

    Seguinte:

    Na tabela clientes, tenho o cadastro de cada cliente. E tenho um relatório que se chama fullreport, que é baseado na consulta cst_fullreport
    A única funcionalidade da consulta é indicar o número do cliente, assim o relatório sai apenas daquele cliente.

    Tenho por exemplo:
    Cliente 1

    O relatório será salvo na pasta:
    F:\bdcloud\Cliente1\

    O nome do relatório será:
    RP NomeCliente1.pdf

    O caminho completo do arquivo será:
    F:\bdcloud\Cliente1\RP NomeCliente1.pdf


    E esse padrão repete para todos os clientes, cada qual na sua pasta.

    O que eu preciso é que o código abra a consulta cst_fullreport, coloque no campo NumCliente o critério com o número do primeiro cliente, aí abra o relatório fullreport e exporte para o caminho do cliente.

    Achando que ia dar certo, criei um campo na tabela clientes que se chama LinkDBcloud, e ao cadastrar o cliente ele já gera o link da pasta automaticamente.

    Mas eu não consegui fazer esse recordset para mudar a consulta exportar os relatórios cada um para a sua pastinha.


    Código:
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim qdf As DAO.QueryDef

    Set qdf = db.QueryDefs("cst_fullreport")
     
    DoCmd.OpenQuery "cst_fullreport", acViewNormal, acEdit
    qdf.SQL = "Select * From [clientes] WHERE [NumCliente]='Cliente1'"
    DoCmd.OutputTo acOutputReport, "fullreport", "PDFFormat(*.pdf)", "F:\bdcloud\Cliente1\RP NomeCliente1.pdf", False, "", , acExportQualityPrint
     
    DoCmd.OpenQuery "cst_fullreport", acViewNormal, acEdit
    qdf.SQL = "Select * From [clientes] WHERE [NumCliente]='Cliente2'"
    DoCmd.OutputTo acOutputReport, "fullreport", "PDFFormat(*.pdf)", "F:\bdcloud\Cliente2\RP NomeCliente2.pdf", False, "", , acExportQualityPrint
     
    DoCmd.OpenQuery "cst_fullreport", acViewNormal, acEdit
    qdf.SQL = "Select * From [clientes] WHERE [NumCliente]='Cliente2'"
    DoCmd.OutputTo acOutputReport, "fullreport", "PDFFormat(*.pdf)", "F:\bdcloud\Cliente1\RP NomeCliente2.pdf", False, "", , acExportQualityPrint


    ... etc

    End Function
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 479
    Registrado : 25/02/2016

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  FranklinJSP 30/7/2019, 15:53

    Bom día Anna!

    Exemplo em anexo

    Saludos


    Última edição por FranklinJSP em 31/7/2019, 14:44, editado 1 vez(es) (Motivo da edição : :))


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 31/7/2019, 14:54

    Acho que não é bem isso... não rodou
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Alvaro Teixeira 31/7/2019, 15:03

    Olá a todos,

    Para os colegas que pretendem testar na pasta atual onde estão a rolar a base de dados ajustar o código para:

       TempCarpeta = Dir(Application.CurrentProject.Path & "\" & Me.Cliente.Column(1), vbDirectory)

       If TempCarpeta = "" Then
          MkDir Application.CurrentProject.Path & "\" & Me.Cliente.Column(1)
       End If

       Archivito = Application.CurrentProject.Path & "\" & Me.Cliente.Column(1) & "\RP " & Me.Cliente.Column(1) & ".pdf"
       DoCmd.OutputTo acOutputReport, "RelatorioClientes", acFormatPDF, Archivito, True


    Franklin, obrigado pelo exemplo Wink
    Creio que a Anna quer fazer com base na consulta cst_fullreport, só que é vaga a informação e não sabemos de que forma está a processar o reporte.

    Anna, será melhor montar um pequeno exemplo com dados de amostragem para se testar, assim fica mais fácil para qualquer membro poder ajudar.

    Abraço a todos
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 31/7/2019, 15:34

    Olá,

    Segue exemplo

    O que eu preciso é que o código abra a consulta cst_fullreport, coloque no campo NumCliente o critério com o número do primeiro cliente, aí abra o relatório fullreport e exporte para o caminho do cliente.

    E depois vá mudando para todos os clientes.
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 479
    Registrado : 25/02/2016

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  FranklinJSP 31/7/2019, 18:11

    Anna

    Espero que seja o que você precisa, se não for... Eu tentei.

    Saludos


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 479
    Registrado : 25/02/2016

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  FranklinJSP 31/7/2019, 21:55

    Alvaro

    Prazer em colaborar

    Saludos!


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Alvaro Teixeira 31/7/2019, 22:38

    Olá a todos,

    Franklin, estamos cá todos pela mesma causa Wink
    Também é um prazer em colaborar e partilhar os conhecimentos.
    Com o MaximoAccess é sempre aprender!

    Ficamos aguardar o retorno da colega Anna que abriu o tópico.

    Abraço a todos
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 31/7/2019, 22:55

    Gente... não funciona de jeito nenhum!!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Alvaro Teixeira 1/8/2019, 17:37

    Olá a todos,

    Franklin, já fez tudo, só falta ajustar um form com um botão e usar o recordset à consulta e com um do while EOF a gerar o repórte para cada registo.

    Se não conseguir, quando tiver oportunidade (com pc) vou exemplificar.

    Abraço a todos
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 3/8/2019, 18:05

    Realmente... não consegui!
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 3/8/2019, 22:23

    Fiz por outro caminho.

    Abri um novo form, baseado na consulta anterior, e fiz um recorset que funcionou sem eu nem saber pq.. mas ta funcionando rs

    Obrigada a todos!! cheers cheers cheers cheers cheers cheers cheers
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Alvaro Teixeira 4/8/2019, 01:42

    Olá a todos,

    Anna, que bom ter conseguido!
    Obrigado pelo retorno.
    Pode partilhar o código do form, assim pode ajudar outros membros com a mesma dúvida.

    Abraço a todos

    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 4/8/2019, 02:41

    A consulta dos clientes que eu quero gerar o report é cst_fullreport
    (ele pesquisa clientes ativos)

    O report é cst_fullreport também, e igualmente o form com base na consulta é cst_fullreport


    O codigo de exportar é:

    Código:
    Public Function Reports()

            DoCmd.OpenForm "cst_fullreport", acNormal
            Sleep (500)
           
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Set db = CurrentDb
                 
        Set rs = db.OpenRecordset("cst_fullreport")            'abre a consulta previamente criada
       
        If rs.RecordCount = 0 Then                          'se não encontra registos avisa e sai
           
            Exit Function
        End If

        rs.MoveFirst                                        'coloca-se no 1º registro

        Do While Not rs.EOF                                'percorre todos os registros



        Call Forms("cst_fullreport").cmdXP_Click
        Sleep (1000)
        DoCmd.GoToRecord acForm, "cst_fullreport", acNext


     DoEvents                                              'manda executar eventos
           
            rs.Edit                                        'edita registo
            rs.Update                                      'atualiza registo
            rs.MoveNext                                    'move para proximo registo
        Loop
           
        rs.Close: Set rs = Nothing                          'fecha recordeset e limpa da memoria
        db.Close: Set db = Nothing                          'fecha base dados e limpa da memoria

    DoCmd.Close acForm, "cst_fullreport"

    End Function
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Alvaro Teixeira 4/8/2019, 22:39

    Olá a todos,

    Anna, obrigado pela partilha.
    Apesar de já ter dado como Resolvido, já tinha iniciado a alteração do seu projeto para demonstrar como pode ser efetuado.

    Fiz algumas alterações ao reporte de forma a ficar mais simples, veja com ateção como foi efetuado.
    Quanto à consulta, também simplifiquei, fazendo uma consulta agrupar pelo tipo de movimento que é o seu filtro e o campo NumCliente que é necessário para o "Recordset".

    Quanto ao código, ficou assim:
    Código:
    Private Sub cmdExportar_Click()

        Dim DB As DAO.Database                                   'dimensionar variaveis
        Dim RS As DAO.Recordset
        Set DB = CurrentDb
            
        Set RS = DB.OpenRecordset("cst_fullreport")              'abre a consulta previamente criada
        
        If RS.RecordCount = 0 Then                               'se não encontra registos avisa e sai
            MsgBox "Nao existe registos para processar.", vbInformation, ""
            Exit Sub
        End If
        
        Dim sNumCliente$, sCaminho$                              'dimensionar variaveis
        
        RS.MoveFirst                                             'coloca-se no 1º registro

        Do While Not RS.EOF                                      'percorre todos os registros
            sNumCliente = RS("NumCliente")                       'atribuir numCliente à variável
            sCaminho = Application.CurrentProject.Path & "\"     'atribuir caminho principal
            sCaminho = sCaminho & sNumCliente                    'atribuir cliente ao caminho
            If Dir(sCaminho, vbDirectory) = "" Then MkDir sCaminho  'abre pasta por nao existir
            DoCmd.OpenReport "fullreport", acViewPreview, , "NumCliente = " & "'" & sNumCliente & "'", acHidden     'abre reporte escondido
            DoCmd.OutputTo acOutputReport, "fullreport", acFormatPDF, sCaminho & "\" & sNumCliente & ".pdf", False  'cria ficheiro
            DoCmd.Close acReport, "fullreport"
            RS.MoveNext                                          'move para proximo registo
        Loop
            
        RS.Close: Set RS = Nothing                               'fecha recordeset e limpa da memoria
        DB.Close: Set DB = Nothing                               'fecha base dados e limpa da memoria

        MsgBox "Operação concluida!", vbInformation, ""
    End Sub

    Nota está a fazer a abertura do reporte escondio para filtrar, pois o  OutputTo não permite filtrar e tinha que adotar outra técnica.
    Assim fica no simples.

    Abraço a todos
    Anexos
    [Resolvido]Exportar Relatórios individuais baseados em consulta AttachmentSoldiHamann DB-Reporte.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (35 Kb) Baixado 31 vez(es)
    annasoldih
    annasoldih
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 170
    Registrado : 24/10/2017

    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  annasoldih 4/8/2019, 22:54

    Teixeira,

    Eu ainda nem entendi como consegui fazer funcionar... Laughing Laughing Laughing Laughing

    Mas vou estudar seu modelo.
    No momento estou em busca de uma solução para pesquisa web... (abri outro tópico)

    Conteúdo patrocinado


    [Resolvido]Exportar Relatórios individuais baseados em consulta Empty Re: [Resolvido]Exportar Relatórios individuais baseados em consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 13:17