Ms access 根据范围在字段中选择时段

Ms access 根据范围在字段中选择时段,ms-access,ms-access-2007,Ms Access,Ms Access 2007,提前感谢大家的帮助。我还是个新手,不知道从哪里开始寻找解决方案。 我试图做的是在我的表中自动填充一个名为“Period”的字段。我想让它使用“Activity_Date”查看另一个表,该表的日期范围引用了正确的期间。根据“活动日期”所属的“期间”,将返回正确的“期间”。我曾经尝试过使用计算数据类型和查询,但我觉得没有比开始时更接近答案 再次感谢您的时间。我想问您为什么需要在表中填充字段句点。 简言之,我不想麻烦了。 可以从同一记录中的“活动日期”字段中删除它所在的期间 因此,您可以编写selec

提前感谢大家的帮助。我还是个新手,不知道从哪里开始寻找解决方案。 我试图做的是在我的表中自动填充一个名为“Period”的字段。我想让它使用“Activity_Date”查看另一个表,该表的日期范围引用了正确的期间。根据“活动日期”所属的“期间”,将返回正确的“期间”。我曾经尝试过使用计算数据类型和查询,但我觉得没有比开始时更接近答案


再次感谢您的时间。

我想问您为什么需要在表中填充字段句点。 简言之,我不想麻烦了。 可以从同一记录中的“活动日期”字段中删除它所在的期间

因此,您可以编写select语句,根据需要计算MyTable中记录的周期

    SELECT TableWithPeriods.period, MyTable.activity_date
    FROM  MyTable
          LEFT JOIN TableWithPeriods
          ON MyTable.activity_date 
             BETWEEN TableWithPeriods.StartDate 
                 AND TableWithPeriods.EndDate 
如果您需要多次访问时段,则有一个参数用于将MyTable中的时段值与TableWithPeriods保持同步

如果有人改变某个时期的某个日期,那么保持同步可能会很糟糕

保持同步可能意味着编写一点SQL来更新所有没有设置句点或句点现在不同的MyTable行。 VBA update语句看起来有点像上面的SELECT语句。 或 您可以使用数据库onchange宏来响应MyTable中添加或更新的数据(如果用户可以更改日期,还可以使用TableWithPeriods)

无论如何,这是我的看法。我不会复制这个值

PS我不是100%确定我上面给出的SQl,但是这可能会起作用

    SELECT TableWithPeriods.period, MyTable.activity_date
    FROM  MyTable
          LEFT JOIN TableWithPeriods
          ON ( MyTable.activity_date >= TableWithPeriods.StartDate 
                 AND MyTable.activity_date <= TableWithPeriods.EndDate )
选择TableWithPeriods.period,MyTable.activity\u日期
从MyTable
使用句点左连接表
在(MyTable.activity_date>=TableWithPeriods.StartDate)上

和MyTable.activity\u date谢谢你的帮助,我不完全确定你的建议是什么。我们运行了28天的周期,我在SQL中使用了对该周期的引用。我所要做的只是省去了手动输入正确周期的步骤。这不是一种简单的方法吗?我的观点是不需要输入周期d、 只需输入日期!您可以编写VBA代码(或SQL)来查找句点,并将其显示在日期旁边(未绑定)控件的表单中,但不必将句点存储在表中!(仅在句点表中存储句点!)(您可以将表单基于查找句点的SQL,以便在绑定控件中显示句点,该控件位于locekd,因为它从表单的SQL基础上获取其值lookedup,该SQL使用日期在句点表中查找句点,如我上面写的SELECT)。