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]filtro em formulario

    avatar
    jrm
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 10/08/2012

    [Resolvido]filtro em formulario Empty filtro em formulario

    Mensagem  jrm 21/9/2012, 23:31

    Ola mesters mais uma vez estou de volta com uma duvida, e mais uma vez necessito da vossa sabedoria.
    Então é assim tenho uma macro que filra registos em um formulario continuo, nesse formulario eu tenho cerca de 10 campos e necessito de filtar por 5 deles: nome, nºbrigada. local, desnegocio, entassoc, então eu criei o codigo abaixo, com as devidas adaptações para cada um dos campos "filtro" Tx1 tx2, tx3,tx5,tx5 , mas não esta dando certo, não consigo perceber o que esta errado, é ai que preciso de vossa ajuda. este codigo é para o filtro de "desnegocio" usando tx4 como filtro

    Private Sub tx4_Change()
    j = 0
    x = Me!tx4.Text
    If Len(Me!tx4.Text & "") > 0 Then j = j + 1
    If Len(Me!tx5 & "") > 0 Then j = j + 2
    If Len(Me!tx3 & "") > 0 Then j = j + 3
    If Len(Me!tx2 & "") > 0 Then j = j + 4
    If Len(Me!tx1 & "") > 0 Then j = j + 5
    Select Case j
    Case 0
    Me.Filter = ""
    Me.FilterOn = False
    Me!tx4.SetFocus
    Exit Sub
    Case 1
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*'"
    ' Case 2
    ' filtro = "cli_local Like '*" & Me!tx3 & "*'"
    Case 3
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_Entassoc Like '*" & Me!tx5.Text & "*'"
    Case 4
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*'"
    Case 5
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_nome Like '*" & Me!tx2 & "*'"
    Case 6
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_Entassoc Like '*" & Me!tx5 & "*' and cli_local Like '*" & Me!tx3 & "*'or cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 7
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_nome Like '*" & Me!tx2 & "*' and cli_Entassoc Like '*" & Me!tx5 & "*'"
    Case 8
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_Nome Like '*" & Me!tx2 & "*' and cli_local Like '*" & Me!tx3 & "*'or cli_Entassoc Like '*" & Me!tx5.Text & "*' AND cli_DesNegocio Like '*" & Me!tx4 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 9
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'or cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 10
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_nome Like '*" & Me!tx2 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'or cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_Entassoc Like '*" & Me!tx5 & "*' and cli_local Like '*" & Me!tx3 & "*'or cli_Nome Like '*" & Me!tx2 & "*'"
    Case 11
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*' and cli_entassoc Like '*" & Me!tx5 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 12
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_entassoc Like '*" & Me!tx5 & "*' and cli_nome Like '*" & Me!tx2 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 13
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*' and cli_nome Like '*" & Me!tx2 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    'Case 14
    'filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_local Like '*" & Me!tx3 & "*' and cli_nome Like '*" & Me!tx2 & "*' and cli_NºBrigada Like '*" & Me!tx1 & "*'"
    Case 15
    filtro = "cli_DesNegocio Like '*" & Me!tx4.Text & "*' AND cli_entassoc Like '*" & Me!tx5 & "*' and cli_local Like '*" & Me!tx3 & "*' and cli_nome Like '*" & Me!tx2 & "*' cli_NºBrigada Like '*" & Me!tx1 & "*'"


    End Select
    Me.Filter = filtro
    Me.FilterOn = True
    Me!tx4 = x
    Me!tx4.SelStart = Len(x & "")
    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  Avelino Sampaio 22/9/2012, 10:36

    Ola

    A soma do J está em conflito.

    Exemplo: O resultado de J = 8 poderá ser então a combinação dos campos:

    tx2, tx3 e tx4

    ou

    tx1 e tx3

    Segue uma nova combinação para não haver conflito.

    If Len(Me!tx4.Text & "") > 0 Then j = j + 1
    If Len(Me!tx5 & "") > 0 Then j = j + 2
    If Len(Me!tx3 & "") > 0 Then j = j + 4
    If Len(Me!tx2 & "") > 0 Then j = j + 8
    If Len(Me!tx1 & "") > 0 Then j = j + 16
    ...

    Vc tem para o SELECT a seguinte sequência:

    0 a 31

    Vc teria então 32 combinações e não 16

    Sucesso!




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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 10/08/2012

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  jrm 23/9/2012, 12:50

    Bom dia Avelino e Obrigado pela ajuda, ja percebi que esta a esquecer todas as combinações possiveis.
    Sera que existe uma forma mais simples de fazer este codigo?
    por exemplo usando um ciclo for? ou um do loop until?
    se me podesse ajudar agradecia, o objectivo +é que num formulario o utilizador possa aplicar varias fltros em simultaneo, sendo que o filtro devera poder ser feito com qualuer parte do compo.
    Obrigado
    mais uma vez
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  Avelino Sampaio 24/9/2012, 11:59

    OLá

    Veja se a solução do amigo Minato, atende ao seu caso:

    http://www.alexandreminato.com.br/category/VBA.aspx

    Bom estudo!


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 10/08/2012

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  jrm 25/9/2012, 23:27

    Boa Noite Mestre Avelino,
    estou usando uma criação sua (maestro v3) para adaptação a outras funcionalidades, pelo que desde ja agradeço as usas ideias luminosas. a situação dos filtros ficou resolvida com a sua sugestão deu um pouco de trabalho para acertar todos os case mas la foi.
    Pretendia mais uma vez a sua ajuda pois necessito fazer o seguinte, mas não sei bem como: tenho um fomulario Trabalhadores que abre em modo de adição atraves de um botão na Ribon, nesse formulario tem um outro botão que eu pretendia que fizesse o seguinte: quando o form trabalhadores é aberto em Modo de adição de dados abrisse o form documentos em modo de adição tambem, quando o form trabalhadores fosse aberto para pesquisa ou consulta de um trabalhador abrisse com os dados desse trabalhador sendo que o IDtrab da tabela de dados trabalhadores vai ser sempre igual ao IDdoc da tabela documentos.
    Alem disso queria criar um botão que me permitisse anexar documentos a cada registo desta tabela de documentos sendo que os mesmos seriam gravados numa localização a defenir pelo utilizador criando uma pasta com o nome do trabalhador nessa localização.
    Não sei se consegui explicar bem.
    avatar
    jrm
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 10/08/2012

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  jrm 3/10/2012, 22:32

    ja consegui tambem resolver estes dois casos usando informações e exemplos aqui do forum, desde ja agradeço a todos.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  Avelino Sampaio 31/10/2012, 10:07

    Olá, jrm!

    Baixe a versão 4 do Maestro que acabei de lançar.

    Atualizei o código de filtragem para os exemplo com formulário continuo e listbox. Nos exemplos utilizo 4 campos de pesquisa com UMA ÚNICA FUNÇÃO. Pode adaptar perfeitamente para filtrar subforms.

    http://www.usandoaccess.com.br/download.asp

    Bom estudo!


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

    Conteúdo patrocinado


    [Resolvido]filtro em formulario Empty Re: [Resolvido]filtro em formulario

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 17:45