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