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


    [Resolvido]Filtro Por Todas Datas E Especificas

    avatar
    ricardopb
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 11/09/2013

    [Resolvido]Filtro Por Todas Datas E Especificas Empty [Resolvido]Filtro Por Todas Datas E Especificas

    Mensagem  ricardopb Sex 13 Set 2013, 3:01 pm

    Pessoal,
    Estou com problemas com filtros de data, acabei fazendo uma gambiarra, mas acredito que exista uma solução mais profissional pro problema

    SITUAÇÂO:
    Tenho um tabela com campo de data e memorando que aparecem num subform e tenho um form com 3 campos de filtragem: txtPesquisa, cboAno e cboMes. Pra fazer filtragem por mes/ano especifico ou texto foi fácil. Usei:
    Código:
    Me.sfrmDados.Form.Filter = "year(Data)=" & strAno & "And month(Data)=" & strMes & "and relato like '*" & strPesquisa & "*'
    Me.sfrmDados.Form.FilterOn = True
    PROBLEMA
    Quero uma maneira para filtrar por todos anos e/ou todos meses. Pra começar, minha combox tem como origem os meses e anos da tabela, dessa forma, não tenho como ter uma opção diferente que represente Todos.
    Meu 2o problema é pelo que entendi, quando quero todos eu tenho que excluir do .filter a condição. No caso se eu quiser todos anos, excluo o "year(Data)=" & strAno &
    SOLUÇAO PROVISORIA
    Mudei a origem da minha combox para valores digitados (não é ideal, pois tenho que digitar na mão dezenas de anos) e acrescentei uma opção Todos.
    Fiz meu código fazer vários IFs (ou CASEs) testando se o campo é todos ou um ano/mes especifico e baseado nessas condições ele poe uma string diferente pro filter
    Código:
    Select Case True
                Case strAno = "Todos" And strMes = "Todos"
                    Me.sfrmDados.Form.Filter =  "relato like '*" & strPesquisa & "*'"
                    Me.sfrmDados.Form.FilterOn = True
                Case strAno = "Todos" And strMes <> "Todos"
                    Me.sfrmDados.Form.Filter = "month(Data)=" & strMes & "and relato like '*" & strPesquisa & "*'"
                    Me.sfrmDados.Form.FilterOn = True
                Case strAno <> "Todos" And strMes = "Todos"
                    Me.sfrmDados.Form.Filter = "year(Data)=" & strAno & "and relato like '*" & strPesquisa & "*'"
                    Me.sfrmDados.Form.FilterOn = True
                Case Else
                Me.sfrmDados.Form.Filter = "year(Data)=" & strAno & "  And month(Data)=" & strMes & "and relato like '*" & strPesquisa & "*''
                Me.sfrmDados.Form.FilterOn = True
    PERGUNTA
    Existe uma solução mais prática/profissional?

    Grato!
    Ricardo
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro Por Todas Datas E Especificas Empty Re: [Resolvido]Filtro Por Todas Datas E Especificas

    Mensagem  Convidado Sex 13 Set 2013, 7:23 pm

    Podes deixar o subform desacoplado... com a fonte de registro em branco..

    E carregar a fonte de registro com uma consulta SQL/VBA devidamente filtrada.


    Cumprimentos.


    Última edição por PILOTO em Qui 31 Out 2013, 10:29 pm, editado 1 vez(es) (Motivo da edição : Tópico dado como resolvido por falta de resposta)
    avatar
    ricardopb
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 11/09/2013

    [Resolvido]Filtro Por Todas Datas E Especificas Empty Re: [Resolvido]Filtro Por Todas Datas E Especificas

    Mensagem  ricardopb Sex 14 Mar 2014, 6:47 pm

    Desculpe a demora em responder.
    Fui tentar sua sugestão de gerar a fonte de registro através de SQL. Fiz um consulta UNION para juntar os meses com a palavra Todos
    Código:
    SELECT Month([Data])  FROM tblDados UNION SELECT "Todos" FROM tblDados
    O resultado saiu como eu queria, mas na seguinte ordem 1,10,11,12,2,3,4,5,6,7,8,9,Todos
    Pelo que entendi ele transformou os numeros em strings
    Tem como eu ordenar de modo que saia 1,2,3,4,5,6,7,8,9,10,11,12,Todos ?

    Conteúdo patrocinado


    [Resolvido]Filtro Por Todas Datas E Especificas Empty Re: [Resolvido]Filtro Por Todas Datas E Especificas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Dom 19 maio 2024, 2:45 am