回 帖 发 新 帖 刷新版面

主题:菜鸟再来请教一个简单问题


[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个回复)

沙发

"sele 学号,score.课程编号,课程名称,成绩 from score,course ...."
因为是从两个表建立的查询,其中的“课程名称,成绩”,不知道是哪个表里的,没有明确指出。

板凳



[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 楼

如果查询学生名字,查询全部成绩和查询单独一位学生一门课程的成绩,将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 楼

good

5 楼

呵呵,问题描述的比较详细,代码也有,俺比较喜欢这样的提问。

先说为什么 找不到变量“课程名称”

注意这几句
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 楼

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 楼

oh  来学习下~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册