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


2 participantes

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  rg3915 22/4/2014, 17:58

    Baseado no artigo Aprenda sobre filtragens do nosso amigo Avelino e no seu programa Maestro, eu queria saber como eu faço para localizar e filtrar os dados em três campos ao mesmo tempo.

    Ou seja, tenho os campos NOrc (número do orçamento), Cliente e Obra. Eu queria ter apenas um campo de busca, onde eu pudesse digitar qualquer coisa (número ou texto) e ele filtrasse nos 3 campos ao mesmo tempo. Entenderam? No Maestro eu tenho um filtro para cada campo, mas eu quero um filtro só para 3 campos.

    Segue o código no Maestro:

    Código:
    Private Function fncFiltrar(NomeCampoFoco As String)

    Dim x As String, filtro As String, strSplit As String
    Dim f(4) As String, cp(4) As Variant
    Dim k As Variant, p As Byte
    Dim booFiltro As Boolean, booPos As Boolean
    Dim strCliente As String

    On Error Resume Next
    x = Me(NomeCampoFoco).Text: p = 0
    For p = 0 To 2
        cp(p) = IIf(InStr(NomeCampoFoco, "tx" & p + 1) > 0, x, Me("tx" & p + 1))
    Next

    If intAno = 10 Then
        f(0) = "Orc Like '" & cp(0) & "*'"
        f(1) = IIf(cp(1) = Chr(32), "NomeDoCliente is null", "NomeDoCliente Like '*" & cp(1) & "*'")
        f(2) = IIf(cp(2) = Chr(32), "NomeDaObra is null", "NomeDaObra Like '*" & cp(2) & "*'")

    strSplit = Len(cp(0) & "") & "|" & Len(cp(1) & "") & "|" & Len(cp(2) & "") & "|" & Len(cp(3) & "")
    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

    On Error Resume Next
    If booFiltro Then
        Me(NomeCampoFoco).SelStart = Len(x & "")
    Else
        Me(NomeCampoFoco).SetFocus
    End If

    End Function
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  Fernando Bueno 22/4/2014, 21:09

    Pode ser dessa forma no evento ao alterar da caixa de texto
    Código:
    Dim C As String, X As String
    X = Me.Sua_Caixa_De_Texto.Text
    C = " where NOrc like '*" & X & "*' or Cliente like '*" & X & "*' or Obra like '*" & X & "*'"
    Me.Subformulário.Form.RecordSource = "select * from Sua_Tabela" & C
    End Sub


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Filtrando em mais de um campo ao mesmo tempo 16rzeq
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  rg3915 22/4/2014, 21:29

    Fernando eu já havia tentado assim, mas ele só aceita um caractere no Evento Ao Alterar, não deixa eu digitar mais coisas.
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  Fernando Bueno 22/4/2014, 21:41

    Veja esse..


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Filtrando em mais de um campo ao mesmo tempo 16rzeq
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  rg3915 22/4/2014, 21:58

    Fernando, agora deu certo, eu troquei

    Código:
    f(0) = "Orc Like '" & cp(0) & "*'"
    f(1) = IIf(cp(1) = Chr(32), "NomeDoCliente is null", "NomeDoCliente Like '*" & cp(1) & "*'")
    f(2) = IIf(cp(2) = Chr(32), "NomeDaObra is null", "NomeDaObra Like '*" & cp(2) & "*'")

    Por

    Código:
    f(0) = "Orc Like '" & cp(0) & "*' OR NomeDoCliente Like '*" & cp(0) & "*' OR NomeDaObra Like '*" & cp(0) & "*'"

    Valeu pela ajuda.
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  Fernando Bueno 22/4/2014, 22:16

    Por nada amigo, agradecemos o retorno!


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Filtrando em mais de um campo ao mesmo tempo 16rzeq

    Conteúdo patrocinado


    [Resolvido]Filtrando em mais de um campo ao mesmo tempo Empty Re: [Resolvido]Filtrando em mais de um campo ao mesmo tempo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 15:42