Cercare la data più vicina ad oggi

di il
2 risposte

Cercare la data più vicina ad oggi

Buona sera a tutti
ho una maschera che mi visualizza l'elenco delle scadenze ordinate per data
All'apertura della maschera ho scritto il codice che mi visualizza la riga corrispondente alla giornata odierna.
Ma se nella data odierna non esiste nessuna scadenza, visualizza la prima dell'elenco, io invece vorrei che mi visualizzasse la prima scadenza futura da oggi.
Come posso fare ? Grazie per l'aiuto

Private Sub Form_Load()
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
criterio = "[datascadenza] = #" & Date & "#"
rst.FindFirst criterio
If Not rst.NoMatch Then Me.Bookmark = rst.Bookmark

End Sub

2 Risposte

  • Re: Cercare la data più vicina ad oggi

    Devi usare DateDiff e prendere il minore...
    Ora avendo il recordset già caricato personalmente userei una tecnica differe te dal ciclo su tutti...
    Farei una query e ricaverei la PK del record corrispondente e poi farei il findfirst su quello.
    Questo a mio avviso sarebbe a livello di performance molto meglio.
    La query poi la puoi fare con QBE e vedresti subito il risultato.
  • Re: Cercare la data più vicina ad oggi

    Risolto!!!!
    essendo il recordset ordinato per date decrescenti, mi è bastato cambiare il metodo di ricerca in findlast in maniera tale che la ricerca inizia da sotto.
    per cui utilizzano l'operatore maggiore uguale, se esiste la data odierna la becca, altrimenti becca la più vicina

    Private Sub Form_Load()
    Dim rst As DAO.Recordset
    Set rst = Me.RecordsetClone
    CRITERIO = "[datascadenza] >= #" & Date & "#"
    rst.FindLast CRITERIO
    If Not rst.NoMatch Then Me.Bookmark = rst.Bookmark

    End Sub
Devi accedere o registrarti per scrivere nel forum
2 risposte