子窗体中的 MS Access table 列表顺序是默认的

MS Access table list order is defaulted in subform

我有一个带有 table 的子表单,其中某些字段仅限于 table。 table 以正确的顺序排序,但在子表单中使用时,它被设置为默认排序。我找不到设置排序标准的正确位置。我尝试使用查询而不是 table,但我只能按升序或降序(或什么都不排序)进行排序。所有三个选项都会导致不希望的顺序。尽管有 table 设置,阶段仍被排序为默认值的示例:

建议?

组合框和列表框始终包含文本,因此您的列未按数字排序。

要进行数字排序,请添加一个仅包含数字的列,然后 - 在源代码中 - 仅对其进行排序。如果您没有单独编号,请使用以下表达式创建它:

Val(Mid([PhaseField], 7))

按照 Gustav 的建议,将另一个字段添加到您的 t_Phase table,这将是您希望此列表出现在下拉列表中的顺序(确保它是一个数字字段) :

提供数字顺序:

在您的另一个 table 中,您可以通过 select 通过查找向导使用 t_Phase table 中的 ID 字段:

移动 ID 和您刚创建的新 "Order" 字段:

使用 "Order" 字段作为要用于排序的字段,并确保 "Ascending" 是 selected:

通过向导继续:

Select 包含您要进入 table 记录的数据的字段(我假设它是 ID 字段而不是订单字段,因此请确保 ID 是 selected):

完成查找向导并进入 table 上的数据表视图并检查下拉列表现在是否按数字顺序排列。您可能已经注意到一个问题,因为它同时显示 ID 和订单列:

要隐藏不必要的 Order 列,请返回设计视图并单击您的阶段字段以 select 它。

底部应该是一个 "Lookup" 选项卡。单击此按钮并注意列宽 属性... 它显示了 2 个不同的宽度值;第一个是 ID 字段,第二个是订单字段。将 Order 字段设置为 0cm 以将其隐藏。然后我建议将剩余的 Id 字段宽度设置为足以显示所有 ID 字段选项的宽度。然后我将列表宽度 属性 设置为相同的宽度。

8cm,例如:

这应该会产生如下所示的结果,希望这就是您所追求的结果。

如果您不是在 table 的设计结构中添加查找字段,而是在窗体或子窗体上使用组合框,则原理几乎相同;您只需修改表单 属性 Sheet "Format" 选项卡中的组合框属性即可: