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 Formulário

    avatar
    JaimeSoares
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 30/08/2022

    [Resolvido]Filtro em Formulário Empty [Resolvido]Filtro em Formulário

    Mensagem  JaimeSoares 5/12/2023, 17:08

    Bom Dezembro para todos !

    Estou tentando aplicar um filtro em um formulário, mas estou me perdendo nas aspas (simples e/ou duplas )  
    espero que alguém possa me ajudar , segue o código  . . .


    Private Sub cmd_AplFiltro_Click()
       ' aplica filtro
       
       'Extrusor --------------------------------------------
       If IsNull(cbx_FilExtrusor.Value) Then
           txt_FiltrarExtrusor.Value = "*"
       Else
           txt_FiltrarExtrusor.Value = cbx_FilExtrusor.Value
       End If
       'Desenhista -----------------------------------------
       If IsNull(cbx_FilDesenhista.Value) Then
           txt_FiltrarDesenhista.Value = "*"
       Else
           txt_FiltrarDesenhista.Value = cbx_FilDesenhista.Value
       End If
       ' Desenho Aprovado Cliente -----------------------------
       If IsNull(txt_FilDesAprovCliente.Value) Then
           txt_FiltrarDesAprovCliente.Value = "*"
       Else
           txt_FiltrarDesAprovCliente.Value = txt_FilDesAprovCliente.Value
       End If
       'Status ----------------------------------------------
       If IsNull(cbx_FilStatus.Value) Then
           txt_FiltrarStatus.Value = "*"
       Else
           txt_FiltrarStatus.Value = cbx_FilStatus.Value
       End If

       DoCmd.ApplyFilter , "cliCNPJ Like '" & Me.txt_FiltrarExtrusor.Value _
       & "' and Desenhista Like '" & Me.txt_FiltrarDesenhista.Value _
       & "' and Des_Aprov_Cliente Like '" & Me.txt_FiltrarDesAprovCliente.Value & "' or Des_Aprov_Cliente Null and Status Like '" & Me.txt_FiltrarStatus.Value & "'"
       
       txt_ContaRegistrosFiltrados.Value = Me.Form.Recordset.RecordCount
       txt_ContaRegistrosFiltrados.Visible = True
       lbl_ContaRegistrosFiltrados.Visible = True
       cx_Caixa.Visible = True

    End Sub



    Erro em tempo de execução '3075'
    Erro de sintaxe (operador faltando) na expressão de consulta 'cliCNPJ Like '43.822.366/0001-59' and Desenhista Like '*' and Des_Aprov_Cliente Like '*' or Des_Aprov_Cliente is null and Status Like '*"



    Desde já , muito Obrigado !
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Filtro em Formulário Empty Re: [Resolvido]Filtro em Formulário

    Mensagem  Alexandre Neves 6/12/2023, 21:03

    Boa noite
    Tente
    Código:

    DoCmd.ApplyFilter , "cliCNPJ Like '" & Me.txt_FiltrarExtrusor.Value  & "' and Desenhista Like '" & Me.txt_FiltrarDesenhista.Value _
      & "' and Des_Aprov_Cliente Like '" & Me.txt_FiltrarDesAprovCliente.Value & "' or IsNull(Des_Aprov_Cliente) and Status Like '" & Me.txt_FiltrarStatus.Value & "'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    JaimeSoares gosta desta mensagem

    avatar
    JaimeSoares
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 30/08/2022

    [Resolvido]Filtro em Formulário Empty Re: [Resolvido]Filtro em Formulário

    Mensagem  JaimeSoares 7/12/2023, 16:40

    Muito Obrigado Alexandre Neves.
    O problema das ( aspas ) foi resolvido, agora o código ao menos roda !
    Mas o resultado não é o esperado.

    Este campo Des_Aprov_Cliente é um campo do tipo Data, estou utilizando "*" para mostrar TUDO ou "IsNull" para vazio. Mas o filtro insiste em mostrar somente Tudo e ignora o que é vazio !
    Por ser do tipo Data, teria outra forma de indicar "tudo" ou "vazio" para o filtro ??

    Desde já Agradeço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Filtro em Formulário Empty Re: [Resolvido]Filtro em Formulário

    Mensagem  Alexandre Neves 7/12/2023, 19:57

    Boa noite
    Para isso, tente
    Código:
    DoCmd.ApplyFilter , "cliCNPJ Like '" & Me.txt_FiltrarExtrusor.Value  & "' and Desenhista Like '" & Me.txt_FiltrarDesenhista.Value _
       & "' and Des_Aprov_Cliente Like '" & Me.txt_FiltrarDesAprovCliente.Value & "' and Status Like '" & Me.txt_FiltrarStatus.Value & "'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    JaimeSoares
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 30/08/2022

    [Resolvido]Filtro em Formulário Empty Re: [Resolvido]Filtro em Formulário

    Mensagem  JaimeSoares 8/12/2023, 18:55

    Senhor Alexandre Neves, aqui um filho de uma Madeirense , agradece muito a sua ajuda !

     Consegui resolver o problema !
     Na verdade a minha logica estava errada, eu estava querendo algo impossível, então mudei a logica do questionamento e deu certo, segue o código que funcionou como deveria ...
    Separando entre Datas com valores e Datas vazias, o resultado atende a solicitação.


    Código:
       If txt_FiltrarStatus.Value = "Pendente" Then
            DoCmd.ApplyFilter , "cliCNPJ Like '" & Me.txt_FiltrarExtrusor.Value & "' and Desenhista Like '" & Me.txt_FiltrarDesenhista.Value _
            & "' and Status Like '" & Me.txt_FiltrarStatus.Value & "'"
        Else
            DoCmd.ApplyFilter , "cliCNPJ Like '" & Me.txt_FiltrarExtrusor.Value & "' and Desenhista Like '" & Me.txt_FiltrarDesenhista.Value _
            & "' and Des_Aprov_Cliente Like '" & Me.txt_FiltrarDesAprovCliente.Value & "' and Status Like '" & Me.txt_FiltrarStatus.Value & "'"
        End If


     Muito obrigado a você e a todos pela ajuda !

    Conteúdo patrocinado


    [Resolvido]Filtro em Formulário Empty Re: [Resolvido]Filtro em Formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 08:14