【问题标题】:ms Access form subform sortms 访问表单子表单排序
【发布时间】:2009-10-02 14:01:31
【问题描述】:

我有一个表单,我在其中指定了表格视图中子表单使用的信息。然后子表单显示在主表单中指定的项目的条目。每个条目都有一个与之关联的日期。我希望条目按日期排序,以便最新日期位于底部,并且当您在子表单中添加条目时(假设为今天的日期),它会出现在需要的位置。当然,当您查看不同的项目然后返回该项目时,我希望排序将新项目放在适当的排序位置(以防新项目的日期早于数据库中已有的任何日期)。

简而言之:如何为表格形式指定排序条件?

【问题讨论】:

    标签: ms-access forms sorting subform tabular


    【解决方案1】:

    如果向子表单添加记录,则需要重新查询并刷新表单。

    【讨论】:

    • 重新查询后刷新是多余的。
    【解决方案2】:

    如果您查看子表单的属性菜单,您会发现该表单所基于的查询。如果在该查询中您在日期列上选择了“排序”顺序,则应反映在表单上。

    【讨论】:

    • 表单的查询不在属性中。此外,还有一个名为“Order By”的选项,我输入了日期,但它不会自动排序。打开表单后,我可以右键单击并说“应用过滤器/排序...”,它会按日期对其进行排序,但它不会像我希望的那样在打开表单时这样做。
    • 我明白了。我在 AfterUpdate 位置添加了一个 vba 例程。事情是这样的: Me.OrderBy = "Date" Me.OrderByOn = True 感谢您的帮助
    • 注意:您可能需要循环 OrderByOn false 然后 true 才能使其生效,尤其是如果您之前已打开它。
    • 如果底层 SQL SELECT 被适当地排序,您不需要指定 ORDER BY 属性,也不需要更新它们——您只需要在 AfterUpdate 事件中重新查询表单。如果 OrderBy 已设置且 OrderBy 为 ON,您只需重新查询表单 - 您无需将 OrderBy 切换为 ON。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多