如何解决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 并且需要“”,-C,B,A,对于 DESC,我得到 C,B,A,-," " 我需要 A,B,C,-," "
有人可以帮我吗?
解决方法
计算查询中的字段以应用排序并将该查询用作表单或报表记录源。
Switch(Grade="A",5,Grade="B",4,Grade="C",3,Grade="-",2,True,1) AS SortOrd
在表单中,在按钮事件中使用代码,例如:
Me.OrderBy = "SortOrd ASC"
或
Me.OrderBy = "SortOrd DESC"
在一个简单的报表中,可以使用类似的代码来动态设置排序顺序。在设计中使用排序和分组实用程序的复杂报表的代码会更加复杂。
,您可以使用查询:
SELECT
Table1.Name,Table1.Country,Table1.Grade
FROM
Table1
ORDER BY
Abs(Nz([Grade]) = "") DESC,Abs([Grade] = "-") DESC,Table1.Grade DESC;
用 ASC 替换 DESC 进行反向排序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。