罗斯文数据库案例课件罗斯文数据库案例罗斯文数据库案例罗斯文数据库案例课件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(Visual Basic for Application),VBA源自VB,是Office应用程序内置的程序设计语言与Visual Basic 6.0有着相似的结构和开发环境那么VBA在哪里写呢,在哪里来管理它呢,在Access中提供的开发环境就叫做Visual Basic编缉器,简称VBE,在Access中以Alt+F11的方式可以随时打开VBE。
如下:罗斯文案例罗斯文数据库案例课件1.罗斯文数据库简介 罗斯文案例罗斯文数据库案例课件10.VBA简介 VBA程序是VBA语言代码及注释的集合,一条语句是一个完整的命令,语句之间以换行符分隔,大多数情况下,一条语句就是一行代码,有时代码可能太长,为增加可读性,可以通过加上续行符“_”来分成几行续写在续行符的前面要有至少一个空格符,另外需要注意的是续行符不能将一个独立的关键字、变量名等拆分到不同的行除了正常的代码外,程序中还有一些注释,通过注释能增加可读性,也能方便二次开发及维护注释可以用Rem加空格开头,也可以用英文单引号“”开头表示,以“”开头的用法比较常见VBA语句由规定的关键字及其他被赋予意义的单词组合而成由单词等组成一个个语句其中能实现某种特定功能的一段语句,为了在以后再次实现功能时不用重复书写,我们就把这些能实现特定功能的一段语句进行单独的封装,从而形成一个程序段,象这样的一个程序段称之为过程罗斯文案例罗斯文数据库案例课件10.VBA简介 sub过程与函数过程:Sub 过程()End sub 以上便是一个sub过程,以Sub加过程名及()开始,()中放置参数,如没有参数则保留为空以End sub 结束。
函数过程也是一种过程,可以以Function加函数名开始,以End function结束函数过程与sub过程最主要的区别是函数有一个返回值除了过程还有其他一些需要了解的基础如常量、变量、数据类型、几种常见的结构制流程控制语句、生命周期等可在F1帮助里查阅罗斯文案例罗斯文数据库案例课件10.VBA简介 罗斯文案例罗斯文数据库案例课件10.VBA简介 窗体页脚中有两个按钮,一个是“回顾产品”按钮,这里也是通过编程的方法来实现功能的,先查看“回顾产品”按钮的事件属性,在单击事件后的选择器中点击,直接打开到VBE窗口,并定位在回顾产品的click事件中这里用到了一个IfElseEnd if的分支结构罗斯文案例罗斯文数据库案例课件1.罗斯文数据库简介 罗斯文案例罗斯文数据库案例课件10.VBA简介先判断一下窗体中的公司名称文本框是否为Null值,如果为Null值,则提示信息(利用msgbox函数,具体可查看帮助),并让公司名称文件框获得焦点(setfocus方法);如果公司名称不为Null值,则执行else后面的内容,打开窗体“产品列表”,并将窗体移动到固定的位置(docmd.movesizw),这里主要用到的是openform这个方法,这是一个经常用到的方法,要理解它的参数的用法,在本例中用到了WhereCondition这个参数,相当于SQL语名中的条件子句,起到筛选作用,只显示与主窗体中“供应商ID”一致的产品。
具体可查看帮助增加产品”按钮也是用代码实现的,同样也是一个openform方法的应用,这里用到了另外两个参数,DataMode用于设定打开窗体处于什么状态,本例中是acFormAdd 用户可以添加新记录,但是不能编辑现有记录(即数据输入属性);另外一个是OpenArgs属性,具体的请查看帮助罗斯文案例罗斯文数据库案例课件罗斯文案例罗斯文数据库案例课件1.罗斯文数据库简介 罗斯文案例罗斯文数据库案例课件野草没有家草香二零一零年六月。