Glad you are prepared to give it a go - best way to learn
The two things that are relevant in this particular situation are Left Joins and Sub Queries.
We'll look at the first part of the union query again. The object of the exercise is to list employees who are not on a course.
The way to do this is to have a query between the Staff table and 'the other table' where there are records in the staff table, but not in the other table.
We'll look at the left join first
So first you create a left join which means that all the records will appear in the staff table and only those records in the other table where there is a match on the link - otherwise it returns null from the other table.
So if we only want to see staff who are not on a course then the field value in the other table is null - doesn't matter which field you use in the other table - they will all be null.
To get a left join in the query builder, create a relevant join between two tables (drawing from the Staff table) then right click on the line and follow your nose.
Note there are some limitations to left joins in more complex queries as you will find if you follow the above in your existing query. So to solve this we make use of a sub query.
Sub queries come in a number of forms - they can be used in place of a dlookup, dmax etc function (they are usually significantly faster), used as a criteria and in this case combine tables into a sub query that is used as another table which is very similar to having chained queries.
You cannot build these in the query builder and have to use SQL, but there is a fairly simple technique you can use.
From your initial query in the query builder remove the Staff table which will also eliminate the staff fields used in the query - you'll put them back later
Next go into SQL view and before the word SELECT type the following:
SELECT * FROM (
Then go to the end of the query, remove the semi colon and type
) AS C
You query is now surrounded by brackets
Now go back to the query builder and you will see you now have a table called C.
However what is often missing is the field you need to link to the Staff table - In this case Doncaster.[Full Name] so go back to the SQL and either edit the code or remove the additional bit you've just added, return to the query builder add it in then back to SQL view and add the top and tails.
Once done, go back to the query builder, add back your Staff table, do a left join to the sub query and add another criteria where somefield from the subquery is null - And don't forget to add back the leaving date criteria.
OK, that's the principle - go practice
PS, since you are only trying to determine sufficient information to determine the course, you may find you can simplify your subquery and drop a table or two - I did in the previous solution.