MS Access表列表顺序在子表单中默认

时间:2015-03-09 06:46:48

标签: sorting ms-access ms-access-2010

我有一个带表的子表单,其中一些字段仅限于表。表按正确的顺序排序,但在子表单中使用时,它将设置为默认排序。我找不到正确位置的位置来设置排序标准。我尝试使用查询而不是表,但我只能通过升序或降序(或没有)进行排序。所有这三个选项都以不希望的顺序产生。尽管有表设置,但相位被默认排序的示例:

Right order

Wrong order

建议?

2 个答案:

答案 0 :(得分:1)

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

要进行数字排序,请添加仅包含数字的列和 - 在源中 - 仅对其进行排序。如果您不单独编号,请使用以下表达式创建:

Val(Mid([PhaseField], 7))

答案 1 :(得分:1)

正如古斯塔夫建议的那样,在你的t_Phase表中添加另一个字段,这将是你希望这个列表出现在下拉列表中的顺序(确保它是一个数字字段):

enter image description here

提供数字顺序:

enter image description here

在另一个表中,您可以通过查找向导选择t_Phase表中的ID字段:

enter image description here

enter image description here

移动您刚创建的ID和新的“订单”字段:

enter image description here

使用“订单”字段作为要用于排序的字段,并确保选择“升序”:

enter image description here

继续完成向导:

enter image description here

选择包含您要进入表记录的数据的字段(我假设它是ID字段而不是Order字段,因此请确保选择ID):

enter image description here

完成查找向导并转到桌面上的数据表视图,然后检查下拉列表是否按数字顺序排列。你可能已经注意到了一个问题,因为它显示了ID和Order列:

enter image description here

要隐藏不必要的Order列,请返回Design View并单击相位字段以选择它。

底部应该是“查找”标签。单击此按钮并注意Column Widths属性...它显示2个不同的宽度值;第一个是ID字段,第二个是Order字段。将Order字段设置为0cm以隐藏它。然后,我建议将剩余的Id字段宽度设置为宽度足以显示所有ID字段选项的内容。然后我将List Width属性设置为相同的宽度。

enter image description here

8cm,例如:

enter image description here

这应该会产生如下所示的内容,这有望成为您追求的目标。

enter image description here

如果您没有在表的设计结构中添加查找字段,而是在表单或子表单上使用组合框,则原理基本相同;您只需要从表单的“属性表”“格式”选项卡中修改组合框属性,而不是:

enter image description here