MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Exportar Relatórios individuais baseados em consulta

    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 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 100%

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

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

    Mensagem  FranklinJSP em 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) (Razão : :))


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

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 31/7/2019, 14:54

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

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em 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
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 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 100%

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

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

    Mensagem  FranklinJSP em 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 100%

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

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

    Mensagem  FranklinJSP em 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"
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em 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
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 31/7/2019, 22:55

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

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em 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
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 3/8/2019, 18:05

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

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 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
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em 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

    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 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
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em 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 22 vez(es)
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  annissima em 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)

      Data/hora atual: 22/1/2021, 10:57