Вот как быть с установлением контрольных сроков в одном курсе для разных групп, я решения не знаю.
Имеется такая идея:
обучение производится в четко контролирумые сроки, т.е. формируем группу и в этой группе будет только текущие слушатели. По истечении времени все слушатели исключаются и этой группы. Те, кто прошел обучение, им в конце курса (по условию значения оценки) будет предложено записаться вновь по кодовому слову с попаданием в группу обучения. Конечно слушатель может проигнорировать этот факт, но должно прийти сообщение на почту о завершении курса слушателем и таким образом можно проконтролировать, что слушатель попал в группу обученных. Таким образом есть проблема автоматического исключения по завершению обучения.
Срок можно установить в способе записи, он назначится автоматически после записи слушателя на курс
По поводу Access, ну посмотрите например тут http://kdesoft.ru/php/faq.databases.html - Через odbc или ado