(1)在考生文件夹下已有表单文件formone.SCX,如图2-26所示,其中包含一个列表框、一个表格和一个命令按钮。 请按下面要求完成相应的操作: ①在表单的数据环境中添加orders表。 ②将列表框List1设置成多选,另外将

admin2015-08-20  28

问题 (1)在考生文件夹下已有表单文件formone.SCX,如图2-26所示,其中包含一个列表框、一个表格和一个命令按钮。

    请按下面要求完成相应的操作:
    ①在表单的数据环境中添加orders表。
    ②将列表框List1设置成多选,另外将其的RowSourceType属性值设置为“8-结构”、RowSource设置为orders。
    ③将表格Grid1的RecordSourceTyl~的属性值设置为“4-SQL说明”。
    ④修改“显示”按钮的Click事件代码。当单击该按钮时,表格Gridl内将显示在列表框中所选orders表中指定字段的内容。
    (2)利用查询设计器创建查询,从orders、employee和customer表中查询2001年5月1日以后(含)所签所有订单的信息。查询结果依次包含“订单号”、“签订日期”、“金额”、“签订者”和“客户名”5项内容,其中“签订者”为签订订单的职员姓名。各记录按“签订日期”降序排序,签订日期相同按“金额”降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。

选项

答案(1) 步骤1:命令窗口执行:MODIFY FORM formone,打开表单设计器修改表单。 步骤2:右击表单选择【数据环境】,在表单数据环境中击右键选择【添加】,在“添加表或视图”对话框中双击orders表添加到数据环境中。 步骤3:选中表单中的列表框控件,将RowSourceType属性值设置为:8.结构,将RowSource属性值设置为:orders,将MultiSelect属性值设置为:.T.;选中表格(Grid1)控件,将RowSourceType属性值设置为:4-SQL说明。 步骤4:“显示”按钮(Command1)的Click事件代码如下: *****“显示”按钮的Click事件代码***** *下面代码的功能是根据用户对列表框的选择结果构建字段列表,然后进一步构建select语句并据此为表格的相关属性设值。 *修改所有***FOUND***下面的一条语句。 *不能修改其他语句。不能增加语句,也不能删除语句。 s="" f=.T. ***FOUND*** FOR i=1 TO this form.List1.ColumnCount IF thisform.List1.Selected(i) IF f ***FOUND*** s=thisform.List1.valme f=.F. ELSE ***FOUND *** s=s+thisform.List1.value ENDIF ENDIF ENDFOR st="select &s from orders into CurSor tmD" thisform.Grid1.RecordSource=st 命令按钮修改后的事件代码如下: s="" f=.T. *** FOUND*** FOR i=1 TO thisform.Listl.ListCount IF thisform.List1.Selected(i) IF f ***FOUND*** s=thisform.List1.List(i) f=.F. ELSE *** FOUND*** s=s+","+thisform.List1. List(i) ENDIF ENDIF ENDFOR st="select &s from orders into cursor tmp" thisform.Grid1.RecordSource=st 步骤5:单击“常用”工具栏中的“运行”按钮查看结果,并单击“输出数据”按钮产生temp.dbf表文件,保存。 (2) 步骤1:命令窗口执行:OPEN DATABASE订单管理,打开数据库环境。 步骤2:命令窗口执行:CREATE QUERY queryone,打开查询设计器,在“添加表或视图”对话框中,分别双击employee、orders和customer表(注意:一定要按顺序添加表),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为3个表在查询设计器中建立联系。 步骤3:依次双击orders表中的“订单号”、“签订日期”、“金额”字段,添加到“字段”选项卡的“选定字段”列表中;“字段”选项卡的“函数和表达式”下的文本框中输入:Employee.姓名AS签订者,单击“添加”按钮添加到“选定字段”中;双击customer表中的“客户名”字段添加到“选定字段”列表中。 步骤4:“筛选”选项卡的“字段名”中选择“Orders.签订日期”字段,“条件”下拉框中选择“>=”,在“实例”框中输入:{^2001-05-01}。 步骤5: “排序依据”选项卡中双击“选定字段”列表框中的“Orders.签订日期”字段添加到“排序条件”中,“排序选项”中选择“降序”;双击“选定字段”中的“Orders.金额”字段添加到“排序条件”中,“排序选项”中选择“降序”单选项。 步骤6:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名tableone,单击“确定”按钮。 步骤7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。

解析 (1)本题主要考查了FOR循环语句;表单控件常用属性;宏替换函数。
    本题需要了解列表框的两个重要属性:选中条目SELECTED(I)和条目总数(LISTCOUNT)属性。程序要求实现的功能大致如下:
    首先定义一个变量并赋值为空字符串,再定义一个变量,赋值为逻辑真。
    接着使用FOR循环开始统计列表框中被选定的条目,循环初值为1,终值为列表框中的条目数(该数值通过LISTCOUNT函数计算得出);进入循环体后,通过IF条件语句首先判断列表框中条目是否被选中,如果选中,则执行第二个IF条件语句,否则返回FOR语句处,继续判断列表框的下一个条目。
    第二个IF语句中,首先判断则逻辑变量的值是否为真,如果为真,则空字符串变量的值等于当前列表框的条目值,接着将逻辑变量的值指定为逻辑假,当执行一次该IF语句后,逻辑变量的值就始终为逻辑假了;在后面执行的条件判断语句中,当逻辑变量值为假时,字符串变量的值等于S值加上当前列表框中的条目值,此时,不会再执行逻辑变量为真的语句了。
    最后,利用宏替换函数(&)将字符串中的数据替换出来,作为简单查询的输出字段;将查询结果保存到临时表中,并通过表格控件显示查询结果。
    (2)本题考查了查询设计器的使用。由于涉及3个表的连接查询,因此,要注意向查询设计器中添加表的顺序,保证各表之间在添加到查询设计器后能彼此建立联系。
转载请注明原文地址:https://jikaoti.com/ti/TBv0FFFM
0

最新回复(0)