1

我有一个选择查询,它根据表单中的 2 个日期返回记录 - >=Forms!frmReport!StartDate AND <=Forms!frmReport!EndDate。问题是,每当用户在两者中输入相同的日期StartDate并且EndDate没有记录返回时,即使我确定表中存在符合条件的数据。谁能说出为什么查询没有返回任何信息?

4

2 回答 2

1

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

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

对于查询生成器,将您的日期检查字段修改为如下所示:

在此处输入图像描述

替换YourDateField为您的字段名称。

如果时间相关,请去掉查询构建器中的字段表达式,而是将记录的字段与:

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

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

于 2014-04-28T22:26:46.923 回答
1

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

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

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

于 2014-04-28T23:04:38.717 回答