I'm testing the following SQL query in Access 2010:

```
SELECT 
    Employees.Corps_ID, Employees.Last_Name, Employees.First_Name, 
    Shifts.Start_Date_Time, Shifts.End_Date_Time, 
    DateDiff('n',Shifts.Start_Date_Time,Shifts.End_Date_Time) AS SubTotalMinutes, 
    Locations.Location_Name
FROM 
    (Locations 
INNER JOIN 
    Shifts ON Locations.Location_ID = Shifts.Location) 
INNER JOIN 
    (Employees INNER JOIN Employees_Shifts ON Employees.Employee_ID = Employees_Shifts.Employee_ID) ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
WHERE 
    (((Shifts.Start_Date_Time) Between #2015/09/26# And #2015/10/09#) 
     AND ((Shifts.Schedule_ID) = 1) OR ((Shifts.Schedule_ID) = 2)) 
ORDER BY 
    Employees.Last_Name;

```

Please note the date range `Between #2015/09/26# And #2015/10/09#`. That's September 26th. to October 9th. This represents a pay period. The query runs without error, however, the results display records beyond October 9th. In fact they continue thru to the end of the month. I don't understand why it is doing that. Has anyone got an explanation?

FYI, I thought it might have something to do with the conditions: 

`(((Shifts.Schedule_ID) = 1) OR ((Shifts.Schedule_ID) = 2))` but if I change the OR to an AND, I get an empty recordset, and that's not good. I have to reference both Schedules because each one covers one month and the pay period spans the last week of the first month and the first week of the following month.

Please advise.