MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Segundo campo de pesquisa n/ respeita...

    Compartilhe

    Convidado
    Convidado

    [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Convidado em Sex 02 Fev 2018, 21:11

    boas
    tenho um form, com um subform e três campos de pesquisa, em que tenho o seguinte código...

    Campo 1
    Código:
    Private Sub txtPesquisaAno_Change()
    Dim strFiltro As String
    strFiltro = "Ano LIKE '*" & Me.txtPesquisaAno.Text & "*' "
    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltro
    Me.frmSub_Qry_FeriasMarcadas.Form.FilterOn = True
    End Sub

    Campo 2
    Código:
    Private Sub txtPesquisaMES_Change()
    Dim strFiltro As String
    strFiltro = "Meses LIKE '*" & Me.txtPesquisaMES.Text & "*' "
    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltro
    Me.frmSub_Qry_FeriasMarcadas.Form.FilterOn = True
    End Sub

    Campo 3
    Código:
    Private Sub txtPesquisa_Change()
    Dim strFiltro As String
    strFiltro = "SectorDescricao LIKE '*" & Me.txtPesquisa.Text & "*' "
    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltro
    Me.frmSub_Qry_FeriasMarcadas.Form.FilterOn = True
    End Sub

    A minha questão é que ao filtrar o mês( Campo 2 ), deixa de respeitar o que foi pesquisado no campo 1 !! ?
    Obrigado.

    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3576
    Registrado : 29/06/2012

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Noobezinho em Sab 03 Fev 2018, 10:58

    Marco

    Exato !

    Porque da maneira que está fazendo, cada campo ou controle é um filtro isolado.

    Em rápidas palavras, precisa adicionar o resultado do campo anterior ao filtro atual:

    Por exemplo:

    Na sessão declarações da página VBA do formulário:

    Dim strFiltroCampo1 As String, strFiltroCampo2 As String; strFiltroCampo3 As String

    No campo 1:

    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltroCampo1

    Campo2:

    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltroCampo1 + strFiltroCampo2

    Campo 3

    Me.frmSub_Qry_FeriasMarcadas.Form.Filter = strFiltroCampo1 + strFiltroCampo2 + strFiltroCampo3

    Veja que estou te passando a ideia não que isso funcione de fato, pois não testei.

    Talvez tenha que adicionar os critérios anteriores na linha de cima onde tem a instrução SQL que define o filtro.

    [ ]'s



    .................................................................................
    Noobezinho - Balem

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não  ajudo novamente .

    Convidado
    Convidado

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Convidado em Sab 03 Fev 2018, 13:29

    boas amigo...
    Fiz o que me falou, mas sem êxito ! posso ter feito algo errado. Como tal deixo parte do bd para uma analise e melhor ajuda. Obrigado
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3576
    Registrado : 29/06/2012

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Noobezinho em Sab 03 Fev 2018, 14:11

    Marco

    O código exemplo que precisa.

    Estude-o e aplique no teu projeto.

    Veja que é uma função, a qual será chamada a cada campo:


    Código:

    Public Function fncFiltrar(NomeCampoFoco As String)
    Dim x As String, filtro As String
    Dim cp(4) As Variant
    Dim k As Variant, p As Byte

    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

    filtro = IIf(Len(cp(0) & "") = 0, "", "DataDopedido Like '*" & cp(0) & "*' AND ")
    filtro = filtro & IIf(Len(cp(1) & "") = 0, "", "CidadeDeDestino Like '*" & cp(1) & "*' AND ")
    filtro = filtro & IIf(Len(cp(2) & "") = 0, "", "RegiãoDeDestino Like '*" & cp(2) & "*' AND ")
    filtro = filtro & IIf(Len(cp(3) & "") = 0, "", "PaísDeDestino Like '*" & cp(3) & "*' AND")

    If filtro = "" Then
        Me.Filter = "": Me.FilterOn = False
        Me(NomeCampoFoco).SetFocus
        Exit Function
    End If

    filtro = Mid(filtro, 1, Len(filtro) - 4)
    Me.Filter = filtro
    Me.FilterOn = True
    Me(NomeCampoFoco) = x
    Me(NomeCampoFoco).SelStart = Len(x & "")
    End Function


    [ ]'s


    .................................................................................
    Noobezinho - Balem

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não  ajudo novamente .

    Convidado
    Convidado

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Convidado em Dom 04 Fev 2018, 10:35

    Obrigado amigo Noob !
    Olhei para o seu código tentei executar mas sem sucesso... há algo que não estou a "pescar" !
    Conseguimos/ consegue dar me mais algumas pistas ?! ?
    Obrigado
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3576
    Registrado : 29/06/2012

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Noobezinho em Dom 04 Fev 2018, 10:53

    Marco

    Também achei que não iria conseguir, eu realmente não gosto desse filtro, ou não me dou bem com ele.Razz  

    Então, estou disponibilizando um exemplo que tenho em meus alfarrábios e que funciona perfeitamente.

    Estude o código que envolve os critérios da pesquisa.

    Existe uma função: AdicionarAWhere()

    Como o nome já diz, ela adiciona os critérios a consulta.

    Para cada campo é uma chamada a função para que ela vá adicionando

    os critério na futura consulta que será realizada.

    Veja que no exemplo tem 4 campos, portanto 4 chamadas a essa função.

    Qualquer dúvida, retorne

    [ ]'s
    Anexos
    Pesquisa.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (161 Kb) Baixado 7 vez(es)


    .................................................................................
    Noobezinho - Balem

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não  ajudo novamente .

    Convidado
    Convidado

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Convidado em Dom 04 Fev 2018, 14:21

    Prezado Noob ! Obrigado...
    Já lá cheguei estou só a ajustar algumas "coisitas" mas acho que entendi... só que só consigo obter a filtragem após clicar a segunda vez... não estou a entender o porque ?! !
    O Código ficará :
    Código:
        ' by Noob - maximoaccess.com

    após terminar deixo o resultado. Obrigado
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3576
    Registrado : 29/06/2012

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Noobezinho em Dom 04 Fev 2018, 15:01


    Ele deve funcionar sempre que clicar uma vez no botão Mostrar Clientes.

    E deve retornar a pesquisa de qualquer campo, mesmo que os outros estejam em branco

    Sabe depurar o código VBA?

    [ ]'s



    .................................................................................
    Noobezinho - Balem

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não  ajudo novamente .

    Convidado
    Convidado

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Convidado em Dom 04 Fev 2018, 17:40

    Noob . . .
    Obrigado ! agora sim após depurar esta em conformidade.
    Se precisar reabro o tópico !
    Obrigado... abraço para você e uma vez mais obrigado.
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3576
    Registrado : 29/06/2012

    Re: [Resolvido]Segundo campo de pesquisa n/ respeita...

    Mensagem  Noobezinho em Dom 04 Fev 2018, 19:13

    Ótimo Marco

    Valeu o retorno

    Boa sorte!


    .................................................................................
    Noobezinho - Balem

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não  ajudo novamente .

      Data/hora atual: Ter 24 Abr 2018, 01:47