搜索Microsoft Access 2013表单查询中的一系列日期

时间:2014-06-27 12:29:46

标签: ms-access

我正在尝试使用用户可以输入开始日期和结束日期并仅返回这些结果的表单来搜索我的数据库。我一直在尝试这些论坛所说的一切,但我得到的结果是除了我想要的范围之外的一切。所有这些数据都被省略了。

我尝试切换开始/结束日期字段但是没有用。

以下是我现在所得到的相反结果:

Like "*" & (([uut_result].[START_DATE_TIME]) Between [Forms]![TestFormResults]![StartDateTime] And [Forms]![TestFormResults]![EndDateTime]) & "*"

1 个答案:

答案 0 :(得分:3)

WHERE (([uut_result].[START_DATE_TIME]) 
Between [Forms]![TestFormResults]![StartDateTime] 
And 
IIF([Forms]![TestFormResults]![EndDateTime] Is Null, Date(), [Forms]![TestFormResults]![EndDateTime])

IIF()的作用是评估一个条件,即EndDateTime = Null。如果是Null,又名IsNull(EndDateTime) = True,那么它返回值,如果为真片,这将是今天的日期。如果IsNull(EndDateTime) = False表示该控件中有一个日期,则会返回值,如果为false ,在这种情况下为[Forms]![TestFormResults]![EndDateTime]

*是SQL中的wildcard。它用于查找搜索条件组合的变体。

SELECT [Fields]
FROM [Table]
WHERE ((YourDateField) BETWEEN #[First date]# AND #[Second date]#)

这是假设您的字段名称被正确引用。 此#符号适用于硬编码日期。使用表单控件引用不需要它们(您的日期语法很好。)