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

    Filtro de múltiplos campos

    avatar
    dico seibt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 24/04/2019

    Filtro de múltiplos campos Empty Filtro de múltiplos campos

    Mensagem  dico seibt 12/12/2021, 20:39

    Boa tarde a todos.

    Estou com um problema em um filtro de múltiplos campos que baixei na internet. Não tenho certeza, porque aho que o código estava funcionando bem, mas devo ter feito alguma alteração indevida e meu conhecimento não permite descobrir onde.
    O filtro continua funcionando bem exceto se o critério a filtrar for um dado inexistente na base de dados.
    Aí dá um erro na linha onde tem o comando Me(NomeCampoFoco).SelStart = Len(x & "") (destaquei abaixo.
    A Função é executada no evento ao alterar dos quatro campos 'CmpNomePotreiro, CmpNumBrinco, CmpDescriçãoPelagem e CmpDescrição.

    Public 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

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

    f(0) = IIf(cp(0) = Chr(32), "CmpNomePotreiro is null", "CmpNomePotreiro Like '*" & cp(0) & "*'")
    f(1) = IIf(cp(1) = Chr(32), "CmpNumbrinco is null", "CmpNumbrinco Like '*" & cp(1) & "*'")
    f(2) = IIf(cp(2) = Chr(32), "CmpDescriçãoPelagem is null", "CmpDescriçãoPelagem Like '*" & cp(2) & "*'")
    f(3) = IIf(cp(3) = Chr(32), "CmpDescrição is null", "CmpDescrição Like '*" & cp(3) & "*'")

    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
    If booFiltro Then
    '----------------aqui dá o erro
    Me(NomeCampoFoco).SelStart = Len(x & "")
    '------------------
    Else
    Me(NomeCampoFoco).SetFocus
    End If
    End Function

    Agradeço pela ajuda.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Filtro de múltiplos campos Empty Re: Filtro de múltiplos campos

    Mensagem  DamascenoJr. 14/12/2021, 01:25

    Tópico retirado da sala de repositórios. Lembre-se: repositório são para postagem de exemplos prontos, não podem ser usados para colocação de dúvidas.


    .................................................................................
    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
    dico_seibt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 03/03/2015

    Filtro de múltiplos campos Empty Re: Filtro de múltiplos campos

    Mensagem  dico_seibt 14/12/2021, 02:23

    Damasceno Jr., acho que desatendi regra do Fórum... É isso que quer dizer a tua postagem?
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Filtro de múltiplos campos Empty Re: Filtro de múltiplos campos

    Mensagem  DamascenoJr. 14/12/2021, 03:06

    Exato. Você criou um tópico com uma dúvida em uma sala de repositório. Com isso, movi tal tópico para a sala correta e fiz um alerta sobre o propósito das salas de repositório.


    .................................................................................
    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: 25/9/2022, 15:25