MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Compartilhe
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 12/12/2018, 11:18

    Bom dia!
    Possuo um formulário frmRota (inclusive foram vocês que me ajudaram a montá-lo). Neste formulário existe uma tabela que é filtrada por vários ComboBox. Até aí está funcionando perfeitamente, porém muitas vezes eu preciso selecionar mais de um campo por ComboBox e não estou conseguindo achar nenhuma opção que permita selecionar várias opções. É possível?
    Desde já obrigado!


    Segue link do projeto:
    http://alantaru.000webhostapp.com/BANCO_DE_DADOS/MAIS_DE_UM_CAMPO.zip


    Última edição por alantaru em 17/12/2018, 09:12, editado 2 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 651
    Registrado : 13/12/2016

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  Alexandre Fim em 12/12/2018, 11:39

    Bom dia Alan,

    Por gentileza, especifique qual combo deseja selecionar ais de um item.

    GRato
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 12/12/2018, 11:51

    No formulário frmRota, todos os combos.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 651
    Registrado : 13/12/2016

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  Alexandre Fim em 12/12/2018, 12:08

    ok...
    vou verificar
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 651
    Registrado : 13/12/2016

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  Alexandre Fim em 12/12/2018, 12:15

    Alan,

    Pra que as caixas de combinação apareçam com checkboxes para selecionar 1 ou mais itens, é necessário criar tabela com um campo que tenha tipo de dados do Assistente de pesquisa. Insira alguns valores e marque a caixa "Permitir vários valores". Isso configura um campo com vários valores.

    Boa sorte
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 12/12/2018, 12:17

    Desculpe, não entendi. Embarassed
    Como faço isso?
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 13/12/2018, 09:29

    alguém teria algum exemplo ou link de algo parecido? Sou inexperiente no Access, não estou conseguindo encontrar.
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  IvanJr. em 13/12/2018, 12:29

    Veja
    Anexos
    exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (25 Kb) Baixado 20 vez(es)
    avatar
    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 113
    Registrado : 28/08/2016

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  JIR em 13/12/2018, 16:45

    Olá Boa Tarde,

    desculpem a minha intromissão

    aqui fica mais um exemplo, em cada comb pode selecionar  quantos item's necessitar e na parte inferior irá aparecer cada item selecionado que mostrará na lista


    JSilva
    Anexos
    FiltroMultiplaSelecao.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (275 Kb) Baixado 16 vez(es)
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 13/12/2018, 19:05

    IvanJr.
    Seu modelo é exatamente o que eu preciso, só tem um porém:
    No meu código, a Caixa de Combinação executa o seguinte código ao receber foco:

    Código:
    Private Sub cboEmpresa_GotFocus()
        Me.ActiveControl.RowSource = fncMontaRowSource(Me.ActiveControl.Name)
    End Sub

    Que leva para esta função:
    Código:
    Private Function fncMontaRowSource(strComboNome As String) As String
        Dim strFiltro As String
        Dim ctl As Control
       
        For Each ctl In Me.Controls
            If ctl.ControlType = acComboBox Then
                If ctl.Name <> strComboNome And Not IsNull(ctl.Value) Then
                    Select Case ctl.Name
                        Case "cboEmpresa", "cboPlantaInstalada", "cboDeptoAlmox", "cboRua", "cboStatus", "cboModelo", "cboPorcentagemToner2", "cboHorario"
                            strFiltro = strFiltro & fncNomeCampoTab(ctl.Name) & " = '" & ctl.Value & "' And "
                        Case "cboContrato", "cboProtocolo"
                            strFiltro = strFiltro & fncNomeCampoTab(ctl.Name) & " = " & ctl.Value & " And "
                        Case "cboDataEntrega"
                            strFiltro = strFiltro & fncNomeCampoTab(ctl.Name) & " = #" & Format(ctl.Value, "mm/dd/yyyy") & "# And "
                    End Select
                End If
            End If
        Next ctl
       
        If strFiltro <> "" Then strFiltro = "where " & Left(strFiltro, Len(strFiltro) - 5) & " "
       
        fncMontaRowSource = "select distinct " & fncNomeCampoTab(strComboNome) & " from tabRota " & strFiltro & "order by " & fncNomeCampoTab(strComboNome) & ";"

    End Function

    Essa função faz com que os dados apareçam um por um na Caixa de Combinação.
    Para permitir aquele checkbox com múltiplas escolhas, eu precisaria colocar item por item na Caixa de Combinação separado por ponto e vírgula na propriedade "Origem da linha", estou certo? É isso que não estou conseguindo fazer.

    No seu exemplo, a Caixa de Combinação "Categoria" está assim:
    Origem da Linha: VERMELHO;AZUL;ROXO;AMARELO;PRETO;BRANCO
    Tipo de Origem da Linha: Lista de valores


    Nessa Origem da Linha que eu queria colocar os valores.
    Minhas Caixas de Combinação no frmRota estão assim:
    Origem da Linha: (vazio)
    Tipo de Origem da Linha: Tabela/Consulta


    Espero ter explicado bem.
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 15/12/2018, 08:43

    Acho que compliquei a explicação acima.
    Resumindo: os combos do meu formulário frmRota filtram os itens e os exibe em forma de lista para o usuário escolher apenas um.
    Eu queria saber como permitir que o usuário possa escolher mais de um item dentro desses combos (já que o combo esta filtrando esses itens por meio de codigo)
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  IvanJr. em 15/12/2018, 21:54

    Não consigo pensar em outra coisa senão indicar que refaça seu formulário trocando comboboxes por listboxes onde nelas seja permitido múltiplas seleções. Talvez outros colegas tenham outras dicas.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 15/12/2018, 23:12

    Também pensei nessa opção, mas como seria possível popular os listboxes e usá-los para filtrar a tabela? Tem jeito? Pensei que só se podia fazer isso com comboboxes.
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  IvanJr. em 16/12/2018, 02:12

    Um dos mandamentos de python diz que "Simples é melhor do que complexo". Não vejo porque não estender também para MS Access/VBA

    Para o que pretendes, talvez o melhor mesmo seja usar o recurso nativo do Access. Exclua suas comboboxes e use seu subformulário no modo folha de dados que tudo fica resolvido.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    alantaru
    alantaru
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 04/10/2018

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  alantaru em 16/12/2018, 20:19

    OK, vou fazer isso.
    Muito obrigado pela ajuda! Marquei como respondido.


    Última edição por Alexandre Neves em 16/12/2018, 20:42, editado 1 vez(es) (Razão : Título alterado: de '[RESPONDIDO]Filtrar Tabela Marcando mais de uma opção por ComboBox' para 'Filtrar Tabela Marcando mais de uma opção por ComboBox')
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtrar Tabela Marcando mais de uma opção por ComboBox

    Mensagem  Alexandre Neves em 16/12/2018, 21:00

    Boa noite,
    Não altere o título
    Par dar por resolvido, prima o botão "Resolvido" do formulário do fórum


    .................................................................................
    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: 25/3/2019, 04:18