1、国家二级 VF机试模拟试卷 215及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下打开表单文件 calculator scx,并完成下列操作: (1)设置表单控件名为 calculator,保存表单。 (2)设置表单内文本控件 Text2的输入掩码使其具有如下功能:仅允许输入数字、正负号和空格,宽度为 10(直接使用相关掩码字符设置 ),保存表单。 (3)设置表单内文本控件 Text3为只读控件,保存表单。 (4)为表单增加一组如图 1-30所示的选项按钮组 (Optiongroup1), 4个按钮依次为 “+”、 “-”、“*”、 “ ”,保存表单。 注意:所涉及的数字和字母均为
2、半角字符。二、简单应用题( 40分) 2 (1)使用 SQL语句查询每个职工所经手的具有最高金额的订购单信息 (orders表 ),并将结果按金额升序存储到表 results中。 (2)使用 SQL命令建立视图 view_b,视图中是目前在 orders表中没有所签订单的职工 (employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件view_b txt中。 三、综合应用题( 30分) 3 在考生文件夹下,打开 selldb数据 库,完成如下综合应用: 创建一个标题名为“部门销售查询 ”,表单名为 Form1,文件名为 XS的表单,如图 1-23所示。表单要求如下: 在该表单
3、中设计两个标签、两个文本框、一个表格和两个命令按钮。 两个标签对象标题文本分别为 “部门号 ”(Label1)和 “年度 ”(Label2);两个文本框分别用于输入部门号 (Text1)和年度 (Text2);表格控件用于显示查询结果 (Grid1)。 两个命令按钮的功能如下: “查询 ”按钮 (Command1):在该按钮的 Click事件中编写程序,根据输入的部门号和年度,在表 格控件中显示:该部门销售的 “商品号 ”、 “商品名 ”、 “一季度利润 ”、 “二季度利润 ”、 “三季度利润 ”和 “四季度利润 ”,将查询结果存储到以 “xs+部门号 ”为名称的表中 (例如,部门号为 02,
4、则相应的表名为 xs02 dbf)。 注意:表的字段名分别为: “商品号 ”、 “商品名 ”、 “一季度利润 ”、 “二季度利润 ”、 “三季度利润 ”和 “四季度利润 ”。 “退出 ”按钮 (Command2):关闭并释放表单。 注意:表格控件的RecordSourceType属性设置为 “4-SQL说明 ”。 表单设计完成后,运行该表单,输入部门号: 02,年 度: 2005,单击 “查询 ”按钮进行查询。 国家二级 VF机试模拟试卷 215答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY FORM calCulator,打开表单设计器修
5、改表单。 在工具栏中,选中 “属性 ”按钮,在 “属性 ”面板的下拉框中选择表单对象 Form1,在 “全部 ”选项卡中将 Name属性值设置为: calculator。 (2)在“属性 ”面板的下拉框中选择文本控件 Text2,在 “全部 ”选项卡中将 InputMask属性值设置为: “#”。 (3)在 “属性 ”面板的下拉框中选择文本控件 Text3,在“全部 ”选项卡中将 ReadOnly属性值设置为: T。 (4) 从 “表单控件 ”工具栏中向表单添加一个选项按钮组 (Optiongroup1)。 右击选项按钮组 (Optiongroup1),在弹出的快捷菜单中选择【生成器】菜单命令
6、,再在弹出的 “选项组生成器 ”中选中“按钮 ”选项卡,将 “按钮的数目 ”修改为 “4”,并在下面表格的标题一列中,分四行分别输入半角的 +、 -、 *、,最后再选中 “布局 ”选项卡,将 “按钮布局 ”修改为 “水平 ”。如图 2-58和图 2-59所示。 操作完成后,以原表单名保存表单。【试题解析】 本大题考查了表单属性的修改;表单控件的添加;控件属性的设置等。 表单的控件名指的是表单的内部名字,用 NAME属性设置,表示对表单对象的引用。文本框的输入掩码用 INPUTMASK属性设置,用来指定在一个文本框中该如何输入和显示数据。该属性值是一个字符串,该字符串通常由一些固定的模式符组成,
7、每个模式符规定了相应位置上数据的输入和显示行为。如本题中,文本框中仅允许输入数字、正负号和空格,就应该将文本框的 INPUTMASK属性设置为模式符 “#”,又因为宽度为 10,故设置 10个 “#”。 文本框控件的 READONLY属性用来指定文本框为只读的,不可修改。选项按钮组是一个容器控件,其中包括若干个选项按钮,可以分别设置各个选项的属性值,如本题中的 +、 -、 *、分别是四个选项按钮的名称,应通过设置各选项按钮的 CAPTION属性值实现 (注意:选项按钮细的属性和各选项按钮的属性是不一样的 )。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行如下 S
8、QL命令语句并执行: SELECT 职工号, MAX(金额 ) 最高金额; FROM orders; GROUP BY 职工号; INTO CURSOR temp 步骤 2:在命令窗口继续执行如下 SQL命令语句: SELECT orders *; FROM orders, temp; WHERE orders职工号 =temp职工号 AND orders金额 =temp最高金额; ORDER BY 金额; INTO TABLE results (2) 步骤 1:在命令窗口执行命令: OPEN DATABASEorders_manage,打开数据库环境。 步骤 2:在命令窗口执行命令: MOD
9、IFY FILE view_b,打开文本文件编辑器编写视图定义代码。 步骤 3:在编辑器中输入如下程序代码: CREATE VIEW view_b AS; SELECT * FROM EMPLOYEE; WHERE 职工号 NOT IN; (SELECT 职工号 FROM ORDERS); ORDER BY 仓库号 DESC 步骤 4:在命令窗口执行命令: DO VIEW_B TXT,执行文件 (注意:执行文件时,文件后缀名 txt不能缺省 )。 【试题解析】 (1)本题考查了 SQL分组查询和联接查询。本题的解题思路是:先在 orders表中按职工号分组,查询出每个职工所经手的具有最高金额的
10、订单所对应的职工号和金额,将它保存到临时表中,然后再将 orders表和该临时表做联接查询,查找出每个职工的最高金额订单所对应的 orders表信息。另外,对数据进行分组计算查询时,用来求最大值的函数为 MAX()。 (2)本题主要考查了利用 SQL命令建立视图; SQL嵌套查询。 利用 SQL命令建立视图的基本命令格式为: CREATEVIEW视图名 ASSELECT语句。本题可以用嵌套查询完成,先在内查询中从 orders表查找出有订单的职工号,再在外查询中从 employee表中找出 orders表中没有的职工号,这里用到 NOT IN运算符。 三、综合应用题( 30分) 3 【正确答案
11、】 步骤 1:在命令窗口执行命令: CREATE FORN xs,打开表单设计器新建表单。从 “表单控件 ”工具栏中依次向表单添加两个标签 、两个文本框、一个表格控件和两个命令按钮。 步骤 2:在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 2-26。步骤 3:双击命令按钮,编写各个命令按钮的 Click事件代码。各按钮代码如下: *“查询 ”按钮的 Click事件代码 (以下 SQL查询语句通过查询设计器生成 )*bmh=ALLTRIM(THISFORM TEXT1 VALUE)nf=ALLTRIM(THISFORM TEXT2 VALUE)Ctable
12、=“xs“+bmhTHISFOBM GRID1 RECORDSOURCE=“; SELECT商品代码表 *,销售表一季度利润,销售表 =季度利润,; 销售表三季度利润,销售表四季度利润; FROM SELLDB!商品代码表 INNER JOINSELLDB!销售表; ON 商品代码表商品号 =销售表商品号; WHERE销售表部门号 =bmh; AND销售表年度 =nf; INTO TABLE &ctable“THISFORM REFRESH *“退出 ”按钮的 Click事件代码 * THISFORM RELEASE 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存
13、到考生文件夹下。 【试题解析】 本大题主要考查了表单及控件的常用属性和方法的设置; SQL联接查询。本题的关键是程序代码的设计,其编程思想大致如下: 首先定义两个变量分别等于两个文本框中的数据,然后再定义一个变量,变量值等于字符串 “bmh”加上年份文本框中的数据,该变量主要用于指定保存表记录的表名。 接着是将表格的数据源设置为一段 SQL语句,该 SQL查询语句基本功能如下: 通过联接查询 “商品代码表 ”和 “销售表 ”的记录,输出题目所要求的各个字段,两 个表的联接字段为 “商品号 ”;建立两个表联接后,开始设置查询的筛选条件,根据题意,共有两个筛选条件,将这两个条件通过 AND短语联接放到 WHERE短语后;最后是将结果输出到指定的数据表中,此时需要使用宏替换函数 (&)将前面所定义的表名变量中的内容替换出来。