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