2

我目前有一个使用表单中的日期字段的查询。一切都编译得很好,问题是当我尝试对此进行扩展时。我想在表格上显示的日期前一天指定一个日期。我当前用于获取日期的 SQL 是

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

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

表达式键入不正确,或者太复杂而无法计算。

任何建议将不胜感激。

4

3 回答 3

2

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

PARAMETERS Forms!Frm_Start![Date] DateTime;

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

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])
于 2013-01-21T16:32:19.143 回答
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
于 2013-01-21T16:27:46.573 回答
0

试试 dateadd 函数:

`dateadd("d",1,mydatefield)`
于 2013-01-21T16:28:59.083 回答