Firstly Brian,
Tried using the 2nd lot of code but I cannot initialise the dbs variable as a database type on line:

Dim dbs As Database

There is no type called Database, the next best thing is DataAccessPage??
So I tried the subforms which work ok.

Secondly Ecniv,
Not sure exactly what you mean, 1 of my queries looks like the following:

SELECT Count([Delegate].[ID]) AS [Total No Of Male Beneficiaries Helped]
FROM Delegate
WHERE Delegate.ID in ( SELECT Delegate.ID FROM Delegate INNER JOIN Activity ON Delegate.ID = Activity.ID
WHERE ((Delegate.Gender)="Male")
GROUP BY Delegate.ID, Delegate.Client, Activity.Activity
ORDER BY Activity.Activity;
);

Do either of you know how I can speed up my queries as they take around 30 seconds to open. I have over 1500 records??