我想在VB里实现全班各科目成绩查询、显示与统计,显示控件用的是datagrid,数据库用的是access。显示出来的内容大概是这样的。
学号 | 姓名 | 语文 | 数学 | 英语 | 计算机基础 | 计算机组装 | 总分 | 平均分 | 排名 |
我已经建立Score表用来保存成绩、Student用来保存学生信息结构,分别是这样的。
score表:
学号 | 学期 | 类型 | 课程 | 分数 |(类型为:期中/期末)
0701201 |2007-2008第一学期| 期中 |计算机基础| 78 |
0701201 |2007-2008第一学期| 期末 |计算机基础| 88 |
0701201 |2007-2008第一学期| 期中 |中英文打字| 72 |
0701201 |2007-2008第一学期| 期末 |中英文打字| 81 |
0701201 |2007-2008第二学期| 期中 |计算机基础| 73 |
.......
0701204 |2007-2008第二学期| 期中 |中英文打字| 63 |Student表:
学号 | 姓名 |
0701201 | 陈一 |
0701202 | 王二 |
0701203 | 张三 |
0701204 | 刘四 |用sql查询实现的功能:通过combo选择不同的【学期】或者【类型】显示出全班学生的成绩统计表(在datagrid中)。
请问这样建表正确吗?如果正确能够实现我要的功能吗?如果不正确那么表应该怎样建立。
学号 | 姓名 | 语文 | 数学 | 英语 | 计算机基础 | 计算机组装 | 总分 | 平均分 | 排名 |
我已经建立Score表用来保存成绩、Student用来保存学生信息结构,分别是这样的。
score表:
学号 | 学期 | 类型 | 课程 | 分数 |(类型为:期中/期末)
0701201 |2007-2008第一学期| 期中 |计算机基础| 78 |
0701201 |2007-2008第一学期| 期末 |计算机基础| 88 |
0701201 |2007-2008第一学期| 期中 |中英文打字| 72 |
0701201 |2007-2008第一学期| 期末 |中英文打字| 81 |
0701201 |2007-2008第二学期| 期中 |计算机基础| 73 |
.......
0701204 |2007-2008第二学期| 期中 |中英文打字| 63 |Student表:
学号 | 姓名 |
0701201 | 陈一 |
0701202 | 王二 |
0701203 | 张三 |
0701204 | 刘四 |用sql查询实现的功能:通过combo选择不同的【学期】或者【类型】显示出全班学生的成绩统计表(在datagrid中)。
请问这样建表正确吗?如果正确能够实现我要的功能吗?如果不正确那么表应该怎样建立。
select stud.学号,stud.姓名,score.分数 from stud,score " & _
"where stud.学号=score.学号 and score.课程='计算机基础' and score.类型='期中'
这是我用到的查询语句,问题是只能在datagrid中实现一个分数字段,查询到的是【计算机基础】、【期中】的成绩,如果我要从score表中查询到【计算机基础】、【中英文打字】。并且在datagrid中显示下面的内容呢:学号|姓名|计算机基础|中英文打字|是否要另外建立表
DataGrid1.Columns("你不想显示的字段名").Width = 0就行了
"Run-time error '7004':
The rowset is not bookable"
把你的代码发出来我对照一下.
Set rsl = New ADODB.Recordset
rsl.CursorLocation = adUseClient
sql = "select stud.学号,stud.姓名,score.分数 from stud,score " & _
"where stud.学号=score.学号 and score.课程='计算机基础' and score.类型='期中'"
rsl.Open sql, strcnn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsl
表1 Student:
字段:学号 ,姓名
表2 Course
字段:课程号 , 课程名称
表3 Score
字段: 流水号(主键),学号(外键) ,课程号(外键) ,学期 ,类型 ,语文,数学 ,英语 ,计算机基础,计算机组装
我建立表的目的就是要通过combo控件选择不同的学期,不同的类型(期中、期末),可以列出全班所选择学期开设课程成绩信息。
呵呵,还请各位给出一个比较合理的思路,麻烦各位了
sorse.分数 as 计算机基础