0
我不知道如何表达这个问题,很好的词形式,所以决定用图片来帮助我。访问SQL NOT BETWEEN涉及子表单
这是我的表和它们之间的关系:
,这里是我卡上的形式:
我试图使窗体以便当开始日期和输入一个结束日期后,会在大篷车组合框的行源中查询一个查询,该查询会显示在此期间未预订的所有大篷车。目前我的SQL技能受到限制,因为我目前正在为这个项目学习它们。这是SQL查询到目前为止,我还做:
SELECT tblCaravan.caravanID, tblCaravan.caravanType
FROM tblCaravan, tblCaravansWeeksBooked
WHERE (((tblCaravansWeeksBooked.startDate) Not Between [txtStartDate] And [txtEndDate])
AND ((tblCaravansWeeksBooked.endDate) Not Between [txtStartDate] And [txtEndDate]));
我有马帮组合框重新查询本身时,它已经重点访问使用宏。
问题是我所做的SQL没有工作,我看不出为什么。我把它通过使用与被向导建立了两个查询之前这些工作:
SELECT tblCaravansWeeksBooked.startDate, tblCaravansWeeksBooked.endDate, tblCaravansWeeksBooked.caravanID
FROM tblCaravansWeeksBooked
WHERE (((tblCaravansWeeksBooked.startDate) Between [Start Date] And [End Date])
AND ((tblCaravansWeeksBooked.endDate) Between [Start Date] And [End Date]));
和 SELECT tblCaravan.caravanID,tblCaravan.caravanType FROM tblCaravan LEFT JOIN qryWeeksBooked ON tblCaravan.caravanID = qryWeeksBooked.caravanID WHERE (((qryWeeksBooked.caravanID)为空));
我希望这里有人能帮助我朝正确的方向发展,感谢所给予的任何帮助。
杰克
它的工作原理完全一样它应该,非常感谢你这一点。我想知道,如果你或其他人能指出我为什么这个工作的方向,而不是我以前使用过的方法。 – 2012-03-16 23:58:01
你的逻辑错误,startdate可能在一段时间之前,enddate在它之后,所以它们都不会在BETWEEN之间,但时间段会重叠。 “从tblCaravan,tblCaravansWeeksBooked'产生一个所谓的笛卡尔积,它将一个表中的所有记录与另一个表中的所有记录结合起来。它没有将商队与有意义的预订联系起来。你会以某种方式加入表格。 – 2012-03-17 16:36:13