我有一个这样的表:
Name Country Grade
Lily Germany A
Anna USA C
Leon Slovenia -
Mia Italy
Carlos Mexico B
有两个按钮:
1. ASC button
2. DESC button
我试着用按钮按升序/降序对表格进行排序,但问题是我有A、B、C字母,但实际上是等级。使用我的代码:
Private Sub cboAufS_Click()
If Me.cboFilData = "KK" Then
Me.Text1163.SetFocus
DoCmd.RunCommand acCmdSortAscending
End If
End Sub
Private Sub cboAbS_Click()
If Me.cboFilData = "KK" Then
Me.Text1163.SetFocus
DoCmd.RunCommand acCmdSortDescending
End If
End Sub
这个代码给了我错误的结果,对于ASC,我得到:"&",-,A、 B、C和need",-C、 B,A,并且对于DESC,我得到C,B,A、-,"并且我需要A,B,C,-,">
有人能帮帮我吗?
计算查询中要应用排序的字段,并将该查询用作窗体或报表RecordSource。
Switch(Grade="A",5, Grade="B",4, Grade="C",3, Grade="-",2, True,1) AS SortOrd
在表单中,在按钮事件中使用代码,如:
Me.OrderBy = "SortOrd ASC"
或
Me.OrderBy = "SortOrd DESC"
在一个简单的报告中,类似的代码可以用于动态设置排序顺序。使用Sorting&分组实用程序在设计中将更加复杂。
您可以使用查询:
SELECT
Table1.Name,
Table1.Country,
Table1.Grade
FROM
Table1
ORDER BY
Abs(Nz([Grade]) = "") DESC,
Abs([Grade] = "-") DESC,
Table1.Grade DESC;
将DESC替换为ASC以进行反向排序。