在考生文件夹下,打开招生数据库sdb,完成如下简单应用:(1)使用一对多表单向导选择ksb表和kscb表生成一个名为two的表单。要求从父表ksb中选择所有字段,从子表kscjb中选择所有字段,使用“考生号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自ksb),升序:表单标题为“考生数据输入维护”。 (2)在考生文件夹下打开命令文件three.prg,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表three中。注意,该命令文件在第3行、第6行、第9行有错误,打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。
【正确答案】正确答案:(1)步骤1:在命令窗口执行命令: OPEN DATABASE sdb ,打开SDB数据库。 步骤2:执行【文件】→【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“表单”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多表单向导”项,单击“确定”按钮,启动表单向导。如图2-38所示。
【答案解析】解析:(1)本题主要考查的是表单向导的使用。操作比较简单,只需根据向导提示一步步完成操作即可。 (2)本题主要考查的是SQL简单查询和嵌套查询.本题先用一个SQL简单查询获得平均分,由于平均分是一个数字,并且以后还要将考生成绩与谊平均分进行比较,所以应将其存放在一个数组中,而不是存放在临时表中,所以应将第一处错误INTO CURSOR temp改为INTO ARRAY temp。 题中第二个SQL语句为嵌套查询,使用了exists谓词,用来检查子查询中是否有结果返回.根据本题要求,要查找所有成绩都高于或等于平均分的学生的考生号和姓名,换句话说,也就是只要考生有一门成绩小于平均分,该考生就不符合条件.查询的基本过程是:对于外查询中的ksb表中的每个考生号,在内查询中的kscjb表中判断是否谊考生编号有一门成绩小于平均成绩,只要有一门成绩小于平均成绩,谊考生号都不该被查找出来,故第二处错误是在外查询中的条件中应使用not exits,而不是exists。在内查询中,条件“成绩<temp(1)”和“考生号=ksb.考生号”应该用AND联接。