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:
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
Existe uma solução mais prática/profissional?
Grato!
Ricardo
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
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
Existe uma solução mais prática/profissional?
Grato!
Ricardo