2015-09-08 39 views
0

非常感谢大家的帮助。我还是很新的访问,并不知道从哪里开始寻找解决方案。 我想要做的是自动在我的表中填充名为“期间”的字段。我希望让它使用“Activity_Date”来查看具有参考正确时间段的日期范围的不同表格。基于哪个“期间”“Activity_Date”属于哪一个将返回正确的“期间”。我尝试过使用计算的数据类型和查询,并且我感觉没有比开始时更接近答案。根据范围在字段中选择一段时间

再次感谢您的时间。

回答

0

我会质疑为什么你需要填充表中的字段时间。 总之,我不会打扰。 它所处的时间段可以从同一条记录中的活动日期字段获取。

因此,您可以根据需要编写选择语句来计算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更新语句看起来有点像上面的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) 
+0

感谢你的帮助,我不完全相信你的建议是什么。我们运行了28天的时间段,并且在SQL中使用了对该时间段的引用。我所要做的就是保存在正确的时间内手动输入的步骤。有没有简单的方法来做到这一点? – Queenerc

+0

我的观点是没有必要进入这个时期。只需输入日期!您可以编写VBA代码(或SQL)来查找时间段并在日期旁边的(未绑定)控件中将其显示在窗体中,但是您不必将时间段存储在表格中! (只能在期间表中存储期间!) (您可以基于SQL查找期间,以便期限显示在locekd的绑定控件中,因为它取得了; s值从SQL底层查找表单 - 使用日期查找期间表中的期间 - 就像我上面写的SELECT一样)。 – HarveyFrench