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

    [Resolvido]Filtro pra Listbox X campos Nulos

    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 25/7/2013, 15:08

    Bom dia

    Estou tendo dificuldades na aplicação de filtros em listbox usando filtros/consultas SQL via código, as linhas na listbox que contem campos nulos em alguma coluna seja numa coluna data ou texto conforme vou usando o filtro digitando em um campo texto simplismente não aparecem na list. Ou seja, ele só filtra se não for "nulo".

    Ex:. Tenho um Form para cadastro de notas fiscais e uma listbox que contem as notas (Colunas - Fornecedor, N°Nfe, DataEntrada, valorR$, Responsavel), se eu procurar as notas do fornecedor "x" preciso que ele me retorne na listbox as notas de "x" e até mesmo as que contenham as datas de entrega em branco, entende?

    Código:
    'código que estou usando na consulta da listbox em um campo texto. "ao digitar":
    Dim StrSQL As String
       Me.ListaEntradaPesquisa.RowSource = ""
           StrSQL = "SELECT ConsultaEntrada.CodEntrada,ConsultaEntrada.Fornecedor,ConsultaEntrada.NotaFiscal," _
           & " ConsultaEntrada.DataFaturamento,ConsultaEntrada.ValorNota,ConsultaEntrada.DataRecebimento," _
           & " ConsultaEntrada.TipoPagamento,ConsultaEntrada.Transportadora,ConsultaEntrada.Boleto," _
           & " ConsultaEntrada.Responsavel" _
           & " FROM ConsultaEntrada" _
           & " WHERE (((ConsultaEntrada.Fornecedor) Like '" & strTexto1 & "%'))"
                 
       StrSQL = StrSQL & " And ConsultaEntrada.Fornecedor Like '" & strTexto1 & "%'" _
                       & " And ConsultaEntrada.NotaFiscal Like '" & StrTexto2 & "%'" _
                       & " And ConsultaEntrada.DataFaturamento Like '" & StrTexto3 & "%'" _
                       & " And ConsultaEntrada.ValorNota Like '" & StrTexto4 & "%'" _
                       & " And ConsultaEntrada.DataRecebimento Like '" & StrTexto5 & "%'" _
                       & " And ConsultaEntrada.TipoPagamento Like '" & StrTexto6 & "%'" _
                       & " And ConsultaEntrada.Transportadora Like '" & StrTexto7 & "%'" _
                       & " And ConsultaEntrada.Responsavel Like '" & StrTexto8 & "%'"
       
         StrSQL = StrSQL & " ORDER BY ConsultaEntrada.DataFaturamento DESC;"
         Me.ListaEntradaPesquisa.RowSource = StrSQL

    'Detalhe é que o código usado para tirar o filtro funciona (Botão):
       Me.ListaEntradaPesquisa.RowSource = _
           "SELECT ConsultaEntrada.CodEntrada,ConsultaEntrada.Fornecedor,ConsultaEntrada.NotaFiscal," _
           & " ConsultaEntrada.DataFaturamento,ConsultaEntrada.ValorNota,ConsultaEntrada.DataRecebimento," _
           & " ConsultaEntrada.TipoPagamento,ConsultaEntrada.Transportadora,ConsultaEntrada.Boleto," _
           & " ConsultaEntrada.Responsavel" _
           & " FROM ConsultaEntrada" _
           & " ORDER BY ConsultaEntrada.DataFaturamento DESC;"


    preciso de uma uma implementação de tratamento para que as linhas que contem os campos nulos apareçam na consulta seja datas ou textos.

    Agradeço a ajuda.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Marco Messa 25/7/2013, 19:22

    Fala Silvano, td bem rapaz?

    Faz um bom tempo que não trabalho com Access, mas creio que o problema seja exatamente quando o campo é nulo, aí ele não consegue tratar para ignorar o campo.
    Imaginando um exemplo onde você queira ir trazendo os dados conforme os filtros são incluídos, você inclui o fornecedor X, a consulta tem que trazer tudo do fornecedor X, depois você adiciona um filtro de tipo de pagamento Y, aí deveria filtrar com o fornecedor X e o tipo de pagamento Y. É isso?

    Você pode tratar os campos com a função IIf, fazendo com que caso seja nulo, não considere o parâmetro. Ficaria mais ou menos assim:

    Código:
    'código que estou usando na consulta da listbox em um campo texto. "ao digitar":
    Dim StrSQL As String
      Me.ListaEntradaPesquisa.RowSource = ""
          StrSQL = "SELECT ConsultaEntrada.CodEntrada,ConsultaEntrada.Fornecedor,ConsultaEntrada.NotaFiscal," _
          & " ConsultaEntrada.DataFaturamento,ConsultaEntrada.ValorNota,ConsultaEntrada.DataRecebimento," _
          & " ConsultaEntrada.TipoPagamento,ConsultaEntrada.Transportadora,ConsultaEntrada.Boleto," _
          & " ConsultaEntrada.Responsavel" _
          & " FROM ConsultaEntrada" _
          & " WHERE ConsultaEntrada.Fornecedor Like '" & IIF(IsNull(strTexto1), ConsultaEntrada.Fornecedor, strTexto1) & "%'"
                 
      StrSQL = StrSQL &" And ConsultaEntrada.NotaFiscal Like '" & IIF(IsNull(StrTexto2, ConsultaEntrada.NotaFiscal, StrTexto2) & "%'" _
                      & " And ConsultaEntrada.DataFaturamento Like '" & IIF(IsNull(StrTexto3, ConsultaEntrada.DataFaturamento, strTexto3) & "%'" _
                      & " And ConsultaEntrada.ValorNota Like '" & IIF(IsNull(StrTexto4, ConsultaEntrada.ValorNota, strTexto4) & "%'" _
                      & " And ConsultaEntrada.DataRecebimento Like '" & IIF(IsNull(StrTexto5, ConsultaEntrada.DataRecebimento, strTexto5) & "%'" _
                      & " And ConsultaEntrada.TipoPagamento Like '" & IIF(IsNull(StrTexto6, ConsultaEntrada.TipoPagamento, strTexto6) & "%'" _
                      & " And ConsultaEntrada.Transportadora Like '" & IIF(IsNull(StrTexto7, ConsultaEntrada.Transportadora, strTexto7) & "%'" _
                      & " And ConsultaEntrada.Responsavel Like '" & IIF(IsNull(StrTexto8, ConsultaEntrada.Responsavel, strTexto8) & "%'"
     
        StrSQL = StrSQL & " ORDER BY ConsultaEntrada.DataFaturamento DESC;"
        Me.ListaEntradaPesquisa.RowSource = StrSQL

    'Detalhe é que o código usado para tirar o filtro funciona (Botão):
      Me.ListaEntradaPesquisa.RowSource = _
          "SELECT ConsultaEntrada.CodEntrada,ConsultaEntrada.Fornecedor,ConsultaEntrada.NotaFiscal," _
          & " ConsultaEntrada.DataFaturamento,ConsultaEntrada.ValorNota,ConsultaEntrada.DataRecebimento," _
          & " ConsultaEntrada.TipoPagamento,ConsultaEntrada.Transportadora,ConsultaEntrada.Boleto," _
          & " ConsultaEntrada.Responsavel" _
          & " FROM ConsultaEntrada" _
          & " ORDER BY ConsultaEntrada.DataFaturamento DESC;"

    No código acima eu coloquei a seguinte condição:

    CampoTabela = Se(IsNull(CampoParametro), CampoTabela, CampoParametro)

    Ou seja, se o campo do parâmetro for nulo, a comparação será feita entre o próprio campo da tabela, dando o comportamento de como se não houvesse esse filtro.

    1 = Se(IsNull(Nulo), 1, Nulo)


    Veja se ajuda

    Abrass cheers 


    .................................................................................
    Tea with me that I book your face Cool
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 30/7/2013, 20:41

    boa tarde Marco belezinha contigo?

    Desculpe a demora ao responder, não tive tempo, cara testei e não funcionou, fiz o teste em um outro banco com a pesquisa menor p/ facilitar.

    Obs. usei em outro banco p/ simplificar o meu e o seu entendimento.

    Option Compare Database
    Option Explicit

    'String das caixas texto
    Dim StrTexto1 As String 'Recibo
    Dim StrTexto2 As String 'Cliente
    Dim StrTexto3 As String 'Data

    'Comando dos 3 botões - os outros botões so mudo o numero - txt1,txt2,txt3 - StrTexto1,StrTexto2,StrTexto3.
    Private Sub txt1_Change()
    On Error Resume Next
    StrTexto1 = Me.txt1.Text 'Recibo
    Call FiltaLista
    End Sub
    ...

    'Filtro SQL com Strings de 3 campos txt para consulta.
    Private Sub FiltaLista()
    On Error Resume Next

       Me.ListaEntrega.RowSource = _
       "SELECT ConsultaEntregaSQL.CodEntrega, ConsultaEntregaSQL.Recibo,ConsultaEntregaSQL.Cliente," _
       & " ConsultaEntregaSQL.DataEntrega" _
       & " FROM ConsultaEntregaSQL" _
       & " WHERE (((ConsultaEntregaSQL.Recibo) Like '" & StrTexto1 & "%'))" _
       & " And ConsultaEntregaSQL.Cliente Like '" & StrTexto2 & "%'" _
       & " And ConsultaEntregaSQL.DataEntrega Like '" & IIf(IsNull(StrTexto3), "ConsultaEntregaSQL.DataEntrega", StrTexto3) & "%'" _
       & " ORDER BY ConsultaEntregaSQL.Cliente, ConsultaEntregaSQL.DataEntrega DESC;"
           
    End Sub


    Ele filtrou somente os campos onde não tem "Nulos" d'novo, mas me ocorreu se não poderia ser alguma regra no SQL ou no "RowSource" que impede a inclusão dos campos nulos ou mesmo por estar pegando os dados em uma consulta, mas não cheguei a lugar nenhum, e fucei muito na net e nada.

    alguma luz?

    mandei o banco p/ vc ver como esta, esta no Access2007.
    Anexos
    [Resolvido]Filtro pra Listbox X campos Nulos AttachmentBDEntrega.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (170 Kb) Baixado 21 vez(es)
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 8/8/2013, 20:23

    Aguem mais poderia me ajudar?
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Marco Messa 8/8/2013, 20:28

    Opa, falae rapaz, eu iria ver em casa pq não tenho Access no trabalho e acabei esquecendo.
    Se ninguém conseguir ajudar eu dou uma olhada em casa nisso aí.

    Abs cheers 


    .................................................................................
    Tea with me that I book your face Cool
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 8/8/2013, 20:44

    Putz, Vlw agradeço MUITO.

    Abçs.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Alexandre Neves 8/8/2013, 20:48

    Boa noite,
    Fala em filtrar pelo fornecedor mas aplica filtro de outros campos. Como precisa?


    .................................................................................
    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
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 8/8/2013, 21:09

    Opa Alexandre, obrigado p/ ajuda.

    quero filtrar a listbox usando vários campos, Fornecedor/NFe/DataEntrada... e por ai vai só que não estão aparecendo os registro que contem "Nulos" em algum desses campos pesquisados, ai to num dilema p/ saber o porque. Já pesquisei muito na net sem resposta.

    Se não tiver nulos em algum desses campos ele filtra normal.

    Vlw.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Alexandre Neves 8/8/2013, 22:26

    'código que estou usando na consulta da listbox em um campo texto. "ao digitar":
    Dim StrSQL As String
    Me.ListaEntradaPesquisa.RowSource = ""
    StrSQL = "SELECT CodEntrada,Fornecedor,NotaFiscal," _
    & "DataFaturamento,ValorNota,DataRecebimento," _
    & "TipoPagamento,Transportadora,Boleto," _
    & "Responsavel" _
    & " FROM ConsultaEntrada" _
    & " WHERE (IsNull(Fornecedor) or Fornecedor Like '" & strTexto1 & "')"

    StrSQL = StrSQL & " And (IsNull(NotaFiscal) or NotaFiscal Like '" & StrTexto2 & "')" _
    & " And (IsNull(DataFaturamento) or DataFaturamento Like '" & StrTexto3 & "')" _
    & " And (IsNull(ValorNota) or ValorNota Like '" & StrTexto4 & "')" _
    & " And (IsNull(DataRecebimento) or DataRecebimento Like '" & StrTexto5 & "')" _
    & " And (IsNull(TipoPagamento) or TipoPagamento Like '" & StrTexto6 & "')" _
    & " And (isNull(Transportadora) or Transportadora Like '" & StrTexto7 & "')" _
    & " And (IsNull(Responsavel) or Responsavel Like '" & StrTexto8 & "')"

    StrSQL = StrSQL & " ORDER BY DataFaturamento DESC;"
    Me.ListaEntradaPesquisa.RowSource = StrSQL

    Nomeie os controlos de forma normalizada.


    .................................................................................
    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
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 9/8/2013, 20:53

    Boa tarde Alexandre,

    Vou olhar no fim de semana ai posto o resultado.

    Abraço
    Silvanio123
    Silvanio123
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 98
    Registrado : 24/08/2011

    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Silvanio123 12/8/2013, 20:20

    Boa tarde,

    Alexandre:
    O seu código serviu p/ mostrar os campos nulo, obrigado.
    Marco:
    Obrigado p/ força.

    Grande abraço a todos

    Conclusão:

    A conclusão à que cheguei foi que quando se coloca parâmetros na consulta SQL a mesma só irá exibir as linhas que todas as condições listadas são verdadeiras.

    Vlw

    Conteúdo patrocinado


    [Resolvido]Filtro pra Listbox X campos Nulos Empty Re: [Resolvido]Filtro pra Listbox X campos Nulos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 21:18