我目前有一個使用表單中的日期字段的查詢。一切都編譯好,問題是當我嘗試擴大這個。我想在表格上顯示的日期前一天指定一個日期。我用搶的日期目前SQL是在訪問查詢中使用表單中的日期字段
WHERE ((DateValue([TIMESTAMP]))=[Forms]![Frm_Start]![Date])
然而,當我嘗試添加+ 1結束時,顯示此消息:
表達的輸入不正確,或者是太複雜,無法評估。
任何意見將不勝感激。
我目前有一個使用表單中的日期字段的查詢。一切都編譯好,問題是當我嘗試擴大這個。我想在表格上顯示的日期前一天指定一個日期。我用搶的日期目前SQL是在訪問查詢中使用表單中的日期字段
WHERE ((DateValue([TIMESTAMP]))=[Forms]![Frm_Start]![Date])
然而,當我嘗試添加+ 1結束時,顯示此消息:
表達的輸入不正確,或者是太複雜,無法評估。
任何意見將不勝感激。
使用PARAMETERS
子句作爲你的SQL的第一行來通知數據庫引擎的表單控件l包含日期/時間值。
PARAMETERS Forms!Frm_Start![Date] DateTime;
然後使用與DateAdd()
參數的WHERE子句中:
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])
一種可能性是:
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
嘗試DATEADD函數:
`dateadd("d",1,mydatefield)`
TIMESTAMP和日期都是保留字。建議您儘可能重命名它們。 – HansUp
謝謝,這很好。 – robbiecutting