【发布时间】:2009-10-07 14:41:26
【问题描述】:
我有一个包含两个文本框供用户输入的表单。两个文本框的属性格式都设置为“短日期”。一个是“开始日期”,另一个是“结束日期”。我还有几个表,每个表都有一个 DateTime 字段(“studystartdatetime”)。我希望能够查询这些表,但将结果限制为 DateTime 字段介于输入日期(含)之间的行。目前,条件是:
WHERE s.studystartdatetime BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate
但是,这不会返回在指定的结束日期发生的行。
我已经尝试了 CDate、Format 和 DateValue 的所有组合,我可以想到在其中包装一个或所有这些字段,但我总是收到相同的神秘错误:
表达式输入错误,或者太复杂而无法计算。例如,一个数值表达式可能包含太多复杂的元素。尝试通过将部分表达式分配给变量来简化表达式。
我尝试过的一些条件示例:
WHERE CDate(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate
WHERE DateValue(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate
WHERE CDate(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN CDate(Format(forms!frmMain!txtstartdate, "yyyy/mm/dd")) AND CDate(Format(forms!frmmain!txtenddate, "yyyy/mm/dd"))
WHERE DateValue(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN CDate(Format(forms!frmMain!txtstartdate, "yyyy/mm/dd")) AND CDate(Format(forms!frmmain!txtenddate, "yyyy/mm/dd"))
WHERE DateValue(Format(s.studystartdatetime, "Short Date")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate
等等
对此的任何意见将不胜感激:)
【问题讨论】:
标签: sql database ms-access ms-access-2007