1、国家二级 VF机试(操作题)模拟试卷 187及答案与解析 一、基本操作题 1 在考生文件夹下,有一个资源数据库 frdb,该数据库有资源表 fr_t、农户表 p_t和树种表 tree_t三个表。其中,资源表 fr_t存储了全乡农民承包的土地编号、户主编号、小地名、面积、树种编号、蓄积 (生长在山上的树的木材体积 )和承包年度。打开资源数据库 frdb,完成如下操作: (1)在农户表 p_t中增加一个字段名 “继承人 ”、数据类型为 “字符 ”、宽度为 8的字段。 (2)设置资源表 fr_t中 “面积 ”字段的有效性规则:面积大于等 于 1,小于等于100,默认值为 10; “蓄积 ”字段的有效
2、性规则: 蓄积大于等于 0,小于等于 200,默认值为 100: (注意:表达式应写成:面积 =1 and面积 =100,蓄积=0 and蓄积 =200) (3)为资源表 fr_t创建两个普通索引 (升序 ),索引名分别为 “户主编号 ”和 “树种编号 ”,对应的索引表达式分别为 “户主编号 ”和 “树种编号 ”。 (4)通过 “户主编号 ”字段建立资源表 fr_t和农户表 p_t间的永久联系;通过 “树种编号 ”字段建立资源表 fr_t和树种表 tree_t间的永久联系。 二、简单应用题 2 (1)用 SQL语句完成下列操作:列出 “林诗因 ”持有的所有外币名称 (取自 rate excha
3、nge表 )和持有数量 (取自 currency s1表 ),并将检索结果按持有数量升序排序存储于表 rate temp中,同时将所使用的 SQL语句存储于新建的文本文件 rate txt中。 (2)使用一对多报表向导建立报表。要求:父表为 rate exchange,子表为 currency s1,从父表中选择字段: “外币名称 ”;从子表中选择全部字段;两个表通过 “外币代码 ”建立联系;按 “外币代码 ”降序 排序;报表样式为 “经营式 ”,方向为 “横向 ”,报表标题为:外币持有情况;生成的报表文件名为 currencyrepott。 三、综合应用题 3 建立一个表单,表单文件名和表单
4、控件名均为 myform_b,表单标题为 “订单管理 ”,表单其他功能如下: 表单中含有一个页框控件 (PageFrame1)和一个 “退出 ”命令按钮 (Command1),单击 “退出 ”命令按钮关闭并释放表单。 页框控件 (PageFrame1)中含有 3个页面,每个页面都通过一个表格控件显示有关信息: 第一个页面 Pagel上的标题为 “职工 ”,其上的表格控件名为 grdEmployee,显示表 employee中的内容。 第二个页面 Page2上的标题为 “订单 ”,其上的表格控件名为 grdOrders,显示表orders中的内容。 第三个页面 Page3上的标题为 “职工订单金
5、额 ”,其上的表格控件名为 Grid1,该表格中显示每个职工的职工号、姓名及其所经手的订单总金额 (注:表格只有 3列,第 1列为 “职工号 ”,第 2列为 “姓名 ”,第 3列为 “总金额 ”)。 国家二级 VF机试(操作题)模拟试卷 187答案与解析 一、基本操作题 1 【正确答案】 (1) 命令窗口执行: MODIFY DATABASE frdb,打开数据库设计器。 在数据库设计器中右击 P_T表,选择【修改】,打开表设计器, “字段 ”选项卡的 “字段名 ”列的最后一个空白文本框中输入字段名 “继承人 ”, “类型 ”下拉框中选择 “字符型 ”, “宽度 ”文本框中输入 “8”,单击
6、“确定 ”保存修改。 (2)在数据库设计器中右击 FR_T表,选择【修改】,打开表设计器, “字段 ”选项卡中选中 “面积 ”,在字段有效性 ”的 “规则 ”文本框中输入:面积 =land面积 =0 and蓄积 MODIFY FILE RATE,打开文本文件编辑器。输入如下程序代码 (以下程序是通过查询设计器生成 ): SELEC7t Rate exchanqe外币名称, currency s1持有数量; FROM RATE!currency_s1 INNER JOIN RATE!rate_exchange ; ON currencv s1外币代码 =Rate exchanqe外币代码; WH
7、ERE currency_s1姓名 =“林诗因 “; ORDER BY currency_s1持有数量; INTO TABLE rate_temp dbf 步骤 3:命令窗口执行: DO RATE TXT,执行程序。 (2) 步骤 1:命令窗口执行: OPEN DATABASE RATE,打开 rate数据库环境。 步骤 2:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在 “新建 ”中选 “报表 ”选项,单击 “向导 ”按钮,弹出 “向导选取 “对话框,选中 “一对多报表向导 ”项,单击 “确定 ”按钮,启动报表向导。 步骤 3: “步骤 1-从父表选择字段 ”
8、的 “数据库和表 ”下选 rate exchange表,双击“外币名称 ”字段添加到 “选定字段 ”中,单击 “下一步 ”。 步骤 4: “步骤 2-从子表选择字段 ”的 “数据库和表 ”下选 currency_s1表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。 步骤 5: “步骤 3为表建立关系 ”中系统自动建立两个表的联系,单击 “下一步 ”按钮。 步骤 6:在报表向导的 “步骤 4排序记录 ”界面中双击 “可用的字段或索引标识 ”中的 “外币代码 ”字段到 “选定字段 ”列表中,并单击 “降序 ”选项,单击 “下一步 ”按钮。 步骤 7: “步骤 5
9、选择报表样式 ”中选 “样式 ”列表中的 “经营式 ”,在 “方向 ”中选择 “横向 ”单选项,单击 “下一步 ”按钮。 步骤 8: “步骤 6完成 ”中的 “报表标题 ”下方文本框中输入 “外币持有情况 ”,单击 “完成 ”按钮。 步骤 9:在 “另存为 ”对话框的 “保存报表为: ”框中输入报表文件名currency_report,单击 “保存 ”按钮。 【试题解析】 (1)本题主要考查的是 SQL连接查询。通过 “外币代码 ”字段可以建立 currency_s1表和 Rateexchang的联系;筛选条件 WHERE短语指出;排序用ORDER BY短语,降用 DESC短语; INTO T
10、ABLE将查询结果输出到指定的表中保存。 (2)本题主要考查的是一对多报表向导的使用。 三、综合应用题 3 【正确答案】 步骤 1:在命令窗口执行命令: OPEN DATABASE ordersmanage,打开 “orders_manage”数据库。 步骤 2:在命令窗口执行命令: CREATE FORM myform_b,打开表单设计器新建表单。 步骤 3:从 “表单工具栏 ”中依次向表单添加一个命令按钮和一个页框控件。在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 3 7。步骤 4:右击表单选择【数据环境】快捷菜单命令打开表单数据环境,继续在表单数据
11、环境中单击右键选择【添加】快捷菜单命令,在 “添加表或视图 ”对话框中依次双击 employee表和 orders表,将其添加到数据环境中,两者之间的关联也会自动添加其中,选中两个表之间的关联线 (被选中的线会变粗 ),然后按 Delete键,删除该关联。 步骤 5:右击 “页框 ”控件,选择【编辑】快捷菜单命令,让页框处于编辑状 态,再将数据环境中的employee表和 orders表分别拖到 “职工 ”和 “订单 ”页面中 (注意:操作过程中,当独立的页面被选中时,页框处于编辑状态,在页框四周会出现蓝色边框,如图 3-22所示;另外,表单设计器窗口应为 “还原 ”状态,而非最大化窗口,否则
12、将遮盖表单数据环境内容,无法将表拖到页面中 )。这时,在 “职工 ”和 “订单 ”页面中会分别自动生成表格 grdEmployee和 grdOrders。步骤 6:接步骤 5,当页框处于编辑状态时,选择 “职工订单金额 ”页面,在其中添加一个表格控件 grid1,在 “属性 ”面板中修改 表格 gridl的属性值,见表 3 7。 步骤 7:双击表单,编写表单的Init事件代码: 1 THISFORM PAGEFRAMEl PAGE3 GRIDl RECORDSOURCE 2 RECORDSOURCE=”; 姓名 SELECT Employee职工号, Employee 姓名,SUM(Order
13、s金额 )总金额; 3 FROM orders_manage!employee INNER JOIN orders_manage!orders ; 4 ON Employee职工号 =Orders职工号; GROUP BY Employee职工号; 6 INTO CURSOR temp“ (注意:以上 SQL语句的查询语句部分是通过查询设计器生成。 ) 步骤 8:双击命令按钮,编写命令按钮的 Click事件代码: THISFORM RELEASE。 步骤 9:单击 “常用 ”工具栏中的 “运行 ”按钮运行表单。 【试题解析】 本题主要考查了表单及控件的常用属性的设置; SQL分组计算查询;表单
14、数据环境。 通过拖放表单数据环境中的表到表单中,可快速建立表格及表格与数据表的联系,要注意的是在向每个页面中添加表格数据对 象时,一定要注意页面处于编辑状态下 (每个页面都可单独选定,将表从数据环境中拖放到要求的页面中 ),否则添加的表格对象只是停留在页框上方,该表格实际是包含在表单中而非添加到页框的页面中。控制页框中页面数的属性为 PaqeCount。 本题要注意的是,由于在数据库中 employee表和 orders表已经建立了永久联系,所以当将这两张表添加到数据环境中时,二者之间会自动产生一个相应的关联 (临时联系 ),这样,当运行表单后, orders表中的记录就会随着 employee表中当前记录的改变而改变,即 orders表中 始终显示的不是整个 orders表的内容,而只是显示 employee表中当前记录在 orders表中对应的记录。而题中要求在 “订单 ”页面显示 orders表的内容,故应该在数据环境中将两张表的关联删除。 第三个页面的表格中显示的内容需要用 SQL查询语句完成,可以将表格 qrid1的表格数据来源属性 RecordSourceType设置为 “4-SQL”,而对应的数据来源RecordSource可以在表单的 Init事件中通过 SQL语句来指定。