资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,ACCESS基础下,6.1 基本概念,Access中的查询是用来检索数据库表中信息的工具,它能快速地查找出需要的数据。虽然可以通过上一章讲到的排序和筛选来查找表中的数据,但当表中的数据较多而且复杂时,它们的功能是远远不够的,这就需要使用到数据库中的一项非常重要的功能查询,来检索数据。,一个Access查询对象实质上是一条从一个或者多个表中检索需要的数据的SQL语句;,Access提供的查询设计视图,实质上是一个编写相应SQL语句的可视化工具。在Access提供的查询设计视图上,通过直观的操作,可以迅速地建立所需要的Access查询对象,也就是编写一条SQL语句,从而增加了设计的便利性、减少了编写SQL语句过程中可能出现的错误。,查询的结果会随着表中数据的改变而改变。,建立一个查询后,可以将它看作是一个简化的数据表,由它构成窗体和报表的数据来源,也可以用它构成其它查询文件。,参数查询对象,生成表查询对象,追加查询对象,删除查询对象,更新查询对象,交叉表查询能够根据行、列进行分组和汇总,汇总结果显示在行列交叉点上;,利用一个或者多个表的数据生成新表;,从一个或多个表中删除符合条件的记录;,将一个或多个表中的记录追加到已有的表中;,从一个或多个表中根据指定的条件,检索数据并显示结果。,根据用户输入的参数值来检索数据的查询;,对一个或多个表中的一组记录进行修改;,6.2 创建选择查询对象,1.使用设计器,创建选择单表数据的选择查询对象,创建多个表数据的选择查询对象,使用向导,创建选择单表数据的选择查询对象,创建多个表数据的选择查询对象,查询与相对应的SQL语句,每个选择查询对象都对应一个select 语句,要观看设计器设计的查询对象所对应的SQL语句,可单击工具栏“视图”按钮”SQL视图”命令。也可在SQL视图中直接写SQL语句。,6.3 表达式与函数的使用,前面介绍的查询一般所使用的字段值都是原来表中相同的值,但在实际查询中往往需要对原有的数据进行适当的加工,以便显示出实际需要的结果。例如在“loant表”计算各个银行的总贷款额sum(lamount)。这时就需要使用表达式来进行计算。,算术表达式,运算符,描述,例子,结果,+,两数相加,2+3;,5,-,两数相减,Date()-30,(如Date()为2003/2/1),200312,两数相乘,8*4;,32,/,两数相除,17/2,85,整数除法(结果只包含整数部分,不包含小数部分),172,8,Mod,返回被整除后的余数,17 Mod 2,1,指数,102,100,连接表达式,连接运算主要用于连接两个字符串,其运算符有两个:&和。,&,用来强制两个表达式作为一个字符串连接。,例如:“Hello”&”World”,结果为”Helloworld”,,”Cheek”&48&”abce”,结果为”Cheek48abce”。,连接两个字符串。要求“”号两端的类型必须一致。,例如:“Hello”World”,结果为”Helloworld”。此种情况与“&”的功能相同。而”Cheek”48&”Abce”,系统会给出出错信息“类型不匹配”。即运算符“”必须要求类型相同才能连接。,为了避免与算术运算符“”号混淆,一般用“&”号进行两个字符串的连接而尽量不使用“”号。,关系表达式,运算符,功能,举例,含义,=,等于,“王名”,等于“王名”,小于,大于,80,大于80,=,小于等于,=,大于等于,=9911,99年1月1日以后出生,不等于,“男”,不等于“男”,逻辑运算表达式,逻辑运算主要用于对表达式进行真、假判断。,运算符,功能,举例,含义,And,逻辑与,“团员”And“男”,是男生团员的,Or,逻辑或,“团员”Or“男”,是男生或是团员任意一个,Not,逻辑非,Not“团员”,不是团员的,其他运算表达式,运算符,功能,举例,含义,Between,and,决定一个数值是否在一个指定值得范围内,Between 1 And 10,在1到10之间,In,决定一个字符串是否是一列表值的成员,In(“团员”,“男”),是“团员”或是男生中的任意一个,Is,与Null一起使用,以决定一个值是否是Null或Not Null,Is Null,Is Not Null,表示该字段无数据,该字段有数据,Like,决定一个字符串是否以一个或更多字符开始,需要通配符“*”号或“?”号以使Like运算符正确的使用。,Like“a*”;,Like“File?”,以“a”开头的字符串,以File开头,后3位为任意的字符,常用函数,名称,格式,功能,取整函数,INT(),向下取整,截取左子串函数,LEFT(,),从“字符串表达式”左侧第1个字符开始,截取“数值表达式”值个字符。,截取右子串函数,RIGHT(,),从“字符串表达式”的最右端的第1个字符开始,截取“数值表达式”值个字符,测试字符串长度函数,LEN(),返回“字符串表达式”的字符个数。,系统日期函数,DATE(),返回当前系统日期,系统日期和时间函数,Now(),返回当前机器系统的日期和时间。,年函数,YEAR(),返回年的四位整数。,月函数,MONTH(),返回112之间的整数,表示一年的某月,日函数,DAY(),返回值为131之间的整数,表示日期中的某一天。,常用函数,名称,格式,功能,截取中间子串,Mid(String,start,length),在”String”中,从start位置开始,截取length长度的字符串;如果省略length,那么截取到最后,返回子串在父串中的位置,InStr(start,string1,string2,compare),Instr(“abc”,”a”)返回1;,Instr(“abc”,”f”)返回0;,Ltrim(string),除去字符串中的左侧空格,Rtrim(string),除去字符串中的右侧空格,Trim(string),除去字符串两侧的空格,Dateadd(interval,number,date),在给定的date上加上number,interval为间隔,Datediff(interval,date1,date2),判断两个日子之间的间隔,interval为间隔,Datepart(interval,date),返回给定日期的指定部分,说明:interval的取值:yyyy(年),q(季),m(月),d(日),w(工作日),,ww(周),h(小时),n(分),s(秒),举 例,1查询2000年以后的贷款信息,2查询bankt表中北京银行的信息,3查询bankt表中不在北京的银行信息,4查询在北京、上海的银行信息,5查询在2000年到2005年的贷款信息,6查询2005年以前和2007年以后的贷款信息,7显示金额最大的前三个贷款信息,8查询最近一笔贷款记录,6.3 创建汇总查询,汇总查询对象是一种特殊的选择查询对象,有时并不关心表中各记录的数据,而是关心某字段的统计值。,汇总查询的实例有:,9 查询在2007年到2009年期间,每个银行的贷款总额,要求显示银行名称和贷款总额,10 创建查询,要求显示每笔贷款的剩余还款年限,6.4 创建参数查询对象,此处所指的参数特指查询准则中使用的变量,参数查询对象则是指本查询对象所使用的参数需由数据库中其他对象赋值方能运行的查询。,参数查询的特点是每次使用时,都会弹出“输入参数值”对话框,要求用户输入参数,并把输入项作为查询的条件。使用这种查询,可以在不打开查询设计的情况下,重复使用相同的查询结构,并进行修改。,参数用中括号括起,如:“姓名”。,一个查询对象可输入多个参数,但不能使用重复名称。,举例,11.根据输入的两个日期,检索处于这两个日期之间的所有贷款记录。显示法人名称、银行名称、贷款日期、贷款金额和贷款期限,步骤:选择记录源-添加要显示的字段-,设置条件,在贷款日期字段的条件单元格中输入,Between 起始日期 and 终止日期,6.5 创建交叉表查询对象,交叉表以行和列的形式组织数据,使用这种方式可以很方便地察看和比较数据。,使用向导创建交叉表查询,步骤为:,使用表或事先生成好的选择查询对象,选择行标题。所谓行标题,是在交叉表最左端的行标题,它将某一字段的分组数据放入指定的行中;,选择列标题。所谓列标题,是在交叉表最上端的列标题,它将某一字段的分组数据放入指定的列中;,选每行每列交叉点计算出什么数字;,命名,完成。,交叉表查询举例,例12,使用交叉表查询向导,建立一个交叉表,统计每个银行各种贷款年限的贷款比数;,步骤:在【查询】对象窗口下,点击【新建】,交叉表查询举例,例13,使用设计视图创建交叉表查询,检索贷款期限为10年的每个银行每年贷款总金额,要求每行显示合计值;,步骤:启动查询设计器,选择交叉表查询,选择数据源(银行表和贷款表),选择银行名称、贷款金额、year(贷款日期)、贷款期限字段,银行名称中交叉表处选择行标题,year(贷款日期)交叉表中选择列标题,贷款金额处选择值,贷款期限处选择条件,输入条件=10,添加一个贷款总金额:贷款金额字段,行标题,总计。,交叉表查询举例,例14,建立一个带参数的交叉表查询,检索在某年里每个银行每个月的贷款笔数,要求每行显示合计值。,交叉表查询举例,步骤:查询对象下,使用设计器,添加数据源(银行表和贷款表),选择交叉表查询,行标题是银行名称,列标题是month(贷款日期),计数:法人代码,条件:year(贷款日期),【输入贷款年份】,总贷款笔数:法人代码行标题,总计,注意:在交叉表查询中,设置参数需要声明,所以必须在菜单查询|参数中声明参数,6.6 创建查找重复项查询对象,用于查找表对象中重复的记录或字段值的数目,根据查找的结果,决定在表中是否有重复的记录或确定记录在表中是否共享相同的字段值。,例15 查询法人中有多笔贷款的贷款记录,查询对象,新建,查找重复项查询向导,贷款表,,6.7 创建查找不匹配项查询对象,用于查找两个表对象之间不匹配的纪录。步骤如下:,打开包含表对象的数据窗口,单击“查询”按钮。,单击“新建”按钮,选定“查找不匹配项查询向导”列表项,在对话框中选定表作为要查找不匹配项的表对象,选定另一个表作为包含相关记录的表对象,选定两表共有字段作为匹配字段,在所对应的数据表视图中显示不匹配的所有记录,6.7 创建查找不匹配项查询对象,例6:查询没有贷款的法人信息,查询对象,新建,查找不匹配项查询向导,选择待查询不匹配记录的表,选择包含匹配记录的表,选择相关字段,点击完成。,本质上是外连接,第七章 熟悉和使用操作查询对象,删除查询,追加查询,更新查询,生成表查询,7.1 删除查询对象,删除查询可以一次删除表中的许多记录。删除查询常常用于当源表中的记录被追加到目标表后,将这些记录从源表中一次删除。,例17 删除法人名称为“洛普文具有限公司”的贷款记录,查询对象|使用设计器创建查询,选择法人表和贷款表|查询菜单|删除查询|选择贷款表的全部字段(*),选择法人表的法人名称字段,在条件框中输入“洛普文具有限公司”,7.2 更新查询对象,使用更新查询可以一次修改一个或多个表对象中的一组记录。例如,对同一类法人同时增加贷款金额。在更新时要注意对表定义的限制。,注意:,执行更新查询每次都会更改相应的数据表。,例18 将经济性质为国营的法人贷款金额提高10%,查询对象|使用设计器创建查询|查询菜单|更新查询,7.3 追加查询对象,追加查询是将选定的一个或多个表对象中的复合某些特定条件的一组记录添加至另一个或多个表对象的尾部。,追加源表中的记录到目标表大致有三种情况:,数据结构完全一致,数据结构大致一致,数据结构存在很大的差异,只能将部分字段的内容添加,查询对象|使用设计器创建查询|查询菜单|追加查询,例19 新建新法人信息表,表结构与法人表一致,把法人表中注册资金高于2000万的法人信息追加到新法人表中,7.4 生成表查询对象,生成表查询对象是将一个或多个表对象中的全部或部分数据来创建新的表对象,例20 2008年的贷款信息保存到2008年贷款信息表中,查询对象|使用设计器创建查询|查询菜单|生成表查询,第八章 报表,报表类型,使用自动创建报表,使用“报表向导”创建报表,用“设计视图”创建报表,报表的浏览和打印,排序与分组,报表计算和汇总,报表,在Access中,数据库的打印工作是通过报表对象实现的,使用报表对象,用户可以简单、轻松地完成复杂的编制打印程序工作。,报表可以通过报表向导来自动生成,也可以通过报表视图进行自定义。报表的设计是可视化的,通过对数据精美的摆放,可以设计出良好的效果。,报表同查询一样,本身不存储数据,它的数据来源于基表、查询和SQL语句,只是在运行的时候将信息收集起来。,报表的类型(一),1纵栏式报表,2表格式报表,报表的类型(二),3组合、合计和汇总报表,报表的类型(三),4图表,5邮件标签,报表窗口的类型(一),报表与Access系统的其他对象一样,也具有不同的视图窗口。报表具有3种视图窗口:“设计视图”窗口、“打印预览”窗口和“版面预览”窗口。,1“设计视图”窗口,在“设计视图”窗口中,可以创建报表或更改已有报表的结构。该窗口分五个节,报表页眉、报表页脚、页面页眉、主体及页面页脚,后3个节为默认节。如果在报表中,分组显示还有组页眉和组页脚。,报表页眉:报表页眉中的内容显示在整个报表的首页开始位置,而且仅显示一次。一般用于显示公司徽标、报表标题或打印日期等;,页面页眉:页面页眉的内容显示在报表每一页的顶部,主要用于显示列标题等信息;,组页眉:组页眉显示在每一组的开头,用来显示整个组的代表信息。组页眉的名称会随着分组的字段名称而确定;,主体:主体包含主要数据,用来显示报表记录源的每一条叫记录的详细信息;,组页脚:组页脚显示在每一组的结尾,用来显示组的汇总信息(小计)。,页面页脚:页面页脚的内容显示在每一页的底部,主要用来显示页码、制表人、审核人或者打印日期等;,报表页脚:报表页脚的内容只显示在报表的最后一页末尾,该节数据位于末页的页面页脚的上面,主要用来显示整个报表的汇总、统计信息。,报表窗口的类型(二),2“打印预览”窗口,可以显示报表打印时的样式,同时运行所基于的查询,并在报表中显示出全部数据。,3“版面预览”窗口,可以查看报表的版面设置,它与报表的“打印预览”窗口几乎完全一样,它近似地显示报表打印时的样式,能够很方便地浏览报表的版面。在“版面预览”窗口上将显示全部报表节以及主体节中的数据分组和排序,但仅使用示范数据,并且忽略所有基本查询中的准则和连接。,报表上是否加修饰,是否把记录分组,确定顶部、底部、标题、页码,报表中的记录用什么次序安排,制作自己的报表,报表中包括哪些字段,确定数据源,创建报表的方法,报表向导,自动报表,图表向导,标签向导,根据向导提示建立报表,报表的设计视图,不需向导提示自动建立报表,用表和查询中的信息制作图表,建立一个在邮件标签上打印名字的报表,用户定制报表,控件(一),“切换”按钮,用于创建保持开/关、真/假、或是/否值的切换按钮控件。单击切换按钮时,其值变为-1(表示开、真或是)并且按钮表现为按下状态。再次单击该按钮,其值变为0(表示关、假或否)。,“选项”按钮,用于创建保持开/关、真/假、或是/否值的选项按钮控件(有时称作”调谐选项按钮”)。单击选项按钮时,其值变为-1(表示开、真或是)并且按钮中央出现实心圆。再次单击该按钮,其值变为0(表示关、假或否)。,“复选框”按钮,用于创建保持开/关、真/假或是/否值的复选框控件。单击复选框时,其值变为-1(表示开、真或是)并且框中出现核对记号。再次单击复选框,其值变为0(表示关、假或否)并且框中的核对号消失。,“组合框”按钮,用于创建包含一系列控件潜在值和一个可编辑文本框的组合框控件。如果要创建列表,可以为组合框的”行来源”属性输入一些值,也可以将表或查询指定为列表值的来源。,控件(二),工具按钮名称,按钮图标,工具按钮的功能,“选择对象”按钮,默认工具。使用该工具可以对现有控件进行选择、调整大小、移动和编辑。,“控件向导”按钮,用于激活“控件向导”。当该按钮处于按下状态时,“控件向导”将在创建新的选项组、组合框、列表框或命令按钮时,帮助您输入控件属性。,“标签”按钮,用于显示说明文本的控件。如窗体或报表上的标题或指示文字。,“文本框”按钮,用于显示、输入或编辑窗体或报表的基本记录源数据,显示计算结果或接收用户输入数据的控键。,“选项组”按钮,与复选框、选项按钮或切换按钮搭配使用,可以显示一组可选值。,控件(三),“列表框”按钮,用于创建包含一系列控件潜在值的列表框控件。如果要创建列表,可以在列表框的”行来源”属性中输入值,也可以将表或查询指定为列表中值的来源。,“命令”按钮,用于在窗体或报表创建命令按钮。,“图像”按钮,用于在窗体或报表中放置静态图片。不能对窗体上的图片进行编辑。,“未绑定对象框”按钮,用于在窗体或报表中结合型OLE对象。,“绑定对象框”按钮,用于在窗体或报表中结合型OLE对象。,“分页符”按钮,用于在多页窗体的页间添加分页符。,记录的排序和分组,在报表中对记录进行排序,在报表中对记录进行分组,概念:,组就是共享某个公共信息(如一个地区)的记录集合。,分组报表就是以组(如省、城市)显示记录以及每个组的引导信息和汇总信息。,排序和分组的操作,改变排序和分组的顺序,在报表中插入其他排序、分组字段或表达式,在报表中删除排序、分组字段或表达式,在报表中把一组数据放在同一页或同一列中,让每组数据都新起一行或一列,使用报表中的计算总计,计算一个记录的总和,计算所有记录或一组记录的总计值或平均值,计算百分比,给每个记录标号,对每个组的记录进行计数,报表练习,在“贷款管理”数据库中,以银行表为数据源,,自动创建,一个表格式报表;,报表对象,,【,新建,】,2.,使用向导创建报表,按照银行名称来显示贷款信息,报表对象,,【,新建,】,3.,使用报表设计器创建报表,创建纵览式报表,使用子报表,创建子报表,创建子报表的方法有两种:,在已有的报表中创建一个新的子报表,把一个已有的报表添加到另外一个报表中形成子报表,2.,链接主报表与子报表,预览和打印,预览报表,打印报表,各种数据库对象的数据来源,数据来源于现实世界,数据来源于数据表、查询和窗体,数据来源于数据表和查询,数据来源于数据表和查询,练习1:为学生奖惩表建立纵栏式自动报表,学生成绩/奖惩数据库报表练习,1 自动创建报表,学生成绩/奖惩数据库报表练习,方法1:在数据库表对象窗口,选择“学生奖惩表”-单击右键,“另存为”-保存类型:报表-确定,方法2:在数据库表对象窗口,单击“插入”-自动报表,系统自动生成报表(如何去掉值的边框?),方法3:在数据库报表对象窗口,单击新建-自动创建报表:纵栏式,并选择学生奖惩表-确定,在方法3的基础上,如果选择了“自动创建报表:表格式”,结果是什么样子?,1 自动创建报表,学生成绩/奖惩数据库报表练习,例2 创建学生基本信息报表,如下图,2 使用报表向导创建报表,学生成绩/奖惩数据库报表练习,报表对象窗口-新建-报表,2 使用报表向导创建报表,学生成绩/奖惩数据库报表练习,2 使用报表向导创建报表,例3 以学生信息表、学生选课与成绩表、课程表为数据源创建下图报表。,学生成绩/奖惩数据库报表练习,学生成绩/奖惩数据库报表练习,3 使用图表向导创建报表,例4 创建显示各班男女人数的报表,如下图。,学生成绩/奖惩数据库报表练习,首先要建立统计各班男女人数的查询;,学生成绩/奖惩数据库报表练习,4 使用标签向导创建报表,例5 为每个学生打印借书证,如下图。,学生成绩/奖惩数据库报表练习,学生成绩/奖惩数据库报表练习,5 使用设计器创建报表,在报表中添加日期和时间,使用菜单添加日期和时间,手工输入:添加一个文本框,在其中输入,=now(),,当前日期和时间,=date(),,当前日期,=time(),,当前时间,学生成绩/奖惩数据库报表练习,5 使用设计器创建报表,在报表中添加页码,使用菜单添加页码,手工输入:添加一个文本框,在其中输入,=“,第,”,&page&”,页”,=page&”/”&pages,=“,第,”,&page&”,页,共,”,&pages&”,页”,学生成绩/奖惩数据库报表练习,5 排序数据,例6 生成学生与选课成绩报表,按照考试名称和考试成绩升序排列,如下图。,学生成绩/奖惩数据库报表练习,学生成绩/奖惩数据库报表练习,例7 生成学生与选课成绩报表,按照课程名称分组,如下图。,6 分组数据,学生成绩/奖惩数据库报表练习,7 在报表中添加计算型控件,例8 生成学生与选课成绩报表,按照课程名称分组,并计算每门课的选课人数和平均分数,如下图。,
展开阅读全文