You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access数据库Between dates日期区间查询无结果问题求助

Access日期筛选失效排查方向

  • 处理日期控件空值场景
    若用户未输入起始/结束日期,Between 和空值比较会直接返回False,导致所有结果被过滤。可将日期条件替换为以下写法,用Nz函数把空值转为极小/极日期,空输入时不影响其他条件的匹配:
    (SamplesT.SampleReceived Between Nz([Forms]![SampleSearchF]![DateReceivFrom], #1900-01-01#) And Nz([Forms]![SampleSearchF]![DateReceivTo], #2100-12-31#))
    
  • 校验日期格式与控件属性
    你所用的dd/mm/yyyy日期格式容易和Access默认的mm/dd/yyyy解析逻辑冲突:
    1. 确认表单上的DateReceivFrom、DateReceivTo控件为日期选择器类型,而非普通文本框,避免输入的日期被错误解析为无效值
    2. 确认两个控件为未绑定状态,没有关联到表的字段,仅作为搜索输入使用
  • 兼容字段隐含时间部分
    即使字段设置为短日期格式,若入库时写入了时间(如2021/09/15 16:20),输入结束日期为2021/09/15时,Between默认截止到当日0点,会过滤掉带时间的记录。可调整结束日期判断逻辑:
    SamplesT.SampleReceived <= DateAdd("d", 1, Nz([Forms]![SampleSearchF]![DateReceivTo], #2100-12-31#))
    
  • 核对控件与表单名称拼写
    确认表单名称SampleSearchF、两个日期控件名称DateReceivFrom、DateReceivTo无拼写错误,Access对表单控件引用的拼写敏感性极高,差一个字符就会返回空值。
  • 缩小范围调试
    临时移除查询中所有其他筛选条件,仅保留日期条件测试:如果硬编码日期(如Between #2021-08-01# And #2021-09-30#)能返回结果,说明问题出在表单控件的引用逻辑;如果硬编码也无结果,需检查SampleReceived字段的数据类型是否真的为Date/Time,是否存在异常入库的无效日期值。

内容的提问来源于stack exchange,提问作者KG12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:24:00