使用访问查询中表单的日期字段

时间:2013-01-21 16:19:18

标签: sql ms-access

我目前有一个使用表单中的日期字段的查询。一切都很好,问题是当我尝试扩展这个。我想在表单上显示的日期之前一天指定日期。我当前用来获取日期的SQL是

WHERE ((DateValue([TIMESTAMP]))=[Forms]![Frm_Start]![Date]) 

但是当我尝试在结尾添加+ 1时,它会显示以下消息:

  

表达式输入错误,或者太复杂而无法评估。

非常感谢任何建议。

3 个答案:

答案 0 :(得分:2)

使用PARAMETERS子句作为SQL的第一行,通知db引擎表单控件包含日期/时间值。

PARAMETERS Forms!Frm_Start![Date] DateTime;

然后在WHERE子句中使用带DateAdd()的参数:

WHERE DateValue([TIMESTAMP])=DateAdd("d", 1, Forms!Frm_Start![Date])

但是,这需要为表中的每一行运行DateValue()[TIMESTAMP]已建立索引的速度应该更快:

WHERE
        [TIMESTAMP] >= DateAdd("d", 1, Forms!Frm_Start![Date])
    AND [TIMESTAMP] < DateAdd("d", 2, Forms!Frm_Start![Date])

答案 1 :(得分:0)

一种可能性是:

SELECT Table1.[ADateTime]
FROM Table1
WHERE Table1.[ADateTime] Like ([forms]![Table1]![ADate]+1) & "*"

日期是带小数的数字作为时间,所以另一种可能性:

SELECT Table1.ADateTime
FROM Table1
WHERE CLng([ADateTime])=[forms]![Table1]![ADate]+1

答案 2 :(得分:0)

尝试使用dateadd函数:

`dateadd("d",1,mydatefield)`