Не могу сказать однозначно, но я на 99% уверен, что проблема в том, что вы включили в этот запрос имя поля, которого нет в таблице. Проверьте все имена полей и убедитесь, что они написаны точно так же, как в таблице.
Также поле «Дата» является вероятным подозрением, поскольку оно является зарезервированным словом в Access. Я бы предложил не называть поле "Дата". Однако, если вы застряли с этим именем, во всех ваших запросах заключите его в квадратные скобки, например:
Dim sort_slots_sql As String
sort_slots_sql = _
"select [date], part, service, slot" & _
" from ass_slots, ass_occasions" & _
" where ass_slots.occasion = ass_occasions.occasion" & _
" order by slot, service, [date], part"
Set slots_rst = db.OpenRecordset(sort_slots_sql)