Answer of 1 : Yes i have, i just post a sample here
The sample you posted has a ReportDate of 9/19/2012. Yesterday was 9/26/2012. Since your query only pulls back records from yesterday, the record you posted would NOT be returned.
Answer of 2 : Yest Report Date is a Required and it's fill Automatically with Now() function.
Here is the source of your problem. The Now() function not only returns current date, but it also returns the current time.
Let's say you have a ReportDate of "9/26/2012 10:34 AM".
Whenever time is not specificed, 12:00 Midnight is assumed. So
Date()-1 returns "9/26/2012 12:00 AM".
"9/26/2012 10:34 AM" does not equal "9/26/2012 12:00 AM", so it would not be returned. The only records that would be returned are those where the time component equals exactly 12:00 AM.
Try changing your criteria to:
Code:
WHERE Int(Transaction.ReportDate)=Date()-1;
The reason why this works is because dates are stored in Access and Excel as the number of days since 1/1/1900. Time components are fractional parts of days. So to remove the time from a day, we can remove the fractional part using the INT function.