《罗斯文数据库案例》PPT课件.ppt_第1页
《罗斯文数据库案例》PPT课件.ppt_第2页
《罗斯文数据库案例》PPT课件.ppt_第3页
《罗斯文数据库案例》PPT课件.ppt_第4页
《罗斯文数据库案例》PPT课件.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

罗斯文数据库案例,1.罗斯文数据库简介,罗斯文库是Access自带的示例数据库,对该案例学习,能对数据库的表、关系、查询、报表、窗体、切换面板等内容有个全面的了解。罗斯文公司的业务流程:罗斯文公司是一个虚构的商贸公司,该公司进行世界范围的食品的采购与销售。罗斯文公司销售的食品分为几大类,每类食品又细分出各类具体的食品。这些食品由多个供应商提供,然后再由销售人员售给客户。销售时需要填写订单,并由货运公司将产品运送给客户。,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,2.表设计,设计表,表的设计思路就是将数据分类,同一类的数据放在一个表中,并且有一个字段与其他表之间建立联系。而且要尽可能的细分,以最大限度的保证每个表中不存在重复的数据资料。,罗斯文案例,2.表设计,比如说销售订单吧,肯定要记录客户的具体资料如名称、地址、电话等方便联系;还要记录订单的日期,运费等;以及每张订单中都有哪些具体的产品、数量、价格等信息。如果我们把这么多信息记录在一张表里的话,那就要录入许多重复的信息,比如客户的资料,不仅很麻烦还很容易出错。所以应该细分为客户表专门维护客户的信息;订单表记录订单的日期,运费;订单名细表记录具体的产品数量及价格;另外还需要产品表、供应商表、雇员表、运货商表及类别表。,罗斯文案例,3.数据类型及字段属性,文本数字日期备注货币等数据类型(数据类型相关知识见教材-P30、P134),罗斯文案例,3.数据类型及字段属性,罗斯文案例,4.具体表的设计,罗斯文案例,4.具体表的设计,“供应商ID”字段。这是一个自动编号类型的字段,在表中具有唯一性,一般的我们设计的表中都需要一个唯一的不重复的字段,我们可以把该字段设为主键,该字段将会用于与其他表之间建立关系。,罗斯文案例,4.具体表的设计,表中的大部分字段都是文本类型,大小可以根据实际要输入的内容来设置,比如城市,地区的字段设为,而地址的字段大小是。采用合适的大小会尽可能的减少存储空间的占用。一般不需要进行数据计算的字段我们都用文本类型来存储。公司名称和邮政编码字段的索引属性为有(有重复)也即唯一索引为否,主要是为了通过索引加快对这两个字段的查询等操作,有重复说明该字段中的数据是有可能重复的,比如两个公司在同一地区,那邮政编码就是一样的。,罗斯文案例,4.具体表的设计,图片字段的数据类型是OLE对象,OLE对象在表中不能直观地看到图片,如果要查看图片可以在字段上双击,如需插入,则在图片字段上单击右键,选择“插入对象”,再从对话框中选择“由文件创建”,浏览到所需图片,也可以链接对象,这样只是保存了链接地址,不会直接把文件插入数据库。,罗斯文案例,4.具体表的设计,罗斯文案例,4.具体表的设计,产品表中,“中止”字段的数据类型是“是/否”型,这对于处理两选一的结果最为合适;重点来关注一下“供应商ID”和“类别ID”,这两个字段都是数字类型,分别对应“供应商”表中主键和“类别”表中的主键。先来看下“供应商ID”,这个字段的标题属性中填的是“供应商”,这样在数据表视图中,看到的字段标题就会是“供应商”,而不是默认的“供应商ID”。另外这两个字段都是查阅列,这是一个很有用的属性,我们对“供应商ID”作一下详细的讲解,“类别ID”与“供应商ID”的设置方法相同。,罗斯文案例,4.具体表的设计,罗斯文案例,4.具体表的设计,在表中输入数据时,经常会遇到需要重复输入的内容,比如人员的性别为“男”或“女”,这是单表中的重复录入;比如产品表中需要输入“供应商”,而“供应商”字段在“供应商”表中已经录入过了,这属于跨表的重复录入。这些内容如果直接录入不仅花费了用户较多的时间,而且极容易出错。为了方便用户录入重复性的数据,可以借助ACCESS提供的查阅列的功能。,罗斯文案例,4.具体表的设计,如果“行来源类型”是“值列表”,直接输入即可,如“男;女;”如果“行来源类型”是“字段列表”,可单击右侧的下拦箭头,选择某个表,以该表中的字段名称作为列表框或组合框中的数据。,罗斯文案例,4.具体表的设计,绑定列在列表框或组合框中进行选择时,所显示出来的数据并不一定就是存储在该字段中的内容。在“绑定列”中设置的列中的值才是表中真正存储的值。列数在列表框或组合框中所显示的列数,可以同时显示表中的多列。列标题用字段名称,字段标题或首行数据作为列表框或组合框中列的标题。如果在列表框或组合框中同时显示多列时,加上标题方便识别各列的内容。,罗斯文案例,4.具体表的设计,列宽列表框或组合框中有多列时,可指定每列的宽度,每列宽度之间以英文分号分隔。如列数为3列,则可设列宽为:2;2;2,系统会自动加上cm单位;如果某一列无需显示,则列宽设为0即可。如:0;2;2。列表行数是指在组合框中一次最多可以显示的行数,其余的数据需拖动滚动条查看。列表宽度在组合框中,列表框部分的宽度,可以设为“自动”,也可以设为数值。限于列表在组合框中,如果允许输入除列表框中值以外的数据,则选择“否”。如果值必须为列表中的一项时,则选择“是”。,罗斯文案例,4.具体表的设计,罗斯文案例,4.具体表的设计,“客户”表设计视图的查看可以发现表中的“客户ID”字段与前几个表中的ID字段不同,没有采用自动编号的数据类型,而是用了文本类型,长度为。这个“客户ID”字段也是作为主键的,也就是说不允许在该表中输入重复的客户代码。在“客户ID”字段中还设置了“输入掩码”的属性,“LLLLL”,“”是将所有输入的字符自动转为大写,这样在输入时就不用理会大小写,“L”代表字母A-Z,是必选项。这样设置的意思就是在“客户ID”字段中必须输入5个字母,不能输入其他的字符或者少一位。“输入掩码”可以帮助客户准确地输入数据,避免不必要的错误。,罗斯文案例,4.具体表的设计,罗斯文案例,4.具体表的设计,“雇员ID”是自动编号的主键,“出生日期”是“日期/时间”类型,它的“格式”属性是“yyyy-mm-dd”,表示显示时的格式,“有效性规则”属性是“”,“=”,“”,“=”;逻辑运算符“and”,“or”,“not”;连接运算符“&”,“+”;及常用的!和.(点)运算符。,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,7.查询中的表达式,扩展明细查询:查询的数据来自于“产品”表和“订单明细”表,查询结果按订单ID升序排列。查询中的字段总价是个计算字段,总价为该字段的名称,计算表示用“订单明细”表中的“单价”乘以“数量”后再乘以(1-折扣),相当于算出了打过折后的总价。字段中用到一个CCur()转换函数,它的作用是将数据转换为货币类型,另外表达式中用了先除以100,再乘以100,相当把数据还原,同时小数点后面保留两位小数。此处可试试直接用CCur(订单明细.单价*数量*(1-折扣),得到的结果也是两位的,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,7.查询中的表达式,订单小计统计出每个订单上各种产品的销售金额的总计金额,为汇总销售额等多个查询提供数据。小计:CCur(单价*数量*(1-折扣)/100)*100。本例到这里只是计算出了每个订单ID中每种产品的总价,而我们要统计出的是每个订单ID中所有产品总价的和,所以我们要对订单ID进行分组,要用到“总计”行的功能,“总计”行默认是不显示的,可在设计窗体的下半部分右击鼠标,选择“总计”,或者单击工具栏上的按钮,这样都会多出一行总计来,在总计行,可从下拉框中对每个字段选择相应的操作,可以作为分组依据或条件字段也可以选择聚合函数或其他函数来对字段进行计算,如果要自己写表达式,则选择表达式。在本例可以把“订单ID”字段设成分组字段,对“小计”字段要进行求和,只要选成“总计”就可以了。罗斯文的示例中并没有选用“总计”的功能,而是对“小计”字段设成了“表达式”,而在表达式中加上了求和函数Sum(),大家可以比较一下,用这两种方法生成的查询运行结果都是一样的,而SQL查询的语句也是一样的。,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,8.窗体设计,罗斯文案例,9.报表设计,窗体主要是为了实现数据的采集,而报表则是用于数据的显示输出或打印,在数据展示方面具有特长,可以对数据进行分组和汇总显示。报表的构成:报表由控件和节组成,节又可分为主体节与页眉、页脚节。而页眉页脚根据对象的不同,再进行细分为报表页眉页脚、页面页眉页脚、组页眉页脚。如果有多个分组时,则按照分组级别进行嵌套。主体节是报表的核心部分,凡是希望按顺序列出的数据,都应以控件形式放在主体中,一般用得最多的控件便是文本框了。而如果希望作为标题、分类依据、汇总信息等则应该以控件的形式安排的页眉或页脚。,罗斯文案例,9.报表设计,“按汉语拼音顺序的产品列表”报表是按产品名称的第一个字来进行分组显示产品信息的报表。在报表中除了产品名称外,还列出了类别名称,单位数量和库存量的数据。,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,9.报表设计,在左上角的报表选择器上双击,跳出属性窗口,首先看一下报表的记录源是“按季度汇总销售额”。报表页眉中有一个标签,一个文本框,文本框的值为“=Format(Date(),yyyy-mm-dd)”,按格式显示系统的当天日期。页面页眉中只有一条水平线,每页的顶端都会打印一条水平线。,罗斯文案例,9.报表设计,点击报表选择器,再右键菜单,看一下这个报表的排序分组会发现本报表进行了二层的分组嵌套。,罗斯文案例,9.报表设计,第一个分组字段为一个表达式“=DatePart(q,发货日期)”,这个函数的意思为取发货日期中的季节,也即是按季节分组。第二个分组字段为发货日期,但分组形式不是每一个值,而是年。这里分别给我们演示了两种不同的用法,其结果是一样的。也就是说第一个分组字段,我们也可以设为发货日期,然后把分组形式设成季即可。“=DatePart(q,发货日期)”页眉中有一个文本框,值为“=DatePart(q,发货日期)”,代表季节,另个设置了几个标签。还加了四条直线作为分隔。发货日期的页眉为空,主体也为空,因为主体中一般列出的是满足分组条件的明细记录,在这里我们只要每一年度的一个合计数,所以内容在发货日期的页脚中。发货日期页脚中有三个文本框,内容分别为“=DatePart(yyyy,发货日期)”:将发货日期转换为位的年份数;“=Count(订单ID)”:用Count函数计算同每一年的订单ID数目;“=Sum(小计)”:用Sum函数计算各订单小计的合计数,也即是各年销售额。“=DatePart(q,发货日期)”页脚中只有一条水平线,用于标识本组的结束,罗斯文案例,10.VBA简介,在Access应用程序中我们所用到的开发语言是VBA(VisualBasicforApplication),VBA源自VB,是Office应用程序内置的程序设计语言。与VisualBasic6.0有着相似的结构和开发环境。那么VBA在哪里写呢,在哪里来管理它呢,在Access中提供的开发环境就叫做VisualBasic编缉器,简称VBE,在Access中以Alt+F11的方式可以随时打开VBE。如下:,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,10.VBA简介,VBA程序是VBA语言代码及注释的集合,一条语句是一个完整的命令,语句之间以换行符分隔,大多数情况下,一条语句就是一行代码,有时代码可能太长,为增加可读性,可以通过加上续行符“_”来分成几行续写。在续行符的前面要有至少一个空格符,另外需要注意的是续行符不能将一个独立的关键字、变量名等拆分到不同的行。除了正常的代码外,程序中还有一些注释,通过注释能增加可读性,也能方便二次开发及维护。注释可以用Rem加空格开头,也可以用英文单引号“”开头表示,以“”开头的用法比较常见。VBA语句由规定的关键字及其他被赋予意义的单词组合而成。由单词等组成一个个语句。其中能实现某种特定功能的一段语句,为了在以后再次实现功能时不用重复书写,我们就把这些能实现特定功能的一段语句进行单独的封装,从而形成一个程序段,象这样的一个程序段称之为过程。,罗斯文案例,10.VBA简介,sub过程与函数过程:Sub过程()Endsub以上便是一个sub过程,以Sub加过程名及()开始,()中放置参数,如没有参数则保留为空以Endsub结束。函数过程也是一种过程,可以以Function加函数名开始,以Endfunction结束。函数过程与sub过程最主要的区别是函数有一个返回值。除了过程还有其他一些需要了解的基础如常量、变量、数据类型、几种常见的结构制流程控制语句、生命周期等。可在F1帮助里查阅。,罗斯文案例,10.VBA简介,罗斯文案例,10.VBA简介,窗体页脚中有两个按钮,一个是“回顾产品”按钮,这里也是通过编程的方法来实现功能的,先查看“回顾产品”按钮的事件属性,在单击事件后的选择器中点击,直接打开到VBE窗口,并定位在回顾产品的click事件中。这里用到了一个IfElseEndif的分支结构。,罗斯文案例,1.罗斯文数据库简介,罗斯文案例,10.VBA简介,先判断一下窗体中的公司名称文本框是否为Null值,如果为Null值,则提示信息(利用msgbox函数,具体可查看帮助),并让公司名称文件框获得焦点(setfocus方法);如果公司名称不为Null值,则执行else后面的内容,打开窗体“产品列表”,并将窗体移动到固定的位置(docmd.movesizw),这里主要用到的是openf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论