首页 > 解决方案 > MS Access 表单查询日期范围(甚至没有)

问题描述

我是 Access 新手,我正在这里建立一个数据库来记录所有已完成的生产。我能够使用日期范围、条件、零件号和工单之间的条件制作一个查询表单。使用表达式生成器中的代码,这些是放置在标准中的内容:

日期范围:Between [Forms]![Form Query]![BeginDate] And [Forms]![Form Query]![EndDate]

零件号:Like (IIf(IsNull([Forms]![Form Query]![Part Number]),"*",[Forms]![Form Query]![Part Number]))

健康)状况:Like (IIf(IsNull([Forms]![Form Query]![Condition]),"*",[Forms]![Form Query]![Condition]))

即使零件编号和条件为空,查询也会显示所有记录。我的问题是日期范围,如果我将其留空(例如,我只是想查询所有记录),它将返回零值。我希望它能让用户简单,如果我将日期范围留空,它仍然会显示所有记录。我不得不根据需要临时放置日期范围以始终返回结果。

查询表

查询条件

感谢所有输入!非常感谢!

标签: ms-access

解决方案


如果未输入日期,请​​提供替代值:

Between Nz([Forms]![Form Query]![BeginDate], #1/1/1900#) And Nz([Forms]![Form Query]![EndDate], #12/31/2200#)

对于文本字段,假设 value 是唯一的并且永远不是较长字符串的一部分,LIKE 标准可以连接通配符:

LIKE [Forms]![Form Query]![Part Number]) & "*"


推荐阅读