Ваш запрос не делает то, что вы думаете.
Ваша проблема - OR
- в момент заполнения date_start эта запись будет возвращена.
Это, вероятно, тот запрос, который вам нужен:
SELECT * FROM myDateTable
WHERE (date_Start
BETWEEN DateValue('" & CoverMonth_start & "')
AND DateValue('" & CoverMonth_end & "')")
OR (date_end
BETWEEN DateValue('" & CoverMonth_start & "')
AND DateValue('" & CoverMonth_end & "')")