Assuming your tables and field names are exactly as you posted them:
Code:
SELECT Elements.Division, Elements.StartDate, Elements.EndDate, Elements.PartNo, Elements.Description, Elements.Etc1, Elements.Etc2, Elements.Etc3, IIf(IsNull([SetDate]),"Carry Forward","New") AS CalculatedField
FROM (Elements LEFT JOIN Ranges ON Elements.Division = Ranges.Division) LEFT JOIN SetDates ON (Elements.StartDate = SetDates.SetDate) AND (Elements.Division = SetDates.Division)
WHERE (((IIf([elements].[startdate] Between [ranges].[startdate] And [ranges].[enddate],1,0))=1)) OR (((IIf([elements].[enddate] Between [ranges].[startdate] And [ranges].[enddate],1,0))=1)) OR (((IIf([elements].[startdate]<[ranges].[startdate] And [elements].[enddate]>[ranges].[enddate],1,0))=1));
I left the selection of the dates as three separate fields to show you what I did without creating one long formula. But basically when you check the date you're checking three sets of possibilities
Is the start date in elements between the start and end date of ranges
Is the end date in elements between the start and end date of ranges
Are the start date and end date of elements completely contained within a single span of ranges.