MS Access中的ASC/DESC排序



我有一个这样的表:

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以进行反向排序。

最新更新