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


5 participantes

    [Resolvido]Filtro em Combobox

    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtro em Combobox - Página 1 Empty Filtro em Combobox

    Mensagem  CassioFabre 28/10/2016, 10:19

    Bom dia,

    A solução postada por mim funciona. Segue em anexo um exemplo que montei aqui de forma bem simples. Adapte ao seu projeto.

    Código que utilizei no evento Após Atualizar da combo:

    Código:
    Dim strSql As String
        
        If IsNumeric(cbxNome) = True Then
            If Not IsNull(cbxNome) = True Then
                strSql = "select * from tblNome where matricula like '*" & cbxNome & "*'"
            Else
                strSql = "Select * from tblNome"
            End If
        Else
            If Not IsNull(cbxNome) = True Then
                strSql = "select * from tblNome where nome like '*" & cbxNome & "*'"
            Else
                strSql = "Select * from tblNome"
            End If
        End If
        
        cbxNome.RowSource = strSql
        cbxNome.Requery
        cbxNome.Dropdown

    Faça o teste digitando parte do nome e depois digitando parte da matrícula.

    Abraço.
    Anexos
    [Resolvido]Filtro em Combobox - Página 1 Attachmentcombo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (39 Kb) Baixado 170 vez(es)
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  vailson 28/10/2016, 13:35

    Bom dia, A solução postada por mim funciona. Segue em anexo um exemplo que montei aqui de forma bem simples. Adapte ao seu projeto. Código que utilizei no evento Após Atualizar da combo: CÓDIGO: Dim strSql As String If IsNumeric(cbxNome) = True Then If Not IsNull(cbxNome) = True Then strSql = "select * from tblNome where matricula like '*" & cbxNome & "*'" Else strSql = "Select * from tblNome" End If Else If Not IsNull(cbxNome) = True Then strSql = "select * from tblNome where nome like '*" & cbxNome & "*'" Else strSql = "Select * from tblNome" End If End If cbxNome.RowSource = strSql cbxNome.Requery cbxNome.Dropdown Faça o teste digitando parte do nome e depois digitando parte da matrícula. Abraço. escreveu:

    Bom dia, o seu exemplo não funcionou, inclusive o do seu arquivo em enexo.
    Mesmo assim obrigado!
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtro em Combobox - Página 1 Empty Filtro em Combobox

    Mensagem  CassioFabre 28/10/2016, 13:47

    Bom dia,

    Bom, aqui está funcionando conforme os prints abaixo.

    [Resolvido]Filtro em Combobox - Página 1 28m2p6s
    Padrão conforme exemplo que você passou.

    --------------
    [Resolvido]Filtro em Combobox - Página 1 347uz6b
    Pesquisando com o trecho "ana" e retornando os nomes cadastrados que contenham este trecho.

    --------------
    [Resolvido]Filtro em Combobox - Página 1 5po0w0
    Pesquisando pelo numero de matricula e não exibindo os que não o contém.

    A não ser que não seja esse seu objetivo, está funcionando corretamente.

    Abraço.
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  vailson 28/10/2016, 14:09

    Então, por incrível que pareça não funciona aqui. Mas de toda sorte, estou enviando o modelo. Lembrando que no seu exemplo, utiliza a tabela como fonte dos dados. Precisa ser através de uma consulta.
    Agradeço a atenção.
    Anexos
    [Resolvido]Filtro em Combobox - Página 1 Attachmentexemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 44 vez(es)
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtro em Combobox - Página 1 Empty Filtro em Combobox

    Mensagem  CassioFabre 28/10/2016, 15:51

    Boa tarde,

    Realmente o código funciona sim. Segue o que fiz e em anexo o seu exemplo funcionando.

    Retirei da comb_efet a propriedade Origem da Linha. No evento Ao Abrir do formulário, inseri o seguinte código:

    Código:
    Me.comb_efet.RowSource = "select idpm from cons_nomepm"
    comb_efet.Requery

    No evento Após Atualizar da comb_efet só retirei a função que filtra a consulta, isso não é necessário. Então ficou da seguinte forma:

    Código:
       Dim strsql As String
        
        If Not IsNull(comb_efet) = True Then
            strsql = "select idpm from cons_nomepm where idpm like '*" & comb_efet & "*'"
            
            comb_efet.RowSource = strsql
            comb_efet.Requery
            comb_efet.Dropdown
        Else
            comb_efet.RowSource = "select idpm from cons_nomepm"
            comb_efet.Requery
        End If

    E ai é só testar.

    Abraço.
    Anexos
    [Resolvido]Filtro em Combobox - Página 1 Attachmentexemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (86 Kb) Baixado 107 vez(es)
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  vailson 30/10/2016, 22:10

    Cassio Fabre, o exemplo tá funcionando. Ocorre que só filtra após clicar enter ou tab. É possível o filtro ficar igual ao formato original, destacando um nome durante a digitação?
    Obrigado
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtro em Combobox - Página 1 Empty Filtro em Combobox

    Mensagem  CassioFabre 31/10/2016, 12:50

    Bom dia,

    Neste caso seria melhor você usar o controle ListBox com um campo de text como filtro atualizando a ListBox no evento Ao Alterar da campo de texto.

    Abraço.
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  Celso Roberto 1/11/2016, 02:14

    Boas...

    Com a licença do amigo CassioFabre

    O código do cassio esta no evento após atualizar, para que se filtre ao digitar teria que estar no evento ao alterar.
    Teste este código abaixo no evento ao alterar

    Código:
    Private Sub comb_efet_Change()
    Me.comb_efet.RowSourceType = "Table/Query"
    Me.comb_efet.RowSource = "SELECT idpm FROM cons_nomepm WHERE idpm LIKE '*" &    Me.comb_efet.Text & "*'"
    Me.comb_efet.Dropdown
    End Sub
     

    Vailson, quando efetuamos filtragem ao digitar por vezes se perde a possibilidade de selecionar com as setas para cima e para baixo, só possibilita selecionar com o mouse.
    Então use este código abaixo no evento ao apertar a tecla para te possibilitar quando filtrar e quiser correr a lista com a seta para cima e para baixo.

    Código:
    Private Sub comb_efet_KeyDown(KeyCode As Integer, Shift As Integer)
     Me.comb_efet.Dropdown
        Select Case KeyCode
        Case vbKeyDown
          Me.comb_efet = Me.comb_efet.ItemData(Me.comb_efet.ListIndex + 1)
          KeyCode = 0
        Case vbKeyUp
          Me.comb_efet = Me.comb_efet.ItemData(Me.comb_efet.ListIndex - 1)
          KeyCode = 0
        Case Else
        End Select
    End Sub


    Espero que ajude

    Abraços







    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtro em Combobox - Página 1 Empty Filtro em Combobox

    Mensagem  CassioFabre 1/11/2016, 09:30

    Bom dia,

    Perfeito Celso. Eu coloquei aqui também no evento Ao Alterar, mas por algum motivo estava recebendo um erro. Algo como "é necessário atualizar o campo antes de refazer a consulta", ou algo assim. Não faço ideia do porquê. Acredito que talvez não fosse necessário utilizar o .Requery na combo. De qualquer maneira, está funcionando perfeitamente, acredito que exatamente como o autor do tópico necessita.

    Abraço.
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  vailson 1/11/2016, 15:50

    Solução perfeita. Obrigado!

    Essa poderia ir para o repositório.
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  Celso Roberto 1/11/2016, 19:51

    Olá...

    Que bom que tenha dado certo e obrigado pela sugestão, vou disponibilizar sim
    O Fórum agradece seu retorno.

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    [Resolvido]Filtro em Combobox - Página 1 Empty Re: [Resolvido]Filtro em Combobox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 16:31