ACCESS中能一个成绩总分排名,实现类似Excel中RANK函数的功能,能做到吗?

YII2er 2004-05-03 10:09:20
我有一个学生成绩的表,包含六个学生单科成绩的字段。比如语、数、外、政、史地。

现在想建一个查询,把上述各科成绩导入过来容易,问题是为它们总分和排名。

总分是可以用ACCESS中内置的公式实现的,但排名就不行了。它只有排序,一旦单科分数变了,它不能作出相应的变化。在这一点上,EXCEL就可以用RANK函数轻松解决。

不知能不能做到,如何才能做到。

谢谢你的支持。
...全文
864 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
vansoft 2004-05-03
可以用VBA代码写啊。
  • 打赏
  • 举报
回复
YII2er 2004-05-03
第一次提问,不太熟悉,不要笑话!

好了,分数已经成功送出,谢谢lsftest。
  • 打赏
  • 举报
回复
YII2er 2004-05-03
依样画葫芦,天啊!!!!!!!!!!!成了!!!!!!!!!!!

非常感谢,解决了一个老长时间不能解决的问题,真是太让人高兴了。

老大,很佩服你啊。

还有一个问题,我不知道如何结贴和送分。

我来研究一下,不会是管理员才能做到这个吧。

顺便说一句,同分同名次的结果正是我所需要的,真是让人喜出望外啊。
  • 打赏
  • 举报
回复
lsftest 2004-05-03
可以,但有点麻烦。。。。一个简单的例子:
假设你有一个名字为“基本成绩”的表,表里有七个字段,分别为:名字、语、数、外、政、史、地。

建立一个名为"名次中间查询"的查询,这个查询的sql语句为:

SELECT [基本成绩]![语]+[基本成绩]![数]+[基本成绩]![外]+[基本成绩]![政]+[基本成绩]![史]+[基本成绩]![地] AS 总分
FROM 基本成绩
ORDER BY [基本成绩]![语]+[基本成绩]![数]+[基本成绩]![外]+[基本成绩]![政]+[基本成绩]![史]+[基本成绩]![地] DESC;


最后建立一个名为“名次查询”的查询,sql语句为:

SELECT DCount("[总分]","名次中间查询","[总分]>" & [总分])+1 AS 名次, 基本成绩.名字, 基本成绩.语, 基本成绩.数, 基本成绩.外, 基本成绩.政, 基本成绩.史, 基本成绩.地, [基本成绩]![语]+[基本成绩]![数]+[基本成绩]![外]+[基本成绩]![政]+[基本成绩]![史]+[基本成绩]![地] AS 总分
FROM 基本成绩
ORDER BY [基本成绩]![语]+[基本成绩]![数]+[基本成绩]![外]+[基本成绩]![政]+[基本成绩]![史]+[基本成绩]![地] DESC;


之后,你只要运行名次查询,就可以在结果里看到学生的名字、各科成绩、总分以及名次了。但这个查询是同分同名次的,就是说如果有两个同分的第一名就不会有第二名了直接数到第三名。。。不知这样合不合你要求。。。

但老实说,如果不是经常要干同类的工作,我倒宁愿把基本成绩表里的东西全copy到excel里去搞,又快又省事。。。。

  • 打赏
  • 举报
回复
相关推荐
发帖
VBA
加入

2154

社区成员

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
申请成为版主
帖子事件
创建了帖子
2004-05-03 10:09
社区公告
暂无公告