如何从表单运行带日期的查询?

时间:2014-04-28 22:04:45

标签: ms-access ms-query

我有一个select查询,它根据表单中的2个日期返回记录 - >=Forms!frmReport!StartDate AND <=Forms!frmReport!EndDate。 问题是,只要用户在StartDateEndDate中输入相同的日期,即使我确定表中的数据符合条件,也不会返回任何记录。任何人都可以说为什么查询没有返回任何信息?

2 个答案:

答案 0 :(得分:1)

如果要比较的字段为rs("Date"),请尝试

Int(rs("Date")) >=Forms!frmReport!StartDate AND Int(rs("Date")) <=Forms!frmReport!EndDate

对于查询构建器,请将日期检查字段修改为以下内容:

enter image description here

YourDateField替换为您的字段名称。

如果时间相关,请删除查询构建器中的字段表达式,然后将记录的字段与:

进行比较
>=Forms!frmReport!StartDate AND <= iif(Forms!frmReport!EndDate = Forms!frmReport!StartDate, dateadd("d",1,Forms!frmReport!EndDate), Forms!frmReport!EndDate)

此表达式表示如果结束日期与开始日期相同,则添加一天,否则只使用结束日期。

答案 1 :(得分:1)

将表单值转换为查询中的 日期值:

>= cdate(Forms![frmReport]![StartDate]) and <= cdate(Forms![frmReport]![EndDate])

并将字段默认设置为=date()以仅捕获日期,而不是=now()