对考生文件夹下的“学生住宿”管理数据库设计一个表单myf,表单标题为“宿舍查询”,表单中有
3个文本框和2个命令按钮“查询”和“关闭”。
运行表单时,在第一个文本框里输入某学生的学号(S1—S9),单击查询按钮,则在第二个文本框内会显示该学生的“姓名”,在第三个文本框里会显示第三个学生的“宿舍号”。
如果输入的某个学生的学号对应的学生不存在,则在第二个文本框内显示“该生不存在”,第三个文本框不显示内容;如果输入的某个学生的学号对应的学生存在,但在宿舍表中没有该学号对应的记录,则在第二个文本框内显示该生的“姓名”,第三个文本框显示“该生不住校”。
单击“关闭”按钮关闭表单。
双击命令按钮“查询”编写该控件的Click事件程序代码如下:
******命令按钮Command1(查询)的Click事件代码*****
SET TALK OFF
OPEN DATABASE 学生住宿管理
USE学生
GO TOP
LOCATE FOR 学生.学号==ALLTRIM(Thisform.Text1.Value)
IF 学生.学号>ALLTRIM(Thisform.Text1.Value)
Thisform.Text2.Value="该生不存在!"
Thisform.Text3.Value=""
ELSE
SELECT 学生.姓名;
FROM 学生;
WHERE 学生.学号=ALLTRIM(Thisform.Text1.Value);
INTO CURSOR temp
Thisform.Text2.Value=temp.姓名
USE 宿舍
LOCATE FOR 宿舍.学号==ALLTRIM(Thisform.Text1.Value)
IF宿舍.学号>ALLTRIM(Thisform.Text1.Value)
Thisform.Text3.Value="该生不住校!"
ELSE
SELECT 学生.姓名.宿舍.宿舍;
FROM 宿舍学生;
WHERE 学生.学号=ALLTRIM(Thisform.Text1.Value)AND宿舍.学号=学生.学号;
INTO CURSOR temp
Thisform.Text2.Value=temp.姓名
Thisform.Text3.Value=temp.宿舍
ENDIF
ENDIF
CLOSEALL
SET TALK ON
***********************************************************
以同样的方法为“关闭”命令按钮编写Click事件代码;Thisform. Release。
保存表单文件为myf.scx到考生文件夹下表单运行结果如图3-109所示。

双击命令按钮“查询”,编写该控件的Click事件,程序代码如下:
******命令按钮Command1(查询)的Click事件代码*****
SET TALK OFF
OPEN DATABASE 学生住宿管理
USE学生
GO TOP
LOCATE FOR 学生.学号==ALLTRIM(Thisform.Text1.Value)
IF 学生.学号>ALLTRIM(Thisform.Text1.Value)
Thisform.Text2.Value="该生不存在!"
Thisform.Text3.Value=""
ELSE
SELECT 学生.姓名;
FROM 学生;
WHERE 学生.学号=ALLTRIM(Thisform.Text1.Value);
INTO CURSOR temp
Thisform.Text2.Value=temp.姓名
USE 宿舍
LOCATE FOR 宿舍.学号==ALLTRIM(Thisform.Text1.Value)
IF宿舍.学号>ALLTRIM(Thisform.Text1.Value)
Thisform.Text3.Value="该生不住校!"
ELSE
SELECT 学生.姓名.宿舍.宿舍;
FROM 宿舍,学生;
WHERE 学生.学号=ALLTRIM(Thisform.Text1.Value)AND宿舍.学号=学生.学号;
INTO CURSOR temp
Thisform.Text2.Value=temp.姓名
Thisform.Text3.Value=temp.宿舍
ENDIF
ENDIF
CLOSEALL
SET TALK ON
***********************************************************
以同样的方法为“关闭”命令按钮编写Click事件代码;Thisform. Release。
保存表单文件为myf.scx到考生文件夹下,表单运行结果如图3-109所示。
解析:本大题考查了表单常用控件的基本设置,在程序设计部分,可将查询结果存放到一个临时表中,然后通过文本框的Value属性值来显示查询结果。 第1题:
在考生文件夹下有“学生管理”数据库,其中包含表“宿舍信息”和“学生信息”。这两个表之间存在一对多的关系。对该数据库建立表单文件夹名为myf标题为“住宿管理”,完成如下要求:
①在表单中包含两个表格控件,第一个用于显示“宿舍信息”表中的记录,第二个表格用于显示与“宿舍信息”表中的当前记录对应的学生表中的记录。
②在表单中包含一个“关闭”命令按钮,单击该按钮时退出表单。
以同样的方法设置第二个表格的生成器在“1.表格项”中选择数据表“学生信息”的所有字段然后再选择“4.关系”选项卡把“父表中的关键字段”设置为“宿舍信息.宿舍”把“子表中的相关索引”设置为“宿舍”如图3-69所示。
从“表单控件”工具栏中向表单添加1个命令按钮修改命令按钮的Caption属性值为“关闭”在“关闭”命令按钮的Click事件中输入:Thisform.Release。
运行表单保存表单设计到考生文件夹下。
以同样的方法设置第二个表格的生成器,在“1.表格项”中选择数据表“学生信息”的所有字段,然后再选择“4.关系”选项卡,把“父表中的关键字段”设置为“宿舍信息.宿舍”,把“子表中的相关索引”设置为“宿舍”,如图3-69所示。
从“表单控件”工具栏中,向表单添加1个命令按钮,修改命令按钮的Caption属性值为“关闭”,在“关闭”命令按钮的Click事件中输入:Thisform.Release。
运行表单,保存表单设计到考生文件夹下。 解析:本大题考查的主要是通过表格控件,实现父子表记录的联动显示,首先需要添加用于显示的数据表到表单的数据环境中,然后在两个表格的“生成器”对话中,进行相应的设置,实现表格中记录联动的功能。
第2题:
对考生文件夹中的“工资管理”数据库完成如下综合应用。设计一个文件名和表单名均为myf的表单。表单的标题设为“工资发放额统计”。表单中有1个组合框、2个文本框和1个命令按钮“关闭”。
运行表单时,组合框中有“部门信息”表中的“部门号”可供选择,选择某个“部门号”以后,第一个文本框显示出该部门的“名称”,第二个文本框显示应该发给该部门的“工资总额”。
单击“关闭”按钮关闭表单。
图3-81
双击组合框在其Valid 事件中输入以下代码:
******组合框Combo1 的Valid 事件代码***************
Select 部门名from 部门信息where 部门号=Thisform.combo1.value into array temp Thisform.Text1.Value=temp(1)
Select sum(工资)from 工资 where 部门号=This fotm.combo1.value into array temp2 Thisform.Text2.Value=temp2(1)
**************************************************
以同样的方法为“关闭”命令按钮编写Click 事件代码:Thisform. Release。
保存表单文件为myf. scx 到考生文件夹下。表单运行结果如图3-82所示。
图3-82
图3-81
双击组合框,在其Valid 事件中输入以下代码:
******组合框Combo1 的Valid 事件代码***************
Select 部门名from 部门信息where 部门号=Thisform.combo1.value into array temp Thisform.Text1.Value=temp(1)
Select sum(工资)from 工资 where 部门号=This fotm.combo1.value into array temp2 Thisform.Text2.Value=temp2(1)
**************************************************
以同样的方法为“关闭”命令按钮编写Click 事件代码:Thisform. Release。
保存表单文件为myf. scx 到考生文件夹下。表单运行结果如图3-82所示。
图3-82 解析:本大题主要考查的是表单中组合框的设置,该控件用来显示数据的重要属性是RowsourceType和 RowSource,在程序设计中,利用SQL语句在数据表中查找与选中条目相符的字段值。
第3题:
对考生文件夹下的“学生住宿”管理数据库设计一个表攀“bd2”,表单标题为“宿舍查询”,表单中有一个标签、3个文本框和两个命令按钮:“查询”和“关闭”。
运行表单时,在第一个文本框里输入某学生的学号,单击查询按钮,则在第二个文本框内会显示该学生的“姓名”,在第3个文本框里会显示该学生的“宿舍名称”。
如果输入的某个学号对应的学生不存在,则在第二个文本框内显示“该生不存在”,第三个文本框不显示内容;如果输入的某个学号对应的学生存在,但没有该学号的宿舍编号,则在第二个文本框内显示该生的“姓名”,第三个文本框显示“该生不住校”。
单击“关闭”按钮关闭表单。
【考点指引】本大题主要考查表单的设计及文本框和命令按钮等控件的使用,在查询的时候注意将查询结果保存到CURSOR中。
【操作步骤】
①选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,在表单属性窗口中将“Caption”属性值修改为“宿舍查询”;单击表单控件工具栏上的“标签”控件图标,为表单添加一个标签Label1;单击表单控件工具栏上的“命令按钮”控件图标,为表单添加两个命令按钮Command1和Command2;单击表单控件工具栏上的“命令按钮”控件图标,为表单添加两个命令按钮Command1和Command2。
②选择标签,在标签属性窗口中将标签Label1的Cap-tion属性值修改为“请输入学号”;分别选择命令按钮,在按钮属性窗口中将命令按钮Command1的Caption属性值修改为“查询”,将命令按钮Command2的Caption属性值修改为“关闭”,如图94-1所示。双击命令按钮,在Click事件中输入代码:ThisForm.Release,用来关闭表单。

③双击“查询”命令按钮,在Click事件中输入代码:
SELECT*INTO CURSOR aa FROM学生WHERE学号=ALLTRIM(ThisForm.Textl.Value)
IF ISNULL(aa.学号)THEN
ThisForm.Text2.Value="该生不存在"
ThisForm.Text3.Value=""
ELSE
ThisForm.Text2.Value=ALLTRIM(aa.姓名)
IF EMPTY(aa.宿舍编号)THEN
ThisForm.Text3.Value="该生不住校"
ELSE
SELECT宿舍名称INTO CURSOR bb FROM宿舍WHERE宿舍编号=ALLTRIM(aa.宿舍编号)
ThisForm.Text3.Value=ALLTRIM(bb.宿舍名称)
ENDIF
ENDIF
④选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名 “bd2”,保存在考生文件夹下,然后运行表单。
第4题:
在考生文件夹下,打开“学生管理”数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):
设计一个名称为myf的表单,表单的标题为“学生住宿信息”。表单上设计1个包含3个选项卡的“页框”和1个“关闭”命令按钮。
要求如下:
①为表单建立数据环境,按顺序向数据环境添加“宿舍”表和“学生”表。
②按从左至右的顺序3个选项卡的标签(标题)的名称分别为“宿舍”、“学生”和“住宿信息”,每个选项卡上均有一个表格控件,分别显示对应表的内容,其中住宿信息选项卡显示如下信息:学生表里所有学生的信息,加上所住宿舍的电话(不包括年龄信息)。
③单击“关闭”按钮关闭表单。
******页框Page3(第三页)的Activate Event事件代码*************
SELECT 学生.学号学生.姓名学生.性别学生.系学生.宿舍电话;
FROM 学生宿舍;
DOTO CURSOR atemp
Thisform.Pageframe1.Page3.Grid1.RecordSourceType=1
Thisform.Pageframe1.Page3.Grid1.RecordSource="atemp"
***********************************************************
最后双击“关闭”按钮在Click事件中编写程序命令:Thisform.Release保存并运行表单。运行结果如图3-49所示。

******页框Page3(第三页)的Activate Event事件代码*************
SELECT 学生.学号,学生.姓名,学生.性别,学生.系,学生.宿舍,电话;
FROM 学生,宿舍;
DOTO CURSOR atemp
Thisform.Pageframe1.Page3.Grid1.RecordSourceType=1
Thisform.Pageframe1.Page3.Grid1.RecordSource="atemp"
***********************************************************
最后双击“关闭”按钮,在Click事件中编写程序命令:Thisform.Release,保存并运行表单。运行结果如图3-49所示。
解析:本大题考查的主要是表单控件的设计,页框属于容器控件,通过PaSeCount属性值,可以指定页框中的页面数,一个页框中可以继续包含其他控件,对页框中单个页面进行编辑设计时,应使页框处于“编辑”状态下,才可以对页框中所包含的控件进行编辑,利用表格显示数据表中的内容,主要是通过 RecordSourceType和RecordSource两个属性来实现,需要注意的是在为表格选择数据表时,首先应该将该表添加到表单的数据环境中。
第5题:
在考生文件夹下有“住宿管理”数据库,其中包含表“宿舍”和表“学生”。这两个表之间存在一对多的关系。对该数据库建立表单文件,文件名为“bd2”,标题为“住宿管理”,完成如下要求:
(1)在表单中包含两个表格控件,第一个用于显示“宿舍”表中的记录,第二个表格用于显示与“宿舍”表中的当前记录对应的学生表中的记录。
(2)在表单中包含一个“关闭”命令按钮,单击该按钮退出表单。
【考点指引】本大题考查的是表单的设计及表格控件的使用,主要注意表格控件数据源的设置。
【操作步骤】
①选择【文件】→【打开】命令,打开数据库“住宿管理”。
②选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,在表单属性窗口中将Caption属性值修改为“住宿管理”。单击表单控件工具栏上的“命令按钮”控件图标,为表单添加一个命令按钮Command1,单击表单控件工具栏上的“表格”控件图标,再添加两个表格控件“Grid1”和“Grid2”。
③选择命令按钮,在按钮属性窗口中将命令按钮Command1的Name属性值修改为“cmdClose”,将Caption属性值修改为“关闭”,如图71-1所示。双击“关闭”命令按钮,在Click事件中输入代码:ThisForm.Release,用来关闭表单。

④在表单设计器中,鼠标右键单击表单空白处,在弹出的快捷菜单中选择“数据环境”命令,打开表单的数据环境,选择数据库“住宿管理”,将数据表文件“宿舍”和“学生”添加到数据环境中。
⑤选择表格控件“Grid1”,在表格控件属性窗口中将“RecordSource”属性值修改为“宿舍”,将“RecordSourceType”属性值修改为“0”,将“ReadOnly”属性值修改为
“.T.”;选择表格控件“Grid2”,在表格控件属性窗口中将“RecordSource”属性值修改为“〝〞”,将“RecordSourceType”属性值修改为“1”。
⑥在表单设计器中,选择“Grid1”,在属性窗口中双击“AfterRowColChange Event”,弹出事件过程代码编辑窗口,输入以下代码:
SELECT学生.*INTO CURSOR trap FROM学生,宿舍WHERE学生.宿舍编号=宿舍.宿舍编号AND宿舍.宿舍编号=ThisForm.Grid1.columns(1).Text1.value
ThisForm.Grid2.RecordSourceType=0
ThisForm.Grid2.RecordSource=〝tmp〞
ThisForm.Grid2.Refresh
⑦选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名“bd2”,保存在考生文件夹下,然后运行表单。