(1)打开test db数据库,根据表dept和表sell并使用查询设计器设计一个名称为three的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、“月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售-月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表tabb中。表tabb的字段名依次为:“部门号”、“部门名”、“年度”、“月平均销售”、“月平均工资”、“月平均利润”。设计完成后,运行该查询。 (2)打开文件名为testa的表单。该表单完成如下功能:每当用户输入用户名和口令并按“确认”按钮后,利用表pass中记录检查其输入是否正确,若正确,就显示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入1”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败1”字样,并关闭表单。 ①修改口令输入文本框,使输入的口令显示为“*”。 ②修改该表单“确认”按钮的Click事件中的程序。请将第3、4和12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。
【正确答案】正确答案:(1)步骤1:在命令窗口执行命令; CREATE QUERY three ,打开查询设计器,将考生文件夹下的dept表和sell表添加到查询设计器中。 步骤2:添加两个表后.系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”按钮设置两个表的联系。 步骤3:依次双击dept表中的“部门号”、“部门名”字段和sell表中的“年度”字段添加到“字段”选项卡的“选定字段”列表中,接着在“函数和表达式”框中输入:AVG(Sell.销售额) AS 月平均销售,再单击“添加”按钮,将表达式添加到“选定字段”列表中,以同样的方法,再添加“AVG(sell.工资额) AS 月平均工资”和“AVG(sell.销售额-Sell.工资额)AS月平均利润”两个表达式到“选定字段”列表框中。如图2-44所示。
【答案解析】解析:(1)本题考查的是在查询设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认查询输出的字段来源于哪个数据表。 本题的关键在于输出字段的设置。由于“月平均销售”、“月平均工资”和“月平均利润”字段需要根据表中字段计算得出,因此,需要在查询设计器“字段”选项卡的“函数和表达式”中输入表达式,或打开“表达式生成器”对话框进行输入计算字段的表达式,新字段名通过AS短语指定,求平均值的函数是AVG()。 (2)本题主要考查的是Visual FoxPro记录查询语句和IF条件语句的使用。本题程序的功能大致如下: 首先打开pass表,同时定义两个变量分别等于表单中两个文本框的数据。 然后开始通过 LOCATE 命令查找 pass 表中所有的user 字段值是否有等于第一个文本框中的数据;如果找到,且pass表中的pass字段值等于第二个文本框中的数据,则弹出欢迎提示信息并关闭表单。 接上面的第一个条件判断语句,如果pass表中的user 字段没有找到等于第一个文本框中的数据时,则转入条件语句的另一个分支,首先执行的分支语句是将一个计数变量的值累计加1,当该变量值达到3时,关闭表单(本题中,已在表单中定义了该变量,并赋初值为0,它是一个公共变量),如果没有达到3次,则弹出错误提示信息。 根据以上程序的分析,可以得出: 程序段第3行的错误是没有正确引用文本框中数据,应通过Value属性获得文本框中的数据。 第4行是Visual FoxPro查询记录的命令使用错误,应使用LOCATE命令。 第12行根据题意得出应执行的功能是释放表单,用来释放和关闭表单的方法是RELEASE。