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]Filtro Grupos de Opções Combinados

    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 23/3/2021, 14:00

    Bom dia!
    Eu tenho um formulário com dois grupos de opções - filtros, um se chama FiltroEntrevistador e o outro FiltroStatus.
    Ambos funcionam porém independente um do outro. Ambos os Filtros tem a opção "TODOS".
    Gostaria de fazer com que ambos se relacionassem.
    Não sei se mudo algo nestes códigos ou se deve ser criado um terceiro. Enfim, sou novo nesse negócio e peço ajuda.
    Grato,
    Marco.

    Segue código dos dois filtros:

    Private Sub FiltroEntrevistador_AfterUpdate()

    If FiltroEntrevistador = 1 Then
    Me.FilterOn = False

    Else
    If FiltroEntrevistador = 2 Then
    Me.Filter = "Entrevistador = 'LILIAN'"
    Me.FilterOn = True
    End If
    If FiltroEntrevistador = 3 Then
    Me.Filter = "Entrevistador = 'REZENDE'"
    Me.FilterOn = True
    End If

    End If
    End Sub
    ________________________________________
    Private Sub FiltroStatus_AfterUpdate()

    If FiltroStatus = 1 Then
    Me.FilterOn = False

    Else
    If FiltroStatus = 2 Then
    Me.Filter = "Status_da_Entrevista = '2' "
    Me.FilterOn = True
    End If
    If FiltroStatus = 3 Then
    Me.Filter = "Status_da_Entrevista = '1' "
    Me.FilterOn = True
    End If
    If FiltroStatus = 4 Then
    Me.Filter = "Status_da_Entrevista = '3' "
    Me.FilterOn = True
    End If

    End If
    End Sub
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1814
    Registrado : 23/01/2018

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  crysostomo 24/3/2021, 22:51

    como assim ambos se relacionem ?


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 25/3/2021, 13:58

    Hoje da forma como estão, eles funcionam independentes. Ou seleciono Entrevistador com Status em outros, ou seleciono Status com Entrevistador em outros. Desta forma eles funcionam, de outra forma o resultado fica errado.

    O que desejo:
    Quando eu clicar no filtro entrevistador e selecionar o entrevistador, o formulário abre apenas os registros das suas entrevistas e se após eu clicar no filtro Status, o filtro seleciona daquele entrevistador do filtro 1, quais são as entrevistas com o status selecionado no filtro 2, e vice versa...

    Desta forma conseguirei exibir por Entrevistador, os Status das entrevistas desse, após seleção no filtro 1 e 2 e vice versa.

    É como se um filtro fosse o escravo do outro, ou subfiltro.

    Ex: Entrevistador REZENDE, Status 3

    Para entendimento: Status 1 = Agendada, 2 = Pendente, 3 = Finalizada

    Não sei se consegui ser claro, peço ajuda.

    Obrigado pela atenção.
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1814
    Registrado : 23/01/2018

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  crysostomo 26/3/2021, 00:39

    Se você tem o relacionamento de bancos esse ajuda
    Código:
    DoCmd.OpenForm "AreaDoEntrevistador", , , "Entrevistaor= """ & Me!colunaEntrevistador.Column(1) & """"
    Se não for , coloque o Bd aqui


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  DamascenoJr. 26/3/2021, 09:38

    Marco, basta procurar no fórum por "filtros dependentes" ou "filtros em cascata". Este assunto é constantemente tocado aqui.

    https://www.maximoaccess.com/search


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 26/3/2021, 20:51

    Pesquisei, tentei alguns códigos, mas não consegui fazer funcionar os dois filtros em cascata.

    O que desejo:
    Quando eu clicar no filtro entrevistador e selecionar o entrevistador, o formulário abre apenas os registros das suas entrevistas e se após eu clicar no filtro Status, o filtro seleciona daquele entrevistador do filtro 1, quais são as entrevistas com o status selecionado no filtro 2, e vice versa...

    Segue arquivo BD.

    Obrigado.
    Anexos
    [Resolvido]Filtro Grupos de Opções Combinados AttachmentPesquisa.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (93 Kb) Baixado 23 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  DamascenoJr. 27/3/2021, 15:57

    Função criada para ser colocada junto do código do formulário
    Código:
    Private Sub FavorFiltrar()

        Dim strFiltro As String

        If Me!FiltroEntrevistador.Value = 1 And Me!FiltroStatus.Value = 1 Then
            Me.Filter = ""
            Me.FilterOn = False
        Else
       
            If Me!FiltroEntrevistador.Value > 1 Then
                strFiltro = "Entrevistador = """ & Choose(Me!FiltroEntrevistador.Value - 1, "LILIAN", "REZENDE") & """"
            End If
           
            If Me!FiltroStatus.Value > 1 Then
                If strFiltro <> "" Then strFiltro = strFiltro & " And "
                strFiltro = strFiltro & "Status_da_Entrevista = """ & Choose(Me!FiltroStatus.Value - 1, 2, 1, 3) & """"
            End If
           
            Me.Filter = strFiltro
            Me.FilterOn = True
           
        End If

    End Sub

    Eventos que chamam o código
    Código:
    Private Sub FiltroEntrevistador_AfterUpdate()
        Call FavorFiltrar
    End Sub
    Private Sub FiltroStatus_AfterUpdate()
        Call FavorFiltrar
    End Sub


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Marco Rezende gosta desta mensagem

    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 29/3/2021, 15:00

    Excelente!

    Agradeço demais, funcionou perfeitamente, porém identifiquei uma situação que só percebi na prática:

    Supondo que não há registro encontrado na combinação das duas seleções, é possível exibir uma caixa de mensagem "Registro não encontrado", sendo que ao clicar no OK da mensagem, a tela retorna o filtro para a condição todos, tanto quando não localizado no filtro Status, como no entrevistador?

    Por exemplo: Não existe registro do Entrevistador "Rezende" com o Status "1" (no caso agendado).

    Aparece a mensagem e ao clicar em OK, o filtro Status retorna para a condição todos.

    Da forma como está o formulário parece que fecha, fica tela em branco sem nenhuma informação e opção de voltar.

    Mais uma vez agradeço se puder me ajudar com isso.
    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 29/3/2021, 19:43

    Desculpe a falta de previsibilidade da situação.

    Eu entendi o código, porém não sei como colocar esta condicional.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  DamascenoJr. 30/3/2021, 04:08

    Código:
    Private Sub FiltroEntrevistador_AfterUpdate()

        dim objrs as dao.recordset
        dim j as boolean

        Call FavorFiltrar

        set objrs = me.recordsetclone
        j = (objrs.recordcount = 0)
        set objrs = nothing

        if j = true then
            me!FiltroEntrevistador.value = 1
            call FiltroEntrevistador_AfterUpdate
        end if

    End Sub


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Marco Rezende gosta desta mensagem

    avatar
    Marco Rezende
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 19/03/2021

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  Marco Rezende 30/3/2021, 14:01

    Cara, muito obrigado.

    Ficou muito legal.

    Adicionei ainda ao seu código uma mensagem informando que entrevistado não possui registro com este status, seleção automática para Todos.

    Estou aprendendo muito.

    Valeu mesmo.

    Abração.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3063
    Registrado : 22/11/2016

    [Resolvido]Filtro Grupos de Opções Combinados Empty Re: [Resolvido]Filtro Grupos de Opções Combinados

    Mensagem  DamascenoJr. 31/3/2021, 02:47

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 21/9/2021, 03:56