With some changes, like replacing "-" with "_" in table/field names, and using field RepTime in format "Genereal Date" (reporting time in table Hits_Qty_Complete will contain date AND time):
1. You need a list of departments. Either you have a table of departments, or you can use a saved query like
Code:
qDep = SELECT DISTINCT dep.Department FROM Dept_WrkCtr dep;
2. You need a saved query which returns quantities by department reported during last hour.
Code:
SELECT wc.Department, Sum(Nz(rep.CPQty,0)) AS [Hits Qty], (Now()-1/24) AS FromTime, Now() AS ToTime
FROM Dept_WrkCtr AS wc LEFT JOIN HITS_Qty_Complete AS rep ON wc.WorkCenter = rep.CPWrkc
WHERE (((rep.RepTime)>Now()-1/24))
GROUP BY wc.Department;
3. You create a query, which returns quantities reported during last hour for all departments
Code:
SELECT qDep.Department, Nz(qHitsQty.[Hits Qty],0) AS [Hits Qty], qHitsQty.FromTime, qHitsQty.ToTime
FROM qDep LEFT JOIN qHitsQty ON qDep.Department = qHitsQty.Department;
P.S. Probably it will be better to create an udf for getting time some time units (days/hours/minutes/etc.) earlier/later than NOW(). The expression I used works OK, but Access is trying to interpret it as date, and to replace it in query sometimes. When you use the expression, then whenever the query returns weird results, check WHERE clause of qHitsQty.