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]Filtragem a medida que se digita junto a uma combobox

    avatar
    llsmigoll
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  llsmigoll 23/10/2013, 19:36

    Boa tarde,


    Estou construindo uma aplicação e vou usar filtragens para alguns campos, para isso usei um exemplo no aplicativo Maestro do Avelino Sampaio, do formulário FiltraFormContinuo. No exemplo dele... ele filtra apenas datas e textos, e eu tenho uma combobox para usar como filtro junto as caixas de textos,
    será que temos alguma forma de adaptar a expressão para usar com combobox?


    Código:

    Public Function fncFiltrar(NomeCampoFoco As String)
    Dim x As String, filtro As String, strSplit As String
    Dim f(5) As String, cp(5) 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 4
        cp(p) = IIf(InStr(NomeCampoFoco, "tx" & p + 1) > 0, x, Me("tx" & p + 1))
    Next

    Str (Fun_Matricula)
    Str (Combinação16.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), "Lio_Codigo is null", "Lio_Codigo Like '*" & cp(4) & "*'")

    strSplit = Len(cp(0) & "") & "|" & Len(cp(1) & "") & "|" & Len(cp(2) & "") & "|" & Len(cp(3) & "" & Len(cp(4) & "" & "|"))


    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

    avatar
    Convidado
    Convidado


    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  Convidado 25/10/2013, 02:38

    Creio que na sala de repositório postei um exemplo de carregar uma combo via SQL/Vba ao se digitar...

    De uma pesquisada.

    Cumprimentos.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  Avelino Sampaio 25/10/2013, 07:55

    Olá!

    Creio que não mude nada. Vc chegou a experimentar com a combo ? Algum erro ?

    Tem também esta técnica:

    http://maximoaccess.forumeiros.com/t13223-resolvidoformulario-de-filtro-para-gerar-relatorio

    Caso não consiga, forneça um pequena exemplo para podermos te ajudar mais rápido.

    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidado
    Convidado


    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  Convidado 25/10/2013, 12:36

    Não encontrei o tópico mas o exemplo é este:

    https://dl.dropboxusercontent.com/u/26441349/CarregaCboFiltrada.zip

    Cumprimentos.
    avatar
    llsmigoll
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  llsmigoll 26/10/2013, 01:38

    Pessoal obrigado pela ajuda, consegui adaptar a minha aplicação para usar com a combo e campos numéricos, para isso alterei o campo de Integer para String e usei a coluna uma da combo para filtragem dos dados, tirando uma variável do vetor P do loop.


    Código:



    Public Function fncFiltrar(NomeCampoFoco As String)
    Dim x As String, filtro As String, strSplit As String
    Dim f(5) As String, cp(5) 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 4
        cp(p) = IIf(InStr(NomeCampoFoco, "tx" & p + 1) > 0, x, Me("tx" & p + 1))
    Next

    Str (Fun_Matricula)
    Str (Lio_codigo)

    cp(4) = Tx5.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) = Int(32), "Lio_codigo is null", "Lio_codigo Like " & cp(4) & "")

    strSplit = Len(cp(0) & "") & "|" & Len(cp(1) & "") & "|" & Len(cp(2) & "") & "|" & Len(cp(3) & "") & "|" & Len(cp(4) & "")
    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
    Agradeço pelas respostas e também para contribuição valiosa do site para o aprendizado de access.
    avatar
    Convidado
    Convidado


    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  Convidado 26/10/2013, 12:13

    O Fórum agradece o Retorno.

    Conteúdo patrocinado


    [Resolvido]Filtragem a medida que se digita junto a uma combobox Empty Re: [Resolvido]Filtragem a medida que se digita junto a uma combobox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 14:09