1、国家二级 VF机试(操作题)模拟试卷 441及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开考生文件夹下的数据库 SPORT,首先永久删除该数据库中的 temp表,然后将“金牌榜”“获奖牌情况”和“国家”3 个自由表加入该数据库中。(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。(3)使用 SQL语句为表“金牌榜”增加一个字段“奖牌总数”(整数型),同时为该字段设置有效性规则:奖牌总数=0。请将该 SQL语句存储在文件 oneprg 中,否则不得分。(4)使用 SQL语句更改表“金牌榜”所有记录的
2、“奖牌总数”字段值,该值应为“金牌数”“银牌数”“铜牌数”3 项之和。请将该 SQL语句存储在文件 two,prg中,否则不得分。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)使用一对多表单向导新建一个表单 sport_form。要求:使用“国家”为父表并选择“国家名称”字段作为显示字段,“获奖牌情况”为子表并选择“项目名称”和“名次”字段作为显示字段,使用“国家代码”建立表之间的关系,表单样式选择“阴影式”,按钮类型选择“图片按钮”,按“国家名称”升序排列,表单标题为“奥运会获奖情况”。(2)在 SPORT数据库中使用视图设计器建立视图 sport_view,该视
3、图根据“国家”和“获奖牌情况”两个表统计每个国家获得的金牌数(“名次”为“1“表示获得一块金牌),视图中包括“国家名称”和“金牌数”两个数据项,视图中的记录先按“金牌数”降序排列、再按“国家名称”降序排列。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个名为 myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作:在表单设计器环境下设置列表框的数据源( RowSource)和数据源类型(RowSourceType)两个属性。设置 RowSourceType属性为 3,在 RowSource属性中使用 SQL的 SELECTINT
4、O CURSOR语句根据“国家”表中“国家名称”字段的内容在列表框中显示“国家名称”(注意:不要使用命令指定这两个属性)。为“生成表”命令按钮编写程序。程序的功能是根据表单运行时列表框中选定的国家名称,将“获奖牌情况”表中相应国家的所有记录存入以该国家名称命名的自由表中,自由表中包含“运动员名称”、“项目名称”和“名次”三个字段,并按照“名次”升序排列。提示:假设从列表框中选择的国家名称存放在变量 gm中,那么在 SQL SELECT语句中使用短语 intotable &gm就可以将选择的记录存入以该国家名命名的自由表中。运行表单,分别生成存有“中国”“日本”“美国”“俄罗斯”4 个国家获奖情
5、况的 4个自由表。(分数:2.00)_国家二级 VF机试(操作题)模拟试卷 441答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开考生文件夹下的数据库 SPORT,首先永久删除该数据库中的 temp表,然后将“金牌榜”“获奖牌情况”和“国家”3 个自由表加入该数据库中。(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。(3)使用 SQL语句为表“金牌榜”增加一个字段“奖牌总数”(整数型),同时为该字段设置有效性规则:奖牌总数=0。请将该 SQL语句存储在文件 oneprg 中,否则不得分。(4)使用
6、SQL语句更改表“金牌榜”所有记录的“奖牌总数”字段值,该值应为“金牌数”“银牌数”“铜牌数”3 项之和。请将该 SQL语句存储在文件 two,prg中,否则不得分。(分数:2.00)_正确答案:(正确答案:(1)命令窗口执行: MODIFY DATABA$E sport, 打开数据库设计器。 右击数据库设计器中的 temp表,选择【删除】,在弹出的对话框中单击“删除”按钮,将“temp”表永久性删除。 在数据库设计器中右击,选择【添加表】,在“打开”对话框中双击“金牌榜”表加到数据库中,以同样的方法将“获奖牌情况”表和“国家”表添加到数据库中。 (2)在命令窗口输入如下代码,打开表设计器:
7、USE 金牌榜 MODIFY STRUCTURE 在表设计器的“字段”选项卡中选中“金牌数”,“索引”列“升序”排序方式,单击“确定”保存表结构修改。 (3)命令窗口执行: MODIFY COMMAND one, 打开程序文件编辑器。 在编辑器中输入如下程序代码: ALTER TABLE 金牌榜 ADD奖牌总数工 CHECK 奖牌总数=0 命令窗口执行: DO one, 执行程序文件。 (4)在命令窗口执行命令: MODIFY COMMAND two, 打开程序文件编辑器,输入如下程序代码: UPDATE 金牌榜 SET奖牌总数=金牌数+银牌数+铜牌数 在命令窗口执行命令: DO two, 执
8、行程序文件。 使用数据库、SQL 操作功能、SQL 表结构修改。)解析:解析:本题考查了数据库的基本操作:表索引的建立:SQL 定义功能和操作功能。 利用 SQL表结构修改语句 ALTER TABLE,增加字段的关键字为 ADD:用 SQL UPDATE语句可以更新表中记录。二、简单应用题(总题数:1,分数:2.00)2.(1)使用一对多表单向导新建一个表单 sport_form。要求:使用“国家”为父表并选择“国家名称”字段作为显示字段,“获奖牌情况”为子表并选择“项目名称”和“名次”字段作为显示字段,使用“国家代码”建立表之间的关系,表单样式选择“阴影式”,按钮类型选择“图片按钮”,按“国
9、家名称”升序排列,表单标题为“奥运会获奖情况”。(2)在 SPORT数据库中使用视图设计器建立视图 sport_view,该视图根据“国家”和“获奖牌情况”两个表统计每个国家获得的金牌数(“名次”为“1“表示获得一块金牌),视图中包括“国家名称”和“金牌数”两个数据项,视图中的记录先按“金牌数”降序排列、再按“国家名称”降序排列。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:命令窗口执行: OPEN DATABASE SPORT, 打开数据库环境。 步骤2:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在“新建”对话框中选“表单”,单击“向导”图标按钮,弹出“向
10、导选取”对话框,选“一对多表单向导”项,单击“确定”按钮,启动表单向导。 步骤 3:“步骤 1从父表中选定字段”的“数据库和表”下选“国家”表,将“可用字段”中的“国家名称”字段添加到“选定字段”中,单击“下一步”按钮。 步骤 4:“步骤2从子表中选定字段”的“数据库和表”下选“获奖牌情况”表,将“可用字段”中的“项目名称”和“名次”字段字段添加到“选定字段”中,单击“下一步”。 步骤 5:“步骤 3建立表之间的关系”界面系统自动建立两个表的联系,单击“下一步”按钮。 步骤 6:“步骤 4选择表单样式”选“样式”中的“阴影式”,“按钮类型”中选“图片按钮”,单击“下一步”。 步骤 7:“步骤
11、5排序次序”中双击“可用的字段或索引标识”中的“国家名称”字段到“选定字段”列表中,单击“下一步”按钮。 步骤 8:“步骤 6完成”界面中的“请键入表单标题”下方文本框中输入“奥运会获奖情况”,单击“完成”按钮。 步骤 9:在“另存为”对话框的“保存表单为:”框中输入表单文件名 sport_form,单击“保存”按钮。 创建和运行表单。 (2)步骤 1:命令窗口执行: MODIFY DATABASE sport, 打开数据库设计器。 步骤 2:在数据库设计器中右击,选择【新建本地视图】,在“新建本地视图”中单击“新建视图”按钮,在“添加表或视图”对话框中依次双击“国家”和“获奖牌情况”表,将表
12、添加到视图设计器中。 步骤 3:双击“国家”表中的“国家名称”字段添加到“选定字段”中;在“函数和表达式”框中输入:COUNT(*)AS 金牌数,单击“添加”按钮添加到“选定字段”列表中。 步骤 4:在“筛选”选项卡的“字段名”下拉列表中选择“获奖牌情况,名次”字段,在“条件”中选择“=”,在“实例”中输入“1”。 步骤 5:在“排序依据”选项卡中双击“选定字段”列表框中的“COUNT(*) AS 金牌数”字段添加到“排序条件”列表框中,“排序选项”中“降序”:再双击“选定字段”中的“国家,国家名称”字段添加到“排序条件”列表框中,在“排序选项”中选择“降序”单选项。 步骤 6:在“分组依据”
13、选项卡中双击“选定字段”列表框中的“国家国家名称”字段,添加到“分组字段”。 步骤 7:单击“常用”工具栏中的“运行”按钮查看结果,以 sport_view名保存视图。 视图的建立与使用。)解析:解析:(1)本题考查一对多表单向导的使用。在启动向导前,可以先打开数据库环境,这样在启动向导添加数据表时,可在向导界面中直接选中所需的数据表,本题注意选择“一对多表单向导”。 (2)本题考查的是视图设计器的使用,视图只能保存在数据库中。 可直接在视图设计器“字段”选项卡的“函数和表达式”下的文本框中输入表达式,也可以通过打开“表达式生成器”对话框进行输入,可通过 AS短语为输入的表达式指定一个新的视图
14、字段名。用于统计金牌的函数为 COUNT()。 可以按“国家名称”字段对记录分组。筛选条件设为“获奖牌情况,名次”等于“1”。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个名为 myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作:在表单设计器环境下设置列表框的数据源( RowSource)和数据源类型(RowSourceType)两个属性。设置 RowSourceType属性为 3,在 RowSource属性中使用 SQL的 SELECTINTO CURSOR语句根据“国家”表中“国家名称”字段的内容在列表框中显示“国家名称”(注意:不要使用
15、命令指定这两个属性)。为“生成表”命令按钮编写程序。程序的功能是根据表单运行时列表框中选定的国家名称,将“获奖牌情况”表中相应国家的所有记录存入以该国家名称命名的自由表中,自由表中包含“运动员名称”、“项目名称”和“名次”三个字段,并按照“名次”升序排列。提示:假设从列表框中选择的国家名称存放在变量 gm中,那么在 SQL SELECT语句中使用短语 intotable &gm就可以将选择的记录存入以该国家名命名的自由表中。运行表单,分别生成存有“中国”“日本”“美国”“俄罗斯”4 个国家获奖情况的 4个自由表。(分数:2.00)_正确答案:(正确答案:步骤 1:命令窗口执行:MODIFY F
16、ORM myform,打开表单设计器修改表单。 步骤2:选中表单中的列表框(Listl),在属性面板中修改其 RowSourceType属性值为:3SQL 语句;同时指定 RowSource属性值为: SELECT 国家名称 FROM国家 INTO CURSOR mylist 步骤 3:双击“生成表”命令按钮,编写 Click事件代码。 代码如下: *“生成表”按钮的 Click事件代码* gm=“SS“ gm=THISFORMLISTlVALUE SELECT 运动员名称,项目名称,名次; FROM 获奖牌情况。国家 WHERE国家,国家名称=gm; AND 获奖牌情况国家代码=国家国家代码
17、; ORDER BY 名次 INTO DBF gm 步骤 4:单击“常用”工具栏中的“运行”按钮查看结果,分别选中列表框中的“中国”、“日本”、“美国”和“俄罗斯”4 个条目生成对应的表,将表单文件保存到考生文件夹。 表单基本型控件、SQL 简单查询。)解析:解析:本大题考查了表单及控件的常用属性和方法的设置:SQL 简单联接查询。 本题关键是 SQL查询语句中怎样将列表框中被选中的“国家名称”内容命名为表名。解决此问题的方法就是先定义一个变量等于列表框中的被选定的条目值,然后使用宏替换函数()将变量值替换出来。 本题进查询的两个表是“国家”表和“获奖牌情况”表通过“国家代码”联接,利用 ORDER BY对查询结果排序,利用 INTO DBF(或 INTO TABLE)将结果输出到数据表中。