MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Filtragem combinada de duas combo box

    Compartilhe

    llsmigoll
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 15/04/2013

    Filtragem combinada de duas combo box

    Mensagem  llsmigoll em Qui 31 Out 2013, 17:00

    Boa tarde,

    Venho novamente tirar dúvidas relacionadas a filtragem no fórum, desta vez não consigo fazer com que as filtragens se combinem, ou seja, se eu ativar um filtro por combo box, e após, ativar a outra combo, ele não combina. É como se ao ativar uma combo o filtro anterior se desfizesse.

    O código que eu uso, é uma adaptação da função de filtragem para formulário contínuo do Maestro.

    Código:

    Public Function fncFiltrar(NomeCampoFoco As String)
    Dim x As String, filtro As String, strSplit As String
    Dim f(7) As String, cp(7) As Variant
    Dim K As Variant, p As Byte
    Dim booFiltro As Boolean, booPos As Boolean

    x = Me(NomeCampoFoco).Text
    p = 0

    For p = 0 To 6
        cp(p) = IIf(InStr(NomeCampoFoco, "tx" & p + 1) > 0, x, Me("tx" & p + 1))
    Next

    Str (Fun_Matricula)
    cp(5) = Tx6.Column(0)
    cp(6) = Tx7.Column(0)


    f(0) = IIf(cp(0) = Chr(32), "Fun_Matricula is null", "Fun_Matricula Like '*" & cp(0) & "*'")
    f(1) = IIf(cp(1) = Chr(32), "Fun_Nome is null", "Fun_Nome Like '*" & cp(1) & "*'")
    f(2) = IIf(cp(2) = Chr(32), "Car_Nome is null", "Car_Nome Like '*" & cp(2) & "*'")
    f(3) = IIf(cp(3) = Chr(32), "Cdc_Nome is null", "Cdc_Nome Like '*" & cp(3) & "*'")
    f(4) = IIf(cp(4) = Chr(32), "Lid_Nome is null", "Lid_Nome Like '*" & cp(4) & "*'")
    f(5) = IIf(cp(5) = Chr(32), "Lia_Codigo is null", "Lia_Codigo Like '*" & cp(5) & "*'")
    f(6) = IIf(cp(6) = Chr(32), "Lva_Codigo is null", "Lva_Codigo Like '*" & cp(6) & "*'")


    strSplit = Len(cp(0) & "") & "|" & Len(cp(1) & "") & "|" & Len(cp(2) & "") & "|" & Len(cp(3) & "") & "|" & Len(cp(4) & "") & "|" & Len(cp(5) & "") & "|" & Len(cp(6) & "")
    K = Split(strSplit, "|")

    filtro = ""
    p = 0
    For p = 0 To UBound(K)
        If Val(K(p)) > 0 Then
            If booPos = False Then
                filtro = f(p): booPos = True
            Else
                filtro = filtro & " AND " & f(p)
            End If
            booFiltro = True
        End If
    Next p

    Me.Filter = filtro
    Me.FilterOn = booFiltro
    Me(NomeCampoFoco) = x
    If booFiltro Then
        Me(NomeCampoFoco).SelStart = Len(x & "")
    Else
        Me(NomeCampoFoco).SetFocus
    End If
    End Function

    o Nome do formulário é "ConsultaTeste".

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: Filtragem combinada de duas combo box

    Mensagem  Silvio em Qui 31 Out 2013, 17:07

    Boas...

    Pegue o exemplo da segunda mensagem...neste post e adapte-o as necessidades.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    llsmigoll
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 15/04/2013

    Re: Filtragem combinada de duas combo box

    Mensagem  llsmigoll em Qui 31 Out 2013, 17:59

    Silvo boa tarde,

    Exemplo bem simples, creio que precisarei para o meu BD também, mas....

    Não era bem isso que eu estava precisando, a minha combo box serve para filtrar dados de uma consulta,

    O que eu preciso é:

    Duas Combos que combinem seus filtros,

    Eu postei o BANCO, a consulta que tem as duas Combos se chama ConsultaTeste.

    Se puder, de uma olhada por favor.


    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: Filtragem combinada de duas combo box

    Mensagem  Silvio em Seg 04 Nov 2013, 15:51

    Boa tarde Bruno,

    De uma olhada nesse link, aqui do nosso fórum. Na mensagem de número 10 tem um arquivo, abaixe-o, nele tem 2 combos filtradas.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sab 10 Dez 2016, 06:53