You have to use a query with a sub query or two queries.
I use two queries because it is easier for me.
It sounds like you have 3 tables:
tblPermit: table of driver names
tblCourses: table of courses
tblTraining: a junction table for Driver/ training courses
In my test dB, Course4 had a PK of 4.
1st query:
Code:
SELECT tblPermit.DriverID, tblPermit.DriverName, tblCourse.CourseID
FROM tblPermit INNER JOIN (tblCourse INNER JOIN tblTraining ON tblCourse.CourseID = tblTraining.TrainingID_FK) ON tblPermit.DriverID = tblTraining.DriverID_FK
WHERE (((tblCourse.CourseID)=4));
This query gets all drivers WITH Course4 training. I named this query "WithCourse"
2nd query:
Code:
SELECT tblPermit.DriverID, tblPermit.DriverName
FROM WithCourse RIGHT JOIN tblPermit ON WithCourse.[DriverID] = tblPermit.[DriverID]
WHERE (((WithCourse.DriverID) Is Null));
This is the drivers without Course4 training. I named this query "DriverWithoutCourse"
In the first query, if you reference a control on a form for the course, you can find drivers that don't have that course without editing the query.