SQL statement vs Delphi Code: Which is executes fastest

I am using this in a TQuery to return a single value, the maximum moth
count amoung the traps that match these criteria. In Delphi the
constants are replaced with parameters to perform a dynamic query.

Would this execute faster if I used SetRange and while loops the access
both files and find max moths? Also, could I exeucte this statement so
that an answer table is not create on the hard drive, thus, reducing the
i/o?

SELECT MAX(P.Moths)
 FROM PBWTrap P, TrapBuf B
 WHERE P.Trapdate <= '6/26/96'
   AND    P.TrapDate >= '6/26/96' - 7
   AND    B.DistToField < 0.0625
             AND    B.Unit = 30807
             AND    B.Field = 1208
             AND     P.Unit = B.TrapUnit
             AND     P.Field = B.TrapField
             AND    P.Trap = B.Trap

Thanks for any suggestions.

Jim Berry --- US Dept of Agriculture APHIS