Well i have tried like this, i used temp tables for sql server, i am not sure would it gonna be same in ms access
CREATE TABLE #VEHICLES(
Make VARCHAR(100),
Registration_No VARCHAR(100),
Driver VARCHAR(100),
Depreciation VARCHAR(100)
)
CREATE TABLE #VEHICLE_ALLOCATION(
Date DATE,
Registration_No VARCHAR(100),
Project VARCHAR(100)
)
SELECT *
FROM #VEHICLES
SELECT *
FROM #VEHICLE_ALLOCATION
DROP TABLE #VEHICLES
DROP TABLE #VEHICLE_ALLOCATION
SELECT MONTH(GETDATE())
SELECT DAY(GETDATE())
SELECT *
FROM #VEHICLES AS Vehicales
INNER JOIN
(
SELECT Registration_No, Project, COUNT(*) AS TotalDays
FROM #VEHICLE_ALLOCATION
WHERE MONTH(Date) = 1
AND (DAY(Date) <= 30 AND DAY(Date) >= 1)
GROUP BY Registration_No, Project
) AS Allocations
ON Vehicales.Registration_No = Allocations.Registration_No
remove the # signs from the Main query.
if you want to add allocation date also that a different story.