ACCESS数据查询窗体设计.docx
ACCESS数据查询窗体设计.doc 复习: 1、窗体按其功能可以分为哪几种? 2、窗体常用的视图有哪三种? 3、窗体的组成?基本组成部分有哪三部分?默认是哪个部分。 4、在窗体中,对象的属性有哪几种? 5、控件可以分为哪几种? 6、窗体的数据源有哪几种? 新授课: 任务二数据查询窗体设计 任务描述:通过设计数据查询窗体,了解数据查询窗体的基本功能及结构;理解掌握主/子窗体的作用、设计数据查询窗体的基本步骤;学会设计数据查询窗体,并能够为用户简单查询交互界面。 一、设计数据查询窗体 例7-3:设计一个查询学生成绩窗体,实现按学号或姓名查询学生的学号、姓名、班级名称课程名称及成绩。窗体样张如下: 具体功能分析:运行查询窗体时,如果在主窗体对应文本框不输入学号和姓名时,子窗体中显示所有学生的信息;当只输入学号并单击搜索时,显示该学生的信息;当只输入姓名全名或部分并单击搜索时,子窗体显示满足条件的信息;当输入学号和姓名并单击搜索时,子窗体显示满足条件的信息;单击关闭按钮时,关闭该窗体。 操作步骤: 1、创建主窗体,保存为MAIN1。 在主窗体中添加两个文本框,文本框名称分别为xh1,xm1;使用标签在添加“查询学生成绩”标题文本;添 加窗体标题“按学号或姓名查询学生成绩(学号)”;修改窗体的相关格式属性。 2、创建一个查询,保存为query1。查询代码如下: SELECT stu.xh, stu.xm AS 姓名, stu.bjmc AS 班级名称, kcb.kcmc AS 课程名称, cjb.cj AS 成绩 FROM stu INNER JOIN (kcb INNER JOIN cjb ON kcb.kch = cjb.kch) ON stu.xh = cjb.xh WHERE (forms!main1.xh1) Is Null) AND (forms!main1.xm1) Is Null) OR (stu.xh)=forms!main1.xh1) AND (forms!main1.xm1) Is Null) OR (stu.xm) Like "*" & forms!main1.xm1 & "*") AND (forms!main1.xh1) Is Null) OR (stu.xh)=forms!main1.xh1) AND (stu.xm) Like "*" & forms!main1.xm1 & "*"); 3、创建数据表窗体,保存为ZCT1。(修改数据表窗体的相关格式和数据属性)。 4、创建主子窗体,将数据表窗体(ZCT1)拖动到主窗体中,并为“子窗体/子报表”对象命名为ZCTDX。 5、向主窗体添加命令按钮,并保存窗体。 (1)搜索按钮:按钮名称为SS1,标题“搜索”,该按钮的单击事件代码为“ME!ZCTDX.REQUERY”。 (2)关闭按钮:按钮名称为GB1,标题“关闭”,该钮的单击事件代码为“DOCMD.CLOSE”。 提高篇设置: (1)运行窗体设计设置主/子窗体的格式及数据属性。 (2)为接收数据的文本框设置获得焦点事件 Private Sub xh1_GotFocus() xh1 = Null End Sub Private Sub xm1_GotFocus() xm1 = Null End Sub 二、数据查询窗体相关知识 1、主/子窗体 窗体中的基本窗体是主窗体,窗体中的窗体称为子窗体。主/子窗体用于同时显示两张表或多张表,它主要用来显示一对多的关系。一般来说,主窗体显示一对多关系中的一端表(主表)信息,通常使用纵栏式窗体;子窗体显示一对多关系的多端表(相关表)的信息,通常使用表格式窗体或数据工作表窗体。) 2、窗体中对象的引用方法 格式:FORMS!窗体名称.控件名或 FORMS!窗体名称!控件名 3、确定查询的条件(关键) 设计数据查询窗体时,条件的组数据是由接收条件的文件框个数决定的。如果有N个接收数据的文件框,则查询条件应有n2组。 4、在VBA窗口,设置对象的名称及代码。 练习: 1、设计一个查询窗体,实现按姓名或课程名称查询学生的学号、姓名、班级名称、课程名称及成绩,保存窗体为“按姓名和课程名称查询学生学生成绩”。 2、设计一个查询窗体,实现按班级或姓名查询学生的信息,保存窗体为“查询学生基本情况”。 小结: 1、确定查询条件数 2、窗体中对象的引用方法 3、数据查询窗体的操作步骤: 案例:按课程名称模糊查询学生的学号、姓名、课程名称及成绩。要求:不输入课程名称中,在子窗体中显示所有信息;当输入完整或部分课程名称时,单击“搜索”可以查出所有相关课程的学生成绩;单击“关闭”可以关闭该窗体。 1、创建主窗体,添加一个文本框,文本框名称为(kcmc99),保存主窗体名称为(FRM99)。 2、创建查询,保存为(Q99),查询代码如下: Select stu99.xh AS 学号,stu99.xm as 姓名,kcb99.kcmc as 课程名称,cjb99.cj as 成绩 From (stu99 inner join cjb99 on stu99.xh=cjb99.xh) inner join kcb99 on cjb99.kch=kcb99.kch Where FORMS!FRM99. kcmc99 IS NULL OR KCB99.KCMC LIKE “*” & FORMS!FRM99. kcmc99 & “*” 3、以(Q99)为记录源,创建数据表窗体,保存为(SJBCT99)。 4、创建主子窗体,将数据表窗体(SJBCT99)拖动到主窗体的主体中,系统自动添加一个子窗体或子报表控件,给该对象的名称为(ZCTDX99) 5、在主窗体中,添加两个按钮,按钮标题文本分别为“搜索”和“关闭”,其中,搜索按钮的单击事件代码为(ME! ZCTDX99.REQUERY),关闭按钮的单击事件代码为(DOCMD.CLOSE)。 作业: 6、什么是主窗体、子窗体?主/子窗体有哪些作用? 参考答案: 窗体中的基本窗体是主窗体,窗体中的窗体称为子窗体。主/子窗体用于同时显示两张表或多张表,它主要用来显示一对多的关系。一般来说,主窗体显示一对多关系中的一端表(主表)信息,通常使用纵栏式窗体;子窗体显示一对多关系的多端表(相关表)的信息,通常使用表格式窗体或数据工作表窗体。 7、简述设计数据查询窗体的基本步骤。