罗斯文商贸数据库分析.doc_第1页
罗斯文商贸数据库分析.doc_第2页
罗斯文商贸数据库分析.doc_第3页
罗斯文商贸数据库分析.doc_第4页
罗斯文商贸数据库分析.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第16章 数据库实例分析初学者面对一个应用课题,常不知如何着手。有的人将开发数据库视为编程,其结果常常事倍功半,数据库质量也难以保证。现实的数据库应用系统的开发是复杂的,必须按照一定的规范有步骤地进行。本章将整合以前各章介绍的思想与方法,通过microsoft office自带的“罗斯文商贸数据库”来说明Access应用系统的整个开发过程,达到进一步学习Access的目的。16.1罗斯文商贸数据库简介 罗斯文商贸数据库是微软公司为用户提供的一个实例,安装office 同时用户在“自定义”安装时选择。如果当初没有选择该项,任何时候都可以将OFFICE 2003光盘插入到光驱中,然后通过windows系统的“控制面板”“添加或删除程序” “添加新程序”选择从CD-ROM安装。安装好的数据库文件存放在系统盘的“program file /Microsoft office/office/sample”目录下。该数据库文件的英文名称为“northwind.mdb”。打开Microsoft Office Access时,在已有数据库列表中选择“罗斯文商贸数据库”或者northwind.mdb即可。本光盘中复制了northwind.mdb,读者可以直接将其复制到您的系统硬盘中,用鼠标双击该文件名,启动它运行。本文中有时把该数据库名简称为“罗斯文”。“罗斯文”示例数据库提供了用户可以试用的数据以及数据库对象(表、查询、窗体、报表、数据访问页、宏及模块),这些数据库对象展示了可以在用户自己的数据库中运用的 Microsoft Access 功能。通过使用“罗斯文”数据库,用户能熟悉如何构造关系数据库,以及如何将数据库对象组合在一起来帮助输入、存储、处理、分发与打印数据。数据库开发步骤:16.1.1需求分析 系统需求包括数据分析和功能分析两个方面。数据分析的任务是归纳出系统所包含的数据,功能分析的任务在于为应用程序设计提供依据,以实现应用要求的功能。数据需求分析:在一个商业过程中包括供货商,订单,产品,雇员,客户和运货商多个环节,对于每一个环节我们都需要掌握详细的信息,这些信息将成为本数据库重要的信息源。功能需求分析:本数据库的功能需求可以概括为以下几个方面:(1) 数据录入 数据录入功能要求及时更新或修改各种数据信息,包括供货商信息,产品信息,订单信息,雇员信息以及客户信息。(2) 查询 能够查询订单信息,产品信息,雇员和客户信息,发货单信息。(3) 汇总并显示各类销售额信息,包括年度汇总销售额,季度汇总销售额,金额汇总销售额等。(4) 打印各种报表 包括产品报表,雇员报表,各类销售额报表,发货单等。16.1.2.数据库逻辑设计确定数据表:根据前面的分析,我们分别归纳出八个表:1 产品(产品ID,产品名称,供应商,类别,单位数量,单价,库存量,订购量,再订购量,中止)2 订单(订单ID,客户,雇员,订购日期,到货日期,发货日期,运货商,运货费,货主名称,货主地址,货主城市,货主地区,货主邮政编码,货主国家)3 订单细则(订单ID,产品,单价,数量,折扣)4 供应商(供应商ID,公司名称,联系人姓名,联系人头衔,地址,城市,地区,邮政编码,国家,电话,传真,主页)5 雇员(雇员ID,姓氏,名字,头衔,尊称,出生年月,雇用日期,地址,城市,地区,邮政编码,国家,家庭电话,分机,照片)6 客户(客户ID,公司名称,联系人姓名,联系人头衔,地址,城市,地区,邮政编码,国家,电话,传真)7 类别(类别ID,类别名称,说明,图片)8 运货商(运货商ID,公司名称,电话)表之间的关系设计:在Access中为每个主题都设置了不同的表后,必须告诉 Access 如何再将这些信息合并在一起。第一个步骤是定义表间的关系,然后创建查询、窗体及报表来从多个表中立刻显示信息。罗斯文数据库中包含六个一对多关系,其中“产品”表与“订单”表之间的多对多关系是通过“订单明细”表中两个一对多关系来创建。详见图16.1。注意:在多对多关系中, A 表中的记录能与 B 表中的许多记录匹配,并且在 B 表中的记录也能与 A 表中的许多记录匹配。此关系的类型仅能通过定义第三个表(称作联结表)来达成,它的主键包含二个字段,即来源于 A 和 B 两个表的外部键。多对多关系实际上是使用第三个表的两个一对多关系。“订单”表和“产品”表有多对多的关系,它是通过“订单明细”表中两个一对多关系来创建,详见图16.2。图16.1我们用表16.1解释表间关系需求一对多的关系主键外键一个供应商可以提供多种商品“供应商”表和“产品” 表供应商.供应商ID产品.供应商ID一种类别包含很多种产品“类别”表和“产品”表类别.类别ID产品.类别ID“产品”表中的主键“产品ID”,可以在“订单细则”中找到多个一样的产品ID,构成一对多的关系“产品”表和“订单细则”表产品.产品ID订单细则.产品ID“产品细则”中存在多个相同的订单ID,在“订单”表的主键为订单ID,所以构成多对一的关系“订单细则”表和“订单”表订单细则.订单ID,产品订单.订单ID一个雇员可以拿到多份订单“雇员”表和“订单”表雇员.雇员ID订单.雇员ID一份顾客可能订了多个订单“订单”表和“顾客”表订单.订单ID顾客.订单ID 表16.1图16.216.1.3数据库物理设计物理设计部分包括定义表的字段结构,建立表间关系。首先我们讲述如何为表定义字段。(1) 表的字段结构产品:字段名数据类型字段属性主键说明产品ID自动编号字段大小:长整型是自动赋予新产品的编号。产品名称文本字段大小:40供应商ID数字字段大小:长整型与供应商表中的项相同。小数位数:自动类别ID类别ID字段大小:长整型与类别表中的项相同小数位数:自动单位数量文本字段大小:20(例如, 24 装箱、一公升瓶)。单价货币格式:货币小数位数:自动库存量数字字段大小:整型格式:常规数字小数位数:自动订购量数字字段大小:整型格式:常规数字小数位数:自动再订购量数字字段大小:整型为保持库存所需的最小单元数。格式:常规数字小数位数:自动中止是/否格式:是/否是表示条目不可用。订单:字段名数据类型字段属性主键说明订单ID自动编号字段大小:长整型是唯一订单编号。客户ID文本字段大小:5与客户表中的项相同。雇员ID数字字段大小:长整型与雇员表中的项相同。小数位数:自动订购日期日期/时间格式:yyyy-mm-dd到货日期日期/时间格式:yyyy-mm-dd发货日期日期/时间格式:yyyy-mm-dd运货商数字字段大小:长整型与运货商表中的运货商ID相同。小数位数:自动运货费货币格式:货币小数位数:自动货主名称文本字段大小:40接收货物的公司或人的名称。货主地址文本字段大小:60仅为街道地址 - 不允许为邮政信箱。货主城市文本字段大小:15货主地区文本字段大小:15州或省。货主邮政编码文本字段大小:10货主国家文本字段大小:15订单细则:字段名数据类型字段属性主键说明订单ID数字字段大小:长整型是与订单表中的订单ID相同。小数位数:自动产品ID数字字段大小:长整型是与产品表中的产品ID相同。小数位数:自动单价货币格式:¥#,#0.00;($#,#0.00)小数位数:自动数量数字字段大小:整型格式:常规数字小数位数:自动折扣数字字段大小:单精度型格式:百分比小数位数:0供应商:字段名数据类型字段属性主键说明供应商ID自动编号字段大小:长整型自动赋予新供应商的编号。公司名称文本字段大小:40联系人姓名文本字段大小:30联系人头衔文本字段大小:30地址文本字段大小:60城市文本字段大小:15地区文本字段大小:15邮政编码文本字段大小:10国家文本字段大小:15电话文本字段大小:24电话号码包括国家代号或区号。传真文本字段大小:24电话号码包括国家代号或区号。主页超级链接供应商在 World Wide Web 上的主页。雇员:字段名数据类型字段属性主键说明雇员ID自动编号字段大小:长整型是自动赋予新雇员的编号。姓氏文本字段大小:20名字文本字段大小:10头衔文本字段大小:30雇员的头衔。尊称文本字段大小:25礼貌的称呼。出生日期日期/时间格式:yyyy-mm-dd雇用日期日期/时间格式:yyyy-mm-dd地址文本字段大小:60街道或邮政信箱。城市文本字段大小:15地区文本字段大小:15州或省。邮政编码文本字段大小:10国家文本字段大小:15家庭电话文本字段大小:24电话号码包括国家代号或区号。分机文本字段大小:4内部电话分机号码。照片OLE对象雇员照片。备注备注有关雇员背景的一般信息。上级数字字段大小:长整型雇员的上级。小数位数:自动客户:字段名数据类型字段属性主键说明客户ID文本字段大小:5是基于客户名称的5 字符唯一代码。公司名称文本字段大小:40联系人姓名文本字段大小:30联系人头衔文本字段大小:30地址文本字段大小:60街道或邮政信箱。城市文本字段大小:15地区文本字段大小:15州或县邮政编码文本字段大小:10国家文本字段大小:15电话文本字段大小:24电话号码包括国家代号或区号。传真文本字段大小:24电话号码包括国家代号或区号。类别:字段名数据类型字段属性主键说明类别ID自动编号字段大小:长整型是自动赋予新类别的编号。类别名称文本字段大小:15食品类别名称。说明备注图片OLE对象描绘食品类别的图片。运货商:字段名数据类型字段属性主键说明运货商ID自动编号字段大小:长整型是自动赋予新运货商的编号。公司名称文本字段大小:40运货公司名称。电话文本字段大小:24电话号码包括国家代号或区号。.(2) 表的建立:第八章中介绍了三种建立表的方法:利用向导创建表,通过输入数据创建表,使用设计视图创建表,下面我们利用设计视图建立“产品”表。1在数据库窗口,选定对象条中的表对象,然后点击窗口右边“使用设计器创建表”,窗口上会出现表的设计视图。表的设计窗口包括各个字段的字段名称,数据类型,说明等信息。参见图16.3和图16.4。图16.32.首先我们将产品(产品ID,产品名称,供应商,类别,单位数量,单价,库存量,订购量,再订购量,中止)中的各字段名称分别输入表设计视图中的字段名称列。 3.在数据类型列,单击下箭头选择各字段所对应的数据类型,其中包括文本,备注,数字,日期/时间,货币,自动编号,是/否,OLE对象,超级链接,阅读向导。 4. 当在数据类型中选择一种字段类型后,设计视图下面会出现所对应的字段属性设置框,在“常规”选项卡中设定字段的属性,其中“字段大小”设定该字段所占的字节数或数字的类型,“格式”设定该字段字符串的显示格式,“输入法模式”设定当焦点移到该字段时是否打开输入法,“输入掩码”设定该字段数据输人的模式,“默认值”表示当增加新记录时该字段所使用的预设值。这些字段属性都要根据具体字段而具体设定。5如果需要添加说明文字,可以在说明栏中添加。当以后在窗体中选择该字段时说明文字会显示在状态栏中。6在Access中,每个表都要指定关键字,在表中定义主关键字除了可以保证每条记录都被惟一识别外,更重要的作用在于多个表间的连接。如果用户没有制定一个惟一的主关键字,Access会自动建立一个。用户也可以自己制定一个主关键字,方法是:选定一个或多个字段后单击工具栏中的“主键”按钮,则相应字段左侧会出现主关镶字标志。这里定义“学号”字段为主关键字。7保存“产品”表通过上面步骤我们建立了“产品”表,我们要先保存表,然后在数据视图中输入记录,见图16.5,图16.6。图16.4图16.5图16.6(3) 表间关系的建立要定义关系,首先在“关系”窗口中添加要定义关系的表(见图16.7),然后从表中拖动键字段,并将它拖动到其他表中的键字段上(见图16.8),这时会出现编辑关系对话框(见图16.9)。我们以“雇员”表和“订单” 表为例,字段雇员ID将两表连接在一起形成一对多的关系,在编辑关系对话框中我们选择实施参照完整性这一项,并点击联系类型按键,在联系属性中选择第一项只包含来自两个表的连接字段相等处的行(见图16.10)。这样“雇员”和“订单”两表之间一对多的关系就建立起来了。整个数据库中六个一对多的关系都可以通过这种方式建立起来,最终形成完整的数据库关系(见图16.11)。图16. 7图16. 8图16. 9图16. 10图16. 1116.1.4应用程序设计数据库设计完成后,接下来要进行应用程序的设计。首先我们要从整体上把握,作出系统层次图并设计出用户界面。(1).系统层次图系统的总体结构可以用层次图来表示,第一层是系统层,对应主程序;第二层是子系统层,一般起分类控制作用;第三层是功能层。本数据库有两个子系统:查看产品和订单信息子系统和打印销售额报表子系统。查看产品和订单信息子系统又可以分为按类别查看,按供应商查看,按产品查看和按订单查看四种。打印销售报表子系统可以分为各国雇员销售额,按金额销售额分和各类销售额,如图16.12。(2).用户界面设计根据系统层次图我们可以设计出主切换面板。这样不但可以使设计者思路清晰,而且也可以令用户对数据库的功能一目了然。本数据库主切换面板如图16.13。为了使功能更完善,主切换面板上还添加了退出Access和显示数据窗口两个按键。 图16. 12图16. 13(3).建立查询所谓查询就是根据给定的条件从数据库的表中选出符合条件的记录,构成一个数据的集合。当建立了一个查询后,就可以把它看作是一个简化的数据表,它可以作为窗体或报表的数据来源,也可以以它为基础建立其他查询。在罗斯文商贸数据库中需要建立按不同条件进行的销售额查询,产品信息查询,订单信息和发货单信息。对于这四大类查询又有多种查询方法,比如选择查询,参数查询和交叉表查询。选择查询选择查询是最常见的查询类型,它从一个或多个表中检索数据,并且在可以更新记录(有一些限制条件)的数据表中显示结果。也可以使用选择查询来对记录进行分组,并且对记录作总计、计数、平均值以及其他类型的总和计算。下面我们以各类产品为例具体讲解如何建立和使用选择查询。1. 在“数据库”窗口中,单击“对象”下的“查询”,再单击“数据库”窗口工具栏上的“新建”。 2. 在“新建查询”对话框中,单击“设计视图”,然后单击“确定”。见图16.14 3. 在“显示表”对话框中,单击列出了所需的表或查询数据的选项卡。见图16.154. 双击要添加到查询的“产品”和“类别”表,然后单击“关闭”。 5. 在设计网格中将字段添加到“字段”行,指定条件与排序次序,添加到设计网格中的字段、排序次序和条件决定了可以在查询结果中看到的内容。见图16.16 6. 若要查看查询结果,请单击工具栏上的“视图”。 图16. 14 图16. 15 图16. 16交叉表查询使用交叉表查询计算和重构数据,可以简化数据分析。交叉表查询不仅能进行“总计”计算,还能重构数据和分析数据。这种查询以表或查询为数据源,分别按行和列对数据分组,并且既可按行进行“总计”,又可按行与列“总计”,结果产生一个数据表。“罗斯文”示例数据库中的“各种产品的季度订单”查询,就是一个交叉表查询的示例。本查询要实现的功能是将各类产品在1997年各季度的订购额进行统计,用到的表包括“产品”,“订单”和“订单细则”,需要的字段名包括产品名称,客户ID,订购年份,季度和订购额。其中,产品名称,客户ID可以分别从 “产品”表和 “订单”表直接调用,而订购年份,季度和订购额则不能从这几个表中直接找到,我们需要使用函数来完成。下面我们来具体讲解设计步骤:1. 在“数据库”窗口中,单击“对象”下的“查询”,再单击“数据库”窗口工具栏上的“新建”。 2. 在“新建查询”对话框中,单击“设计视图”,然后单击“确定”。3. 在“显示表”对话框中,单击列出了所需的表或查询数据的选项卡。4. 双击要添加到查询的“订单”,“订单细则”和“产品”表,然后单击“关闭”。 5. 将字段产品名称,客户ID添加到“字段”行,在“表”行指定各字段的来源,由于这两个字段均作为行标题,故在“交叉表”行指定为行标题。 6. 定义“季度”字段,调用datepart函数根据订购日期返回季度值,在字段行键入:季度:第 & DatePart(q,订购日期,1,0) & 季度 In (第1季度,第2季度,第3季度,第4季度)。 在“交叉表”行指定为列标题。注意,列标题只能有一个。7. 定义“订购年份”字段,调用Year函数根据订购日期返回订购年份值,在字段行键入:订购年份: Year(订购日期)。在“交叉表”行指定为行标题。 8. 定义“产品金额”字段,调用调用sum和ccur函数,在字段行键入:产品金额: Sum(CCur(订单明细.单价*数量*(1-折扣)/100)*100)。“总计”行选择表达式,“交叉表”行选择为值9. 由于本查询是在1997年基础上进行的季度统计,所以要指定查询条件,故将“订单”表中的“订购日期”字段键入字段行,在“总计”行中选择“条件”,并在“条件”行中写入查询条件,即Between #1997-1-1# And #1997-12-31#。见图16.1710. 若要查看查询结果,请单击工具栏上的“视图”。见图16.18注意:以上操作中,凡“总计”行单元格未进行行选择的均要保持默认的“分组”。 图16. 17图16. 18参数查询:参数查询是这样一种查询,它在执行时显示自己的对话框以提示用户输入信息,例如条件,检索要插入到字段中的记录或值。可以设计此类查询来提示更多的内容;例如,可以设计它来提示输入两个日期,然后 Access 检索在这两个日期之间的所有记录。我们以“各年销售额”查询为例。“各年销售额”查询根据用户输入的起始年月和终止年月查找相应的订单和金额情况,这里的起始年月和终止年月就是参数。现在我们利用所学的SQL语言来设计“各年销售额”。1.在“数据库”窗口中,单击“对象”下的“查询”,再单击“数据库”窗口工具栏上的“新建”。 2.在“新建查询”对话框中,单击“设计视图”,然后单击“确定”。3.由于SQL语句已在FROM子句中包含了要打开的表,所以不需要使用“显示表”对话来指定,故单击“关闭”按钮将对话框关闭。4.执行“视图”“SQL视图”命令,显示SQL视图窗口,键入SQL语句。见图16.19具体语句为:PARAMETERS Forms!各年销售额对话框!起始日期 DateTime, Forms!各年销售额对话框!终止日期 DateTime;SELECT 订单.发货日期, 订单.订单ID, 订单小计.小计, Format(发货日期,yyyy) AS 年份FROM 订单 INNER JOIN 订单小计 ON 订单.订单ID=订单小计.订单IDWHERE (订单.发货日期) Is Not Null And (订单.发货日期) Between Forms!各年销售额对话框!起始日期 And Forms!各年销售额对话框!终止日期);5.保存设计视图,并更名为“各年销售额”。见图16.206. 若要查看查询结果,请单击工具栏上的“视图”7.查看时,会跳出两个对话框,要求用户输入相应的值以便查询。见图16.2116.23图16. 19图16. 20图16. 21图16. 22图16. 23(4).窗体设计罗斯文商贸数据库窗体的目的,是希望通过窗体简单的使用数据库,达到快速,准确地查找所需数据的要求。为此我们设计一个主切换窗体,每次运行数据库时都会自动打开该窗体。它一共有七个选项:类别,供应商,产品,订单,打印销售额报表,显示数据库窗口和退出Access,见图16.24。用户根据自己的需要点击进入相应的选项,例如当单击主切换面板上的“类别”按钮时,打开窗体“类别”,见图16.25:图16. 24图16. 25首先我们介绍“类别”窗体的设计设计“类别”窗体的目的是根据产品类别查找具体产品,以及添加或修改记录,本窗体将涉及“类别”和“产品”两个表。“类别”表中的数据是一对多关系,见图16.26当显示具有一对多关系的表或查询中的数据时,子窗体特别有效。所以可以创建一个带有子窗体的主窗体,用于显示“类别”表和“产品”表中的数据。其中“类别”表中的数据是关系中的“一”方,“产品”表中的数据是关系中的“多”方,因为每一类别都可以有多个产品。分析清楚表间关系后,我们利用设计视图创建“类别”窗体。图16. 26设计步骤如下:(1) 在“数据库”窗口中,单击“窗体”选项卡,然后单击“新建”按钮,这时出现“新建窗体”对话框,如图 16.27,选择设计视图并在数据来源下拉框中选择“类别”表。注意:窗体的数据来源是指窗体中用来显示,输入或修改的数据是哪一个,没有指明的数据不会在窗体中使用。也就是说窗体是建立在表或查询的基础上的而创立的一个用户界面窗口。(2) 在设计视图中分别添加“类别名称”文本框,“说明”文本框和“图片”绑定对象框。在属性对话框中的记录源选项指明它们的数据来源,也就是分别将这些对象绑定到特定的字段。比如:“类别名称”邦定到“类别”表中的“类别名称”字段,“说明”绑定到“类别”表中的“说明”字段以及“图片”邦定到“类别”表中的“图片”字段。(3) 创建子窗体 在工具框中选择子窗体/子报表按钮将出现图16.28所示子窗体向导,我们从已有的“产品”表中选择子窗体中用到的字段,并建立主窗体和子窗体之间的连接。如图16.29和16.30(4) 调整设计视图达到设计者的要求。见图16.31。图16. 27图16. 28图16.29图16. 30图16. 31属性设置:对象属性属性值说明“类别”窗体记录源类别窗体的数据来源标题类别设置窗体标题栏标题滚动条两者均无导航按钮是显示记录导航栏分隔线是文本框:类别名称名称类别名称控件来源类别名称绑定到“类别名称”的字段背景色12632256灰色特殊效果凹陷状态栏文字食物类别名称是否锁定否可读写文本框:说明名称说明控件来源说明背景色12632256灰色特殊效果凹陷邦定对象框:图片名称图片控件来源图片缩放模式拉伸调整图片大小以符合区域大小,但图象可能扭曲变形状态栏文字表示食物类别的图背景色16777215窗体记录源产品指定子窗体的数据来源标题产品列表默认视图连续窗体规定窗体格式允许删除否只读允许添加否允许编辑否数据输入否滚动条只垂直记录选择器否导航按钮否子窗体/子报表名称产品列表源对象产品列表链接子字段类别ID保证主窗体和子窗体之间的正确链接链接主字段类别ID其它的属性与以上列出的类似,不再熬述。“产品”窗体的设计:“产品”窗体要完成三个功能:显示产品的具体信息,查看产品报表并打印输出。完成第一个功能要用到“产品”表,完成第二个功能要用到“按汉语拼音顺序的产品列表”报表。由于窗体功能比较复杂,不能在一个界面上完成所有功能,所以我们采用弹出式窗体,通过设定两个命令按钮来完成查看报表和打印输出的功能。如图16.32。设计过程如下:(1) 在“数据库”窗口中,单击“窗体”选项卡,然后单击“新建”按钮,这时出现“新建窗体”对话框,选择设计视图并在数据来源下拉框中选择“产品”表。(2) 在设计视图中添加窗体页眉页脚,并设页脚高度为零。(3) 在窗体页眉区添加“产品”标题标签(4) 在窗体页眉区添加“预览报表”命令按钮,在属性选项框中将“名称”改为“预览报表”,“标题”改为“预览产品列表”,并在“超链接子地址”中键入“Report 按汉语拼音顺序的产品列表”。(5) 在窗体页眉区添加“输出为HTML”命令按钮 单击该命令按钮将引起一个事件,我们要用VBA编程如图16.33。具体代码如下: Private Sub 输出为HTML_Click()On Error GoTo Err_OutputToHTML_Click 把 按字母顺序的产品列表 报表输出为 HTML 文档,并在 Internet 浏览器中打开此文档。在默认数据库的文件夹中必须有 Nwindtem.htm (Northwind的模板) 和 NWLogo.gif(Northwind 徽标)。 DoCmd.OutputTo acOutputReport, 按汉语拼音顺序的产品列表, acFormatHTML, Products.htm, True, Nwindtem.htm Exit_OutputToHTML_Click: Exit Sub Err_OutputToHTML_Click: 如果操作被用户取消,不显示错误消息。 Const conErrDoCmdCancelled = 2501 If (Err = conErrDoCmdCancelled) Then Resume Exit_OutputToHTML_Click Else MsgBox Err.Description Resume Exit_OutputToHTML_Click End If End Sub(6) 在主体区分别利用向导添加“供应商”和“类别”两个组合框,“产品ID”,“产品名称”,“单位数量”,“单价”,“库存数量”,“订购数量”,“再订购量”七个文本框,以及一个“中止”复选框。(7) 设计视图已经完成,可以切换到数据视图查看数据。图16. 32图16. 33“供应商”窗体的设计:“供应商”窗体以“供应商”表为基础,该窗体显示了供应商的信息和所供货物,可以及时地更新数据,包括增加产品种类,还可以预览产品列表并打印出来。由于功能复杂我们同样设置两个命令按钮,单机按钮将分别弹出“产品列表”窗体和“产品”窗体,这样就完成了所有功能。如图16.34。建立“供应商”窗体之前我们需要先建立“产品”见图16.36窗体和“产品列表”窗体见图16.35,“产品”窗体前面我们已将建立,所以只需要先建立“产品列表”窗体。“产品列表”窗体采用连续窗体的形式,与“类别”窗体中的子窗体相同,其属性设置可以参照,同样“供应商”窗体的设计过程与前面所述内容相似,故不再熬述。图16. 34图16. 35图16. 36 “订单”窗体的设计“订单”窗体(见图16.37)以“订单查询”为基础,该窗体的功能是详细显示订单内容,包括収单者信息,収货者信息,销售人,运货商,产品具体信息,显示本月产品和打印发票等。货订单窗体的设计汇集了前面所讲的所有内容,在该窗体中包含了子窗体,弹出式窗体,超链接,编写VBA代码,其中子窗体以“扩展订单细则”表为基础。同时在设计视图中还应用了组合框,选项组,计算字段,下面仅列出VBA代码,其它控件的设计请读者自行完成Sub 打印发货单_Click() 这段代码由“命令按钮向导”创建。On Error GoTo Err_PrintInvoice_Click Dim strDocName As String strDocName = 发货单 打印“发货单”报表,使用“发货单筛选”查询打印当前订单的发货单。 DoCmd.OpenReport strDocName, acViewNormal, 发货单筛选Exit_PrintInvoice_Click: Exit SubErr_PrintInvoice_Click: 如果用户取消操作,不显示错误消息。 Const conErrDoCmdCancelled = 2501 If (Err = conErrDoCmdCancelled) Then Resume Exit_PrintInvoice_Click Else MsgBox Err.Description Resume Exit_PrintInvoice_Click End IfEnd Sub图16. 37主切换面板窗体设计主切换面板上所涉及的“打印销售额报表”,“显示数据库窗口”,“退出Access”三个窗体与上述窗体的设计大同小异,本文不再介绍,下面介绍主切换面板的设计,见图16.38。主切换面板界面简洁,包括一个“徽标”图像,一个标题栏,七个命令按钮。对于“类别”,“产品”,“供货商”,“订单”,“打开销售额报表”

温馨提示

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

评论

0/150

提交评论