the trick here is what some people call an "exotic" join, where it's not joining on discrete values, but rather on the criteria (between dates) you are looking for.
Something like this should give you the idea, and might even run without changes, based on your table/column names you posted here:
SELECT * FROM DutyRosterShift
INNER JOIN Vacation
ON DutyRosterShift.DATO BETWEEN Vacation.StartDate AND Vacation.EndDato
WHERE DutyRosterShift.ShiftType = 1
Lowell