I hope this points you in the right direction:
I started with a table I called [Hours_by_Empl_PP] which has the total hours for each Employee in each individual Pay_Period.
EmployeeID PayPeriodID HoursUsed
1 1 3
1 2 7
1 3 4
1 4 4
1 5 5
1 6 8
1 7 5
2 1 1
2 2 2
2 3 1
2 4 0
2 5 0
2 6 1
2 7 2
If your table data has multiple records for a given (Employee + Pay_Period) you can create a simple aggregation query to total up the values...
SELECT EmployeeID, PayPeriodID, SUM(HoursUsedToday) AS HoursUsed
FROM YourRawData
GROUP BY EmployeeID, PayPeriodID
...save that as [Hours_by_Empl_PP], and use that instead of a table.
The next step was to create a query to sum up the number of hours over a 4-period window. (I chose 4 instead of 26 just to make it easier to check my work.) This window includes the current Pay_Period and the previous three.
SELECT hbep1.EmployeeID, hbep1.PayPeriodID,
(
SELECT Sum(hbep2.HoursUsed)
FROM Hours_by_Empl_PP hbep2
WHERE hbep2.EmployeeID=hbep1.EmployeeID
AND (hbep2.PayPeriodID Between hbep1.[PayPeriodID]-3 And hbep1.[PayPeriodID])
) AS Sum_of_Hours_last_4_PPs
FROM Hours_by_Empl_PP hbep1;
This query gives me
EmployeeID PayPeriodID Sum_of_Hours_last_4_PPs
1 1 3
1 2 10
1 3 14
1 4 18
1 5 20
1 6 21
1 7 22
2 1 1
2 2 3
2 3 4
2 4 4
2 5 3
2 6 2
2 7 3
Note that the query assumes that PayPeriodID values are sequential and in chronological order. You could achieve the same result using [PayPeriodEndDate] values, but that would mean another JOIN and I wanted to keep the example as clear as possible.
That's it, really. You can just save that query with a name like [Hours_by_Empl_4PP_window] and use it in your queries to JOIN on other tables (for Employee name, etc.) and take it from there.