回 帖 发 新 帖 刷新版面

主题:关于两个组合框问题的求助

请各位帮帮忙。
我想在一个表单里,有两个组合框,一个是选择班级的,另一个是选择课程的。有四个text分别显示选课学生的人数,最高分,最低分,平均分。我的目的是先选择班级,再选择课程,然后分别统计每班每们课的选课学生的人数,最高分,最低分,平均分。
数据库表在附件那里。

回复列表 (共9个回复)

沙发

你不会求最大,最小,平均值??我给你写完吧,

conbo1.RowSourceType = 6
      .RowSource = 表.班级
combo2.rowsourcetype = 6
      .rowsource = 表.课程
command1.click 
if empty(thisform.combo1.value) or empty(thisform.combo2.value)
    messaegbox("选择班级或课程,不能为空")
    retu
endif
sele 表
set filter to allt(表.班级)==allt(thisform.combo1.value) and allt(表.课程)= allt(thisform.combo2.value)
COUNT TO thisform.text1.value  &&人数
AVERAGE 成绩 TO thisform.text2.value  && 保存平均值
INDEX on 成绩 TO sy_temp  &&接成绩索引
GO TOP  &&第一条记录
thisform.text3.value = 成绩   &&最小成绩
GO BOTTOM &&最后一条记录
thisform.text4.value = 成绩   &&最大成绩

板凳

我认为你的表应该把各科成绩变成字段,这样比较好操作,

学号  姓名    班级    微机分  会计  管理学   数据库   财务管理
001   杨志鸿  一班     85      65     72       60        76
......
.....

3 楼


为什么改成字段会比较好啊?

4 楼


conbo1.RowSourceType = 6
      .RowSource = 表.班级
combo2.rowsourcetype = 6
      .rowsource = 表.课程
我按你这样设计,可是运行时有很多重复的值。

5 楼

想法子去掉重复值啊
自己想办法 ,办法 不只一个。
可以用索引,也可以用变量,

6 楼

给你说一种 方法吧
把改为1 
combo1.rowsourcetype = 1

在表单的init里输入, 以下,就可以去掉重复的啦,


SELECT 表
GO TOP 
thisform.combO1.RowSource = ALLTRIM(表.班级)
SCAN 
     IF AT(ALLTRIM(表.班级),thisform.comBO1.RowSource)=0  
         thisform.combO1.RowSource = thisform.combO1.RowSource + ','+ALLTRIM(表.班级)
     ENDIF
ENDSCAN

7 楼


messaegbox("选择班级或课程,不能为空")
这句好像运行不了,说messagebox.prg不存在

8 楼

我写的时候写错了吧
应该是
messagebox("选择班级或课程,不能为空")
你没有用过messagebox()
函数???

9 楼

这样吧,你加我QQ吧,我帮你解决
147215461

我来回复

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