Office中国论坛/Access中国论坛

标题: 怎样对学生成绩表按分数段分等级 [打印本页]

作者: huang1314    时间: 2011-5-19 22:09
标题: 怎样对学生成绩表按分数段分等级
成绩表大概有10个科目,怎样根据分数段进行分等级

比如语文科:
分数>=80分为A等,70=<分数<80为B等,60=<分数<70为C等, 分数<60为D等
在excel里可以用
=LOOKUP(D2,{0,"D";60,"C";70,"B";80,"A"})
实现划分等级。
不同科目分段不一样,在excel是做效率非常低。

在access里什么实现这个功能?
划分等级的分数是不固定的,不同科目的分段也不一样。
所以要有输入框,根据输入框的数进行分等级。

作者: aslxt    时间: 2011-5-19 22:32
查询中:iif([分数]>=80,"A",iif([分数]>=70,"B",iif([分数]>=60,"C","D")))
作者: huang1314    时间: 2011-5-19 23:06
还是不会啊,都不知道在哪里写,
楼上高帮我具体做一下,谢谢
可以帮我做一两个科目,其它我再慢慢照样画葫芦
[attach]45619[/attach]

作者: aslxt    时间: 2011-5-19 23:40
[attach]45620[/attach]
作者: aslxt    时间: 2011-5-19 23:41
看查询中的【效果】
作者: huang1314    时间: 2011-5-19 23:55
我需要在窗体中输入分数,因为分数段不是固定的,而且各科分数段都不一样
作者: huang1314    时间: 2011-5-19 23:57
每次考试难度不同,所以等级的分数要变化,如果固定分数段这个就满足要求了,谢谢你的帮助
作者: roych    时间: 2011-5-20 11:51
本帖最后由 roych 于 2011-5-20 13:18 编辑

建议写个函数吧,需要的话再改。
  1. Function Grade(Score As Long, Subject As String) As String
  2. Select Case Subject
  3. Case "语文"
  4. Select Case Score
  5. Case Is >= 90
  6. Grade = "A"
  7. Case Is >= 80
  8. Grade = "B"
  9. Case Is >= 70
  10. Grade = "C"
  11. Case Is >= 60
  12. Grade = "D"
  13. Case Else
  14. Grade = "E"
  15. Case "数学"
  16. Select Case Score
  17. Case Is >= 90
  18. Grade = "A"
  19. Case Is >= 80
  20. Grade = "B"
  21. Case Is >= 70
  22. Grade = "C"
  23. Case Is >= 60
  24. Grade = "D"
  25. Case Else
  26. Grade = "E"
  27. Case Else
  28. Grade = Grade
  29. End Function
复制代码

你这个表设计存在问题,应该改为:姓名、科目、成绩。然后再调用函数来查询。如果不清楚怎么做的话,LZ改好了字段和数据之后,我再帮忙处理下。
作者: huang1314    时间: 2011-5-20 20:34
表的格式不能改,上面反馈回来的成绩表格是这样,这样为了方面直接用反馈来的数据
作者: todaynew    时间: 2011-5-20 22:22
呵呵,秀才遇到兵。
作者: huang1314    时间: 2011-5-20 22:49
上面反馈回的成绩表格就这样,导入数据很简单,如果改了格式,我想应该比较麻烦。现在可以2楼的朋友帮做了一个固定分段的查询,如果每次分等级的分数固定就完全可以适用了。现在问题的每次分等级的分数都不相同。
所以我想通过窗体输入,然后传递这个值到查询应该就可以实现这个功能。请大家帮忙一下,非常这个功能。以前都是在excel里手功做,效率非常低,而且有时输错了
作者: aslxt    时间: 2011-5-20 23:45
[attach]45639[/attach]
参考

作者: hgxly    时间: 2011-5-21 01:35
本帖最后由 hgxly 于 2011-5-21 09:27 编辑

你只要将查询中iif中的成绩参数改成窗体中文本框内容就行了,无须想的太复杂,作茧自搏。你打开窗体输入数学的评定范围试试,就会出现查询的结果。余类推之。
作者: roych    时间: 2011-5-21 02:08
todaynew 发表于 2011-5-20 22:22
呵呵,秀才遇到兵。
表的格式不能改,上面反馈回来的成绩表格是这样,这样为了方面直接用反馈来的数据

严重同意老汉的看法。
Access数据表不应该是这样设计字段的。——初学者,尤其是带有些许Excel使用习惯的初学者,往往会犯这样的错误。
——其实,交叉表查询很轻易就可以实现这些功能,所以我才建议LZ修改字段和数据。

作者: huang1314    时间: 2011-5-21 10:03
roych 发表于 2011-5-21 02:08
严重同意老汉的看法。
Access数据表不应该是这样设计字段的。——初学者,尤其是带有些许Excel使用习惯 ...

12、13楼的方法都可以实现我想要的结果,在此谢谢各位了。
对于字段设计来说,我确实不知道怎样才是合理的,以前我一直用excel来做这些工作,都是手动输公式,有时输错数字,效率非常低,出错也多,上面反馈回来的也是excel表格。现在我只是导入access,这些数据不用我输入,只是想通过access自动完成这些工作,提高效率、又不出错,减轻工作量。
我想如果另设计字段,导入数据是不是变得复杂了?反正我不清楚这个
以后多跟各位学习数据库。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3