Graham,
You haven't described your underlying table design(s) in detail. Based on your post, I have attached a draft model of the tables typically involved in Employee Training. Your set up may be different depending on the details in your company.
In your data entry routine, you could check and see if this Employee has already taken this Course.
Code:
If Dcount("*","EmployeeTookCourse","CourseID=" & yourCourseFormControl & " AND EmployeeID =" & yourEmployeeFormControl ) >0 Then
msgBox "That Employee - Course combination already exists", vbOKOnly
Also, you can place a unique composite index on fields CourseID, EmployeeID in table "EmployeeTookCourse". The database will check for duplicates when this combination is being stored. You can check for error 3022 and reject the storage attempt.
Good luck with your project.