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]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios

    EduardoPires
    EduardoPires
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 16/12/2012

    [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios Empty [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios

    Mensagem  EduardoPires 16/3/2024, 22:54

    Olá pessoal. Preciso de uma dica.

    Tenho uma tabela, tbl_clientes. Tenho um formulário FRM1 que informa os parâmetros de uma consulta vinculada a tbl_clientes. Nessa tabela tem um campo DATA1. O que eu preciso:

    - Como posso desenvolver um critério na consulta para me trazer todos os registros da consulta, seja os que tem a data preenchida, seja os que não tem nada preenchido no campo.
    Exemplo: Eu tenho uma caixa de opção onde Tem valor1 e Valor2. No critério da consulta, se aquela opção do formulário=Valor1 quero que liste todos os registros da consulta, seja que tiver data preenchida ou não. Se opção do formulário=Valor2, eu quero que me traga apenas a data que eu informar em um campo desse formulário.

    Tentei informar * (asterisco) para trazer todos. Tentei a função "como", mas não dá. Se o campo fica vazio, ele traz tudo, mas preciso desse critério para também trazer a opção de uma data específica que eu informar no formulário.

    Tentei assim no critério da consulta, no campo Data que quero filtrar, e não deu:

    SeImed([Formulários]![FRM_AGENDARPRECLIENTES-PRINCIPAL(1)]![quadrotipodata]=1;"*";[Formulários]![FRM_AGENDARPRECLIENTES-PRINCIPAL(1)]![pesquisatransfdtcarteira])
    OU SEJA, SE ESSA OPÇÃO DO FORMULARIO FOR 1 QUERO QUE CONSIDERE O CAMPO COMO TUDO. SE FOR 2 ELE BUSCA O PARAMETRO DO CAMPO "pesquisatransfdtcarteira" que o usuário informar.

    Aí tentei também assim:

    Como [Formulários]![FRM_AGENDARPRECLIENTES-PRINCIPAL(1)].[pesquisatransfdtcarteira] & "*"
    MAS TAMBÉM NÃO TRAZ TODOS REGISTROS.

    Alguém pode me ajudar:

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios Empty Re: [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios

    Mensagem  Avelino Sampaio 17/3/2024, 09:04

    Olá!

    Para sua filtragem funcionar como desejado, terá que realizar uma alteração na clausula WHERE da sua consulta. Como exemplo, observe a escrita SQL desta minha consulta de teste:


    SELECT tblTarefas.id, tblTarefas.DataRef, tblTarefas.TarefaConcluída
    FROM tblTarefas
    WHERE (((tblTarefas.DataRef)=IIf(Eval(1=1),(tblTarefas.DataRef) Like '*',#3/14/2024#)));


    Quando eu rodar esta consulta a função SELMED (IIF) irá selecionar (tblTarefas.DataRef) Like '*'. A clausula WHERE será montada da seguinte forma:

    WHERE (tblTarefas.DataRef)=(tblTarefas.DataRef) Like '*'


    Temos uma condição de igualdade e o LIKE atuando ao mesmo tempo, ocasionando erro na filtragem.

    Observe como a SQL deve ser construída para a filtragem ocorre como desejado:


    SELECT tblTarefas.id, tblTarefas.DataRef, tblTarefas.TarefaConcluída
    FROM tblTarefas
    WHERE (((IIf(Eval(1=1),[DataRef] Like '*' Or [DataRef] Is Null,[DataRef]=#3/14/2024#))<>False));


    Quando executamos a consulta a clausula WHERE ficará com a seguinte formatação:


    ...WHERE [DataRef] Like '*' Or [DataRef] Is Null


    Observe que para retornar as datas em branco, utilize o IS NULL.

    Agora, abra a sua consulta no modo SQL é faça as alterações. Faça uma copia da sua consulta antes das alterações.

    Aguardamos


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

    EduardoPires gosta desta mensagem

    EduardoPires
    EduardoPires
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 52
    Registrado : 16/12/2012

    [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios Empty Re: [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios

    Mensagem  EduardoPires 17/3/2024, 09:38

    Nossa Avelino... Não to nem acreditando. Fiquei mais de 4 horas ontem e tudo que eu fiz, não devolvia os dados na consulta como eu precisava.

    Essa adaptação simples do or na função sql resolveu de forma muito satisfatória.

    obrigado.

    Conteúdo patrocinado


    [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios Empty Re: [Resolvido]Buscar todos registros de uma consulta através de um campo data, tanto os preenchidos a data quanto os vazios

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/6/2024, 06:08