主题:菜鸟再来请教一个简单问题
cellphoneye
[专家分:0] 发布于 2009-08-22 15:19:00
[img]http://p13.freep.cn/p.aspx?u=v20_p13_p_0908221513163099_0.jpg[/img]
出现如图问题
代码如下:
this.parent.grid1.recordsource=""
i=alltrim(thisform.pageframe1.page2.combo1.value)
l=alltrim(thisform.pageframe1.page2.combo2.value)
sele score
loca for 学号=i and 课程名称=l
if found()
if this.parent.check1.value=1
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 课程名称=l and 成绩<60.0 and score.课程编号=course.课程编号 into cursor temp"
else
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 课程名称=l and score.课程编号=course.课程编号 into cursor temp"
endif
endif
我想实现的是按学号或学生名字查询其全部课程成绩,查询某学生某一门课的成绩,查询某学生不及格的课程与成绩
这个代码是我从别人那里弄来的,但是它只可以实现按学号查询全部成绩,无法按学生名字查询全部成绩和查询单独一位学生一门课程的成绩,麻烦哪位大侠教教我,顺便改改
回复列表 (共7个回复)
沙发
sywzs [专家分:5650] 发布于 2009-08-22 16:32:00
"sele 学号,score.课程编号,课程名称,成绩 from score,course ...."
因为是从两个表建立的查询,其中的“课程名称,成绩”,不知道是哪个表里的,没有明确指出。
板凳
cellphoneye [专家分:0] 发布于 2009-08-22 16:42:00
[img]http://p13.freep.cn/p.aspx?u=v20_p13_p_0908221638543220_0.jpg[/img]
[img]http://p13.freep.cn/p.aspx?u=v20_p13_p_0908221638553661_0.jpg[/img]
分别是这两个表的
3 楼
iamstar [专家分:10] 发布于 2009-08-23 15:54:00
如果查询学生名字,查询全部成绩和查询单独一位学生一门课程的成绩,将combo2.value的值变为学生名字:
this.parent.grid1.recordsource=""
i=alltrim(thisform.pageframe1.page2.combo1.value)
l=alltrim(thisform.pageframe1.page2.combo2.value)
sele score
loca for 学号=i and 课程名称=l
if found()
if this.parent.check1.value=1
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 课程名称=l and 成绩<60.0 and score.课程编号=course.课程编号 into cursor temp"
else
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 学生名字=l and score.课程编号=course.课程编号 into cursor temp"
endif
endif
4 楼
ytdfyu465 [专家分:0] 发布于 2009-08-30 22:56:00
good
5 楼
Ilikefox [专家分:5770] 发布于 2009-08-30 23:39:00
呵呵,问题描述的比较详细,代码也有,俺比较喜欢这样的提问。
先说为什么 找不到变量“课程名称”
注意这几句
sele score
loca for 学号=i and 课程名称=l
可见是在score表中查找学号和课程名称分别为i和l的记录,问题就在这里,表score中根本就没有“课程名称”。
其实这两句没用,完全可以删了。当然后续也要删几句。
this.parent.grid1.recordsource=""
i=alltrim(thisform.pageframe1.page2.combo1.value)
l=alltrim(thisform.pageframe1.page2.combo2.value)
if this.parent.check1.value=1
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 课程名称=l and 成绩< 60.0 and score.课程编号=course.课程编号 into cursor temp"
else
thisform.pageframe1.page2.grid1.recordsource="sele 学号,score.课程编号,课程名称,成绩 from score,course where 学号=i and 课程名称=l and score.课程编号=course.课程编号 into cursor temp"
endif
这样就能实现按学号、课程名称查询鸟。
什么?“我想实现的是按学号或学生名字查询其全部课程成绩,查询某学生某一门课的成绩,查询某学生不及格的课程与成绩”
不难,比如你得再加一个combo3,表示名字,用个类似的
m=alltrim(thisform.pageframe1.page2.combo3.value)
查询语句多and 1个“姓名=m”
即可。
6 楼
Vii [专家分:1130] 发布于 2009-08-31 02:57:00
this.parent.grid1.recordsource=""
i=alltrim(thisform.pageframe1.page2.combo1.value)
l=alltrim(thisform.pageframe1.page2.combo2.value)
if this.parent.check1.value=1
thisform.pageframe1.page2.grid1.recordsource="select a.学号,a.课程编号,b.课程名称,a.成绩 from Stud a inner join Score b on a.课程名称=b.课程名称 where (a.学号=i or i='') and (b.课程名称=l or l='') and a.成绩<60.0 into cursor temp"
else
thisform.pageframe1.page2.grid1.recordsource="select a.学号,a.课程编号,b.课程名称,a.成绩 from Stud a inner join Score b on a.课程名称=b.课程名称 where (a.学号=i or i='') and (b.课程名称=l or l='') into cursor temp"
endif
不选择 学号或者课程名称时查询出所有学生,选择条件后按条件查询;
未测试.
7 楼
andy02 [专家分:0] 发布于 2009-09-25 17:21:00
oh 来学习下~~~
我来回复