Filtro Maschere con date non funzionante

di il
5 risposte

Filtro Maschere con date non funzionante

Buona sera a tutti
Vado subito al dunque in una Form ho 2 subform che elencano delle scadenze su un capo di tipo Data, premetto che i filtri funzionano tutti tranne quello che a mio parere doveva essere il più semplice, cioè filtrare le/la maschera per
"Le date successive alla data di oggi" il filtro che fa parte di una select , Tutta funzionante tranne questa parte
Select Case CcFiltro
           Case 1
...
           Case 3
           Me.MkRicAttiScadenza.Form.Filter = "Scade>=" & Date
            Me.MkRicAttiScadenza.Form.FilterOn = True
...
End Select
Il risultato che mi attendevo sarebbe dovuto essere "Le date successive alla data di oggi"
e invece ottengo "tutto"
Dove sbaglio?

5 Risposte

  • Re: Filtro Maschere con date non funzionante

    La data va formattata in accezione anglosassone... oppure cLng(....)
  • Re: Filtro Maschere con date non funzionante

    Grazie Alex
  • Re: Filtro Maschere con date non funzionante

    Come ti ha detto Alex se filtri per data devi formattarla ... ma se devi filtrare non per una data variabile ma per la data odierna ti basta modificare leggermente quello che avevi fatto, cioè così
    Me.MkRicAttiScadenza.Form.Filter = "Scade>=Date()"
  • Re: Filtro Maschere con date non funzionante

    muttley005 ha scritto:


    Come ti ha detto Alex se filtri per data devi formattarla ... ma se devi filtrare non per una data variabile ma per la data odierna ti basta modificare leggermente quello che avevi fatto, cioè così
    Me.MkRicAttiScadenza.Form.Filter = "Scade>=Date()"
    Grazie muttley per la risposta, che mi ha risolto un altro problema, mi spiego:
    il filtro date riguarda 2 sottomaschere, la form principale si apre all'apertura del Db ed il filtro serve a verificare le scadenze dei prossimi 15gg (all'apertura) poi tramite i filtri vengono filtrate varie opzioni (mese corrente, prossimo mese...etc).
    Le due sottomaschere sono riferite a 2 Tab diverse, ora è possibile che la stmAvvisi non contenga per alcuni record una data di scadenza mentre la sottomaschera Ricorsi la contiene sempre, perchè viene generata in automatico da una funzione.
    Ho fatto questa premessa allo scopo di rendere utile il post a tutto il forum:
    Seguendo il consiglio di Alex avevo filtrato in questo modo:
    ProssimiAvvisi =  "clng(ScadeData)>=" & CLng(Date)                    
     ProssimiRicorsi = "clng(Scade)>=" & CLng(Date)
    Succedeva che il filtro funzionava sempre per "ProssimiRicorsi" che contiene sempre una data nel campo "Scade"
    Non funzionava su "ProssimiAvvisi" perchè non in tutti i record c'era una data sul campo "ScadeData"
    Mi ero riproposto di inserire una condizione "Diverso da Null" e invece provando il tuo suggerimento ho risolto
    Scrivendo
    ProssimiAvvisi ="ScadeData>=Date()"
    viene valutato anche il valore Null del campo.

    Sul fatto invece che il tutto era scritto nel mio Db "Suggerimenti e consigli da forum", NON consultato
    stendiamo un velo pietoso!
    Grazie Alex
    Grazie muttley

    PS: gli appunti sul trattamento delle date erano di Alex
  • Re: Filtro Maschere con date non funzionante

    Bastava così:
    ProssimiAvvisi =  "ScadeData>=" & CLng(Date)  
    Se poi vuoi prendere anche le Date con NULL metti in OR la condizione di NULL
    ProssimiAvvisi =  "ScadeData>=" & CLng(Date) & " OR ScadeData Is Null"  
    Se hai anche hh:mm:ss devi usare il DOUBLE ma serve convertire il separatore decimale quindi:
    ProssimiAvvisi =  "ScadeData>=" & str(CDbl(Now()))  
    Ma se usi Date() concordo con Muttley
Devi accedere o registrarti per scrivere nel forum
5 risposte