我有一个select查询,它根据表单中的2个日期返回记录 - >=Forms!frmReport!StartDate AND <=Forms!frmReport!EndDate
。
问题是,只要用户在StartDate
和EndDate
中输入相同的日期,即使我确定表中的数据符合条件,也不会返回任何记录。任何人都可以说为什么查询没有返回任何信息?
答案 0 :(得分: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)
此表达式表示如果结束日期与开始日期相同,则添加一天,否则只使用结束日期。
答案 1 :(得分:1)
将表单值转换为查询中的 日期值:
>= cdate(Forms![frmReport]![StartDate]) and <= cdate(Forms![frmReport]![EndDate])
并将字段默认设置为=date()
以仅捕获日期,而不是=now()
。