根据组合框文本而不是组合框编号对 Access 连续表单上的字段进行排序

问题描述 投票:0回答:1
我在“Task-TrainingStatus”表中有一个列表

身份优先级
1 中型
2 低
3 高
4 最低
5 不适用
6 最高


我的数据表“Task-TrainingList”有

ID 优先级
1 3
2 3
3 6
4 2
5 1
6 2
7 4
8 5

我有一个连续的表单“TrainingList”,其中有一个组合框“cboxPriority” 
控制源:优先级
行来源:SELECT [Task-TrainingStatus].[ID]、[Task-TrainingStatus].[优先级] FROM [Task-TrainingStatus] ORDER BY [优先级]; 
装订柱:1
列数:2
列宽:0";1"
组合框按预期工作,显示低、最低、中等...

我有一个标签“lblPriority”,带有点击事件(简化)
Private Sub lblPriority_Click()
    Me.OrderBy = "PriorityLevel"
    Me.OrderByOn = True
End Sub
问题是它根据数字 ID 排序,所以我得到:
中等的
低的
高的
最低
不适用
最高

我希望它按文本排序

高的
最高
低的
最低
中等的
不适用

排序基于基础表值,我不知道如何从那里获取文本值。

我该怎么做?

蒂亚

sorting ms-access combobox
1个回答
0
投票

您的表单需要使用查询作为控制源:

SELECT [Task-TrainingList].ID, 
       [Task-TrainingList].PriorityLevel, 
       [Task-TrainingStatus].Priority
FROM [Task-TrainingList] 
INNER JOIN [Task-TrainingStatus] ON [Task-TrainingList].ID = [Task-TrainingStatus].ID;

然后,您可以将表单上的

OrderBy
属性设置为
Priority
或者作为替代方案,您可以对查询中的数据进行排序:

SELECT [Task-TrainingList].ID, 
       [Task-TrainingList].PriorityLevel, 
       [Task-TrainingStatus].Priority
FROM [Task-TrainingList] 
INNER JOIN [Task-TrainingStatus] ON [Task-TrainingList].ID = [Task-TrainingStatus].ID
ORDER BY [Task-TrainingStatus].Priority;
© www.soinside.com 2019 - 2024. All rights reserved.