hola
es que no es tan sencillo como lo haces ver
imaginate que la fecha de vencimiento no exista (que no sea hoy).. entonces cuando se hace la busqueda no encontraria nada y se iria hasta el ultimo registro y que pasa con los registros que tienen fecha de vencimiento menor al Now?
que te parece si recorres la tabla y te posicionas en el registro mas cercano al esperado.. algo asi (la tabla debe estar ordenada por el campo Fecha de vencimiento)
Código Delphi
[-]
While not tblDatos.Eof
Begin
if tblFechaVencimiento.Value >= Now then exit
tblDatos.Next
End