如何在 WHERE 子句中定义输入日期(MS Access DB)

How to define input date in WHERE clause (MS Access DB)

我有以下问题。目前我正在使用这个 SQL 语句:

SELECT ID, MAX(Datum) AS DateField, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,Date())
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;

我需要用户输入日期的过去 12 个月,但我不知道如何在 WHERE 子句中定义输入(例如#01.01.2017#)?!

这意味着当用户 select 01/01/2017 那么结果需要是去年的所有 12 个月。

替换

Date()

Forms!MyForm!MyCombo.Value

按基准分组时 select Max(Datum) 没有意义。因此:

SELECT ID, Datum AS DateField, Assets
FROM dbTable
GROUP BY Datum, ID, Assets
HAVING Datum >= DateAdd("yyyy", -1, DateValue(Forms!YourForm!txtDatum))
ORDER BY Datum DESC;

好的,我解决问题如下:

SELECT ID, Datum, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,#01/01/2017#) and Datum<=#01/01/2017# and ID=325
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;