You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现StartDate列升序排序且NULL值置于列表末尾?

调整Access拆分表单的排序规则:空StartDate记录排末尾

我之前也碰到过类似的需求,在Access里要让空值排在排序结果的末尾其实很灵活,给你两种实用的解法,都能完美解决你的问题:

方法一:新增计算字段分组排序

这种方法逻辑清晰,容易理解和维护:

  1. 打开作为表单数据源的查询,进入设计视图
  2. 在查询设计网格的空白字段行,输入以下表达式:
    SortPriority: IIf(IsNull([StartDate]), 2, 1)
    这个字段会给有StartDate的记录标记为1,空值记录标记为2
  3. SortPriority字段设置升序排序,然后再给StartDate字段设置升序排序
  4. 如果不想在表单里显示这个计算字段,可以右键点击字段列,选择隐藏列
  5. 保存查询,回到拆分表单刷新数据,就能看到有日期的记录按StartDate升序排列,空值记录全部排在最后

方法二:直接在排序规则里替换空值

如果不想新增字段,可以直接修改StartDate的排序逻辑:

  1. 同样打开查询的设计视图
  2. StartDate字段的排序行,输入以下表达式:
    IIf(IsNull([StartDate]), DateSerial(9999,12,31), [StartDate])
    这个逻辑会把空的StartDate替换成一个极远的未来日期(9999年12月31日),自然就会排在所有真实日期的后面
  3. 保存查询后刷新表单,效果和方法一完全一致

这两种方法都不需要修改表单本身,只需要调整数据源查询的排序规则就可以了,操作起来都很简单,你可以根据自己的习惯选一种就行~

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

火山引擎 最新活动