Рассматривали ли вы не равное объединение? Это будет выглядеть примерно так:
SELECT A.StudentID, A.StartDate, A.EndDate, A.Field1, A.Field2
FROM tblEnrollment AS A LEFT JOIN tblEnrollment AS B ON (A.StudentID = B.StudentID)
AND (A.EndDate=B.StartDate-1)
WHERE B.StudentID Is Null;
Что дает вам все записи, которые не имеют соответствующей записи, которая начинается на следующий день после даты окончания первой записи.
[Предупреждение: остерегайтесь того, что вы можете редактировать неэквивалентное объединение только в конструкторе запросов Access в представлении SQL - переключение в представление конструктора может привести к потере соединения (хотя при переключении Access сообщит о проблеме , и если вы немедленно переключитесь обратно в SQL View, вы его не потеряете)]
Если вы тогда СОЮЗИТЕ что с этим:
SELECT A.StudentID, A.StartDate, B.EndDate, A.Field1, A.Field2
FROM tblEnrollment AS A INNER JOIN tblEnrollment AS B ON (A.StudentID = B.StudentID)
AND (A.EndDate= B.StartDate-1)
Он должен дать вам то, что вам нужно, при условии, что одновременно не может быть более двух непрерывных записей. Я не уверен, как бы вы это сделали, если бы у вас было более двух смежных записей (это может включать в себя просмотр StartDate-1 по сравнению с EndDate), но это может привести вас в правильном направлении.