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

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Empty [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Mensagem  Marcos Minoru 3/9/2014, 18:22

    Preciso de ajuda para filtrar um sub-relatório que faz parte de um relatório principal.

    No arquivo anexado, o form PRINCIPAL exemplifica o problema que não estou conseguindo resolver.
    Na parte relatório "Clientes", ele filtra o relatório Clientes normalmente, os clientes selecionados na listbox.

    Ja na parte "RltPrincipal", não está filtrando, me retornando todos os clientes. Isso acontece, acredito que porque na realidade devo informar que o filtro deve ser aplicado no sub-relatório "SubRltClientes" e não no "RltPrincipal". O problema é como devo fazer isso.




    Conto com o conhecimento de alguém...
    Anexos
    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal AttachmentFiltro em relatório com sub-relatório.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (74 Kb) Baixado 29 vez(es)


    Última edição por marcosminoru em 5/9/2014, 04:36, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Empty Re: [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Mensagem  Alexandre Neves 3/9/2014, 20:04

    Boa tarde,
    Não precisa de sub-relatório. Coloque os campos directamente no relatório


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Empty Re: [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Mensagem  Marcos Minoru 4/9/2014, 00:44

    Alexandre, preciso do relatório dessa forma mesmo, pois preciso manter o cabeçalho ocupando a folha toda e o sub-relatório dividido em 2 colunas.
    O Access aplica a divisão de coluna para a página toda, então o cabeçalho fica dividido também. Esse assunto já foi abordado em outro tópico.
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Empty Re: [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Mensagem  Marcos Minoru 4/9/2014, 01:53

    Galera, esse problema foi resolvido pelo nosso amigo Avelino Sampaio.

    Explicando:
    Quando o filtro é aplicado em um relatório acoplado (à uma tabela) e sem sub-relatório. Ele aplica o filtro normalmente, afinal o único relatório possui uma fonte de registro que é a "TblClientes".
    Agora, se aplicarmos o filtro à um relatório não acoplado (RltPrincipal) e com sub-relatório (SubRltClientes), o filtro não atuará. Por quê? Porque o filtro está sendo aplicado no relatório principal e como ele não é acoplado a nenhuma fonte de registro, simplesmente ele não terá nenhum registro para filtrar.
    O que precisamos neste caso, é dizer que o filtro precisa ser aplicado no sub-relatório, esse que possui a fonte de registro na "TblClientes". E como fazer isto? Vejamos abaixo:

    Resolução:
    Deve ser criada uma CONSULTA simples a partir da "TblClientes" com o campo "Código". Definir o CRITÉRIO da consulta: In (-33)
    Depois deve-se ir ao sub-relatório e definir em propriedades a fonte de registro com o nome da consulta criada.

    E no botão (BtnFiltrar2) fazer a seguinte alterações:

    Private Sub BtnFiltrar2_Click()
    Dim varItm As Variant
    Dim ss As String
    Dim strSql As String
    Dim qry As QueryDef

      ss = "-33"
      For Each varItm In Me.LstClientes2.ItemsSelected
          ss = ss & ", " & Me.LstClientes2.ItemData(varItm)
      Next varItm
     
      ss = "Código IN (" & ss & ")"

    '---------------------------------------------------------------------------------
    'Esta parte remonta a escrita da consulta gráfica, incorporando os itens selecionados.
    '----------------------------------------------------------------------------------    
    strSql = "SELECT * FROM tblClientes WHERE [x];"
    strSql = Replace(strSql, "[x]", ss) 'anexa o filtro a escrita
    Set qry = CurrentDb.QueryDefs("QryClientes") 'Passa a consulta para variável
    qry.SQL = strSql 'reescreve a consulta com o filtro atual
    '-------------------------------------------------------------------------

    DoCmd.OpenReport "RltPrincipal", acViewPreview
    End Sub


    Pronto! Problema resolvido!
    Para exemplo prático, segue o arquivo resolvido anexado.





    Obrigados à todos. Principalmente ao Mestre Avelino.
    Anexos
    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Attachment[RESOLVIDO]Filtro em relatório com sub-relatório.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (70 Kb) Baixado 105 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    [Resolvido] Aplicar filtro em sub-relatório do relatório Principal Empty Re: [Resolvido] Aplicar filtro em sub-relatório do relatório Principal

    Mensagem  Alexandre Neves 4/9/2014, 11:57

    Bom dia,
    Ainda bem que resolveu,
    Marque o Resolvido


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 12/4/2021, 02:39