零售商店数据库应用系统GrocerMIS实例分析

上传人:仙*** 文档编号:199672235 上传时间:2023-04-11 格式:PPT 页数:135 大小:877KB
收藏 版权申诉 举报 下载
零售商店数据库应用系统GrocerMIS实例分析_第1页
第1页 / 共135页
零售商店数据库应用系统GrocerMIS实例分析_第2页
第2页 / 共135页
零售商店数据库应用系统GrocerMIS实例分析_第3页
第3页 / 共135页
资源描述:

《零售商店数据库应用系统GrocerMIS实例分析》由会员分享,可在线阅读,更多相关《零售商店数据库应用系统GrocerMIS实例分析(135页珍藏版)》请在装配图网上搜索。

1、本章学习目标本章学习目标 理解理解Access 2003查询对象的作用及其查询对象的作用及其实质实质 了解了解SQL语言的基本知识语言的基本知识 掌握掌握Access 2003查询对象的创建与设查询对象的创建与设计方法计方法 学习学习Access 2003查询对象的应用技术查询对象的应用技术 完成完成“零售商店管理信息系统零售商店管理信息系统”中的中的查询对象设计查询对象设计查询对象不是数据的集合,而是查询对象不是数据的集合,而是操作操作的集合。的集合。查询的运行结果是一个动态数据集合。查询的运行结果是一个动态数据集合。数据表是数据源之所在,而查询是针对数据源的数据表是数据源之所在,而查询是针

2、对数据源的操作命令,相当于程序。操作命令,相当于程序。利用查询对象可以通过不同的方法来利用查询对象可以通过不同的方法来查看、更查看、更改以及分析数据改以及分析数据。也可以将查询对象作为窗体。也可以将查询对象作为窗体和报表的和报表的记录源记录源。在在Access 2003中,查询的实现可以通过两种方中,查询的实现可以通过两种方式进行,一种是在式进行,一种是在数据库中建立查询对象数据库中建立查询对象,另,另一种是在一种是在VBA程序代码或模块中使用结构化查程序代码或模块中使用结构化查询语言询语言(SQLStructured Query Language)。)。4.1 查询对象设计基础查询对象设计基

3、础应用Access 2003的查询对象是实现关系数据库查询操作的主要方法,借助于Access 2003为查询对象提供的可视化工具,不仅可以很方便地进行Access 2003查询对象的创建、修改和运行,而且可以使用这个工具生成合适的SQL语句,直接将其粘贴到需要该语句的程序代码或模块中。这将非常有效地减轻编程工作量,也可以完全避免在程序中编写SQL语句时很容易产生的各种错误。一个Access查询对象实质上是一条SQL语句,而Access提供的查询设计视图实质上是为我们提供了一个编写相应SQL语句的可视化工具。在Access提供的查询设计视图上,通过直观的操作,可以迅速地建立所需要的Access查

4、询对象,也就是编写一条SQL语句,从而增加了设计的便利性、减少了编写SQL语句过程中可能出现的错误。由查询生成的动态数据集合可以用于六种不同的目的,根据其应用目标的不同,可以将Access 2003的查询对象分为六种不同的基本类型。1选择查询选择查询是从多个数据表中筛选数据形成的查询对象,其中可以包含计算字段、分类汇总字段,可以设定各种筛选条件。选择查询用于显示数据,形成数据编辑界面。2更新查询更新查询用于在数据表中更改数据。3追加查询追加查询用于将数据表外部的数据添加到指定数据表的记录中。4生成表查询生成表查询用于将选择查询的结果生成为一个数据表对象。5删除查询删除查询用于在数据表中删除记录

5、。6交叉表查询交叉表查询用于产生采用垂直方式对记录进行分组汇总的查询结果。4.1 查询对象设计基础4.1.1 创建查询对象4.1.2 查询对象的实质4.1.3 结构化查询语言简介4.1.4 运行查询对象4.1.1 创建查询对象在在Access 2003数据库中设计查询对象是需数据库中设计查询对象是需要在查询设计视图中进行。在要在查询设计视图中进行。在Access 2003查询设计视图中,可以在查询设计视图中,可以在Access 2003数据数据库中新建一个查询对象,也可以针对库中新建一个查询对象,也可以针对Access 2003数据库中已经存在的一个查询数据库中已经存在的一个查询对象进行设计修

6、改。对象进行设计修改。在数据库设计视图中,单击“查询”标签按钮即进入“查询对象”选项卡,如图4-1所示。1 1新建查询对象的操作新建查询对象的操作 单击数据库设计视图上的“新建”按钮“”,即弹出“新建查询”对话框,如图4-2所示。图4-2 “新建查询”对话框 在“新建查询”对话框中,可以从Access提供的五种查询对象新建方法中选择一种。但是,只有学会并理解了“查询设计视图”的操作使用,才可能很好地使用其他方法来加快新建查询对象的操作。在新建查询对话框中选择“设计视图”选项,然后单击“确定”按钮“”,即进入“查询设计视图”。由于是新建查询,所以在查询设计视图中没有任何内容。在查询设计视图中新建

7、查询对象的第一步操作是指定数据源,因此,一旦由“新建查询”对话框进入查询设计视图,Access首先在查询设计视图中弹出“显示表”对话框,用以提示操作者指定数据源。这时,操作者需要在“显示表”对话框中逐个地指定数据源,并单击“添加”按钮“”,将指定的数据源逐个添加入查询设计视图上半部的数据源显示区域内。图4-3所示为在“零售商店管理信息系统”数据库中新建“销售数据记录查询”的第一步操作,为查询指定数据源。图4-3 “显示表”对话框的操作 Access查询对象的数据源可以是若干个表,也可以是已经存在的某些查询,还可以是若干个表与某些查询的组合。与此对应,“显示表”对话框中包含三个选项卡:“表”、“

8、查询”、“表和查询”。应该根据实际需要进行适当的选择。例如,为“销售数据记录查询”指定的数据源是“销售数据记录”表。选择并添加完毕查询数据源后,单击“显示表”对话框上的“关闭”按钮“”,就完成了为查询对象指定数据源的操作。新建查询对象的第二步操作是定义查询字段,也就是从选定的数据源中选择需要在查询中显示的数据字段。既可以选择数据源中的全部字段,也可以仅选择数据源中的部分字段,且各个查询字段的排列顺序可以与数据源中的字段排列顺序相同,也可以与数据源中的字段排列顺序不同。这一步操作可以通过两种方法完成。定义查询字段的两种方法新建查询对象的第二步操作是定义查询字段,也就是从选定的数据源中选择需要在查

9、询中显示的数据字段。既可以选择数据源中的全部字段,也可以仅选择数据源中的部分字段,且各个查询字段的排列顺序可以与数据源中的字段排列顺序相同,也可以与数据源中的字段排列顺序不同。这一步操作可以通过两种方法完成。将数据源表中的“”符号拖曳至设计视图下部的“字段”行中;或下拉“字段”行的列表框,从中选取“”符号。这时,“字段”行中即出现“”符号,“表”行中出现该字段所在的表名,“显示”行中的复选框中出现“”符号。这个新建的查询对象就基本完成了,如图4-4所示。如此方式建立的查选对象在其运行时,将显示数据源表中所有字段中的所有记录数据。即,符号“”代表着全部字段。(1 1)新建包含数据源全部数据字段的

10、查询)新建包含数据源全部数据字段的查询 图4-4、新建包含数据源全部数据字段查询的操作(2 2)新建包含数据源部分数据字段的)新建包含数据源部分数据字段的查询查询 将数据源表中那些需要显示在查询中的数据字段逐个地拖曳至“字段”行的各列中;或逐个地下拉“字段”行列表框,从中选取需要显示的数据字段。这时,“字段”行中出现选中的字段名,“表”行中出现该字段所在表的表名,“显示”行中的复选框中出现“”(它表明该查询字段将被显示,同时应该看到,取消这个标记则意味着得到了一个不被显示的查询字段)。如此选择查询字段,可以将查询字段的排列顺序设置为不同于数据源中字段的排列顺序,是非常灵活的一种方式。图4-5所

11、示为仅选中“销售数据记录”表中四个字段的查询对象新建的情况。这样的查询对象在其运行时,将显示数据源表中选中字段中的所有记录数据,也就是说:不进行筛选这样一种关系运算。在整个新建查询对象的操作过程中,这个查询对象都将命名为“查询?”。当新建操作完成时,需要关闭查询设计视图,此时将出现“保存”对话框。应该在“保存”对话框中为新建查询对象命名为所需要的名字。图4-5、新建包含数据源部分数据字段查询的操作 对于一个已经新建完成的查询对象,通常都需要对其进行一些设计修改。例如,希望图4-5所示的查询对象在其运行时,能够按照销售数量由大到小地排列显示;希望仅显示满足某种条件的记录数据(即进行筛选操作)等等

12、。针对诸如此类的种种需求,就需要对以上初步建立的查询对象进行设计修改。2查询设计视图应用 建立查询的操作,实质上是生成SQL语句的过程。也就是说,Access提供了一个自动生成SQL语句的可视化工具查询设计视图。那么,通过在查询设计视图中的一系列操作后,所生成的SQL语句到底是什么样的?为了看到一个查询所对应的SQL语句,可以将查询设计视图转换到SQL视图中来观察。单击查询设计视图中菜单栏上的【视图】|【SQL视图】,即进入SQL视图中。由图4-5查询设计视图转换到SQL视图中后,所看到的SQL语句如下:4.1.2 查询对象的实质SELECT 销售数据记录.货号,销售数据记录.货名,销售数据记

13、录.销售单价,销售数据记录.销售数量 FROM 销售数据记录WHERE(销售数据记录.销售单价)=5)ORDER BY 销售数据记录.销售数量 DESC;可以看出:查询对象的实质是一条SQL语句。打开查询的操作也就是运行相应SQL语句的过程,其结果是生成一个动态数据集合。这个动态数据集合,无论在形式上还是在所能接受的操作上,都如同一个数据表对象。这就是说,在数据表视图中所能进行的所有操作均能在查询视图中实施。如果查询视图数据来源于若干个数据表,则可以在查询视图中同时操作这若干个表中的数据,在一定的限定条件下,也可以同时对这些数据表进行追加记录、删除记录和更改数据的操作。SQL一词,是Struc

14、ture Query Language的缩写,即“结构化查询语言”的英文缩写。当今的所有关系型数据库管理系统都是以SQL作为核心的。SQL概念的建立起始于1974年,随着SQL的发展,ISO、ANSI等国际权威标准化组织都为其制订了标准,从而建立了SQL在数据库领域里的核心地位。4.1.3 4.1.3 结构化查询语言简介结构化查询语言简介 SQLSQL的四个特点的四个特点(1)在方法上的突破)在方法上的突破:SQL不再局限于数据表中的记录与字段,而是通过设定表与表间的联接来组合地处理数据。(2)容易学习与维护)容易学习与维护:SQL语句自然语言,简洁直观,语句的功能非常强大,一条语句时常可以取

15、代常规程序设计语言的一大段程序,因而容易维护。(3)语言共享)语言共享:任意一种数据库管理系统都拥有自己的程序设计语言,其各种语言的语法规定及其词汇相差甚远。但是SQL在任何一种数据库管理系统中都是相似的,甚至是相同的。(4)全面支持客户)全面支持客户/服务器结构服务器结构:实现异种数据库间的数据共享,即在客户端使用的数据访问语言必须与服务器端所能识别数据查询语言相同。SQL就是当今唯一的一个已经形成标准的数据库共享语言。SQLSQL语句按其功能的不同可以分为语句按其功能的不同可以分为以下六大类以下六大类 数据定义语句(DDL,Data-Definition Language)数据操作语句(D

16、ML,Data-Manipulation Language)操作管理语句(TMLT,transaction-Management Language)数据控制语句(DCL,Data-Control Language)数据查询语句(DQL,Data-Query Language)游标控制语句(CCL,Cursor-Control Language)SELECT语句的一般语法格式为:SELECT predicate *|table.*|table.field1 AS alias1,table.field2 AS alias2,.FROM tableexpression,.IN externaldat

17、abaseWHERE.GROUP BY.HAVING.ORDER BY.WITH OWNERACCESS OPTION 1 1、SELECTSELECT语法语法 在SELECT语法格式中,大写字母为SQL保留字,方括号所括部分为可有可无的内容,小写字母为语句参量。各项语句参量应该根据实际应用的需要取值,表4-1所列为SELECT语句中各个参量说明。2 2SELECTSELECT语法简要说明语法简要说明 表4-1 SELECT语句参量说明 参量取值及其含义说明Predicate下列谓词之一:ALL、DISTINCT、DISTINCTROW、TOP可用谓词来限制返回的记录数量。默认值为 ALL*全

18、部字段从特定的表中指定全部字段Table表的名称Field1字段的名称包含所要获取的数据Alias1字串常量用来作列标头Tableexpression表的名称这些表包含要获取的数据Externaldatabase数据库的名称该数据库包含 tableexpression 中的表WHERE条件表达式只筛选满足条件的记录GROUP BY.字段名列表根据所列字段名分组ORDER BY字段名列表根据所列字段名排序 关闭查询设计视图,在随之出现的“保存”对话框中指定查询对象名称,然后确定之。对于一个设计完成的查询对象,可以在数据库视图中的查询对象选项卡上看到它的图标,用鼠标在一个查询对象图标上双击,即可运

19、行这个查询对象。一个运行着的查询一般以查询视图的形式显示。在数据库视图中,单击查询对象选项卡,选择需要打开的查询对象,单击数据库视图上的“打开”按钮“”,或双击需要打开的查询对象图标,即进入查询视图。4.1.4 运行查询对象 图4-7所示即为上述“销售数据记录查询举例”对象打开后的视图。可以看到,查询视图与数据表视图是形式完全相同的视图,不同的是查询视图中显示的是一个动态数据集。对于本例,仅是“销售数据记录”表中的销售单价不低于5元的那一部分商品数据按照其销售数量的大小降序排列而成。图图4-6 “销售数据查询销售数据查询1”对象的查询视图对象的查询视图4.2 基本选择查询设计选择查询是最常见的

20、查询类型,它从一个或多个的表中检索数据,并且允许在可以更新记录(带有一些限制条件)的数据表中进行各种操作数据。也可以使用选择查询来对记录进行分组,并且对记录作总计、计数、平均以及其他类型总和的计算。选择查询的优点在于能将多个表或查询中的数据集合在一起,或对多个表或查询中的数据执行操作。4.2 基本选择查询设计4.2.1 选择查询设计视图4.2.2 基表联接的意义4.2.3 排序行和显示行的作用4.2.4 条件行的作用及其设计方法4.2.5 “零售商店管理信息系统”中的选择查询设计 选择查询的设计视图如图4-4所示,被分为上下两个部分。上部为数据源显示区;下部为参数设置区,由五个参数行组成,分别

21、是字段行、表行、排序行、显示行和准则行。查询对象基于数据源而生成,且数据源往往不仅仅只有一个,这些数据源既可以是数据表对象,也可以是查询对象。设计具有多个数据源的查询对象,需在“显示表”对话框(如图4-3所示)中逐一将各个数据源添加至查询设计视图的数据源列表区内。若在关闭“显示表”对话框后,还需添加数据源,可在数据源列表区内右击鼠标,在随之弹出的快捷菜单上单击【显示表】,或在查询设计视图菜单栏上单击【视图】|【显示表】,均可再现“显示表”对话框,参见图4-3。4.2.1 4.2.1 选择查询设计视图选择查询设计视图 在查询设计视图中,选择确定多个数据源(表或查询)后,必须保证各个数据源数据间存

22、在必要的联接关系。表与表间的联结如果已在数据库视图中通过建立表间关系形成,则这些关系将被继承在查询设计视图中。如果上述关系不存在,则必须在查询设计视图中指定,如此指定的关系仅在本查询中有效。在查询设计视图中指定表间关系的操作为,从作为数据源的表或查询字段列表中将一个字段拖到另一个作为数据源的表或查询字段列表中的相等字段(即具有相同或兼容的数据类型且包含相似数据的字段)上,即完成了两个数据源之间的联接。所谓将一个字段拖到另一个字段上,是指用鼠标指向一个字段,然后按住鼠标左键拖曳至另一个字段上,然后放开鼠标左键。使用这种方式进行联接,只有当联接字段的值相等时,Access才会从两个表或查询中选取记

23、录。图4-8所示为销售数据记录查询中含有“进货单价”以及销售利润数据的设计参数。图4-7 查询数据源设定与字段显示格式设定 在图4-8中可以看到,由于这个查询的数据分别取自“库存数据记录”表和“销售数据记录”表,因此必须指定这两个数据源,这两个数据源称为本查询的基表。基表之间必须建立联接,且其联接字段必须具有相同类型。如果已经在数据库设计视图指定了两个基表的联接,则在查询设计视图中会得到继承。如果未在数据库设计视图指定两个基表的联接,则在查询设计视图中指定的联接仅在本查询中有效。4.2.2 4.2.2 基表联接的意义基表联接的意义 Access支持的联接类型有三种:只包含来自两个表的联接字段相

24、等处的行;包括所有“主表”的记录和那些联接字段相等的“从表”的记录;包括所有“从表”的记录和那些联接字段相等的“主表”的记录。关于表对象联接概念中的“主表”和“从表”的含义,请参阅第三章中的相关内容。在上述三种联接类型中,第一种联接类型是默认类型。上述实例采用第一种联接类型,即只显示在“库存数据记录”和“销售数据记录”中均存在的记录,如图4-9所示。图4-8 “销售数据明细查询”的查询视图4.2.3 排序行和显示行的作用1排序的作用与设计方法 2显示行的作用与设计方法 如同在第三章中所述,排序可以令某一列数据有顺序的排列,便于查看。在设计查询对象时,若需要哪一列数据有顺序的排列,可单击位于该列

25、排序行上的下拉式列表框,从中选择所需的排序种类,如图4-6所示。1 1排序的作用与设计方法排序的作用与设计方法 在查询设计视图中,显示行内是一个复选框。如果希望某一字段的数据在查询运行时得到显示,则在该复选框中单击,使其显示有“”符号,这也是Access的默认参数;如果希望某一字段的数据在查询运行时不显示,但又需要它参与运算,则在该复选框中单击,使其中的“”符号消失。对于既不需要显示,也不需要参与运算的字段,根本就不要将其选入查询中。2 2显示行的作用与设计方法显示行的作用与设计方法 设定准则恐怕是设计查询对象时最为困难的操作。如果需要给定某种条件来筛选数据记录,就必须要设定准则了。即,准则是

26、为筛选数据记录设定的条件,条件必须是一个合法的VBA关系或逻辑表达式。VBA语句及其表达式等内容留待第五、九章介绍,本小节介绍利用向导设定准则的操作方法。4.2.4 条件行的作用及其设计方法 在查询设计视图中,令光标停留在需要设定准则的字段中的准则行内,单击查询设计视图工具栏上的“向导”工具按钮“”,即弹出“表达式生成器”对话框,如图4-10所示。准则的设定可以在这个对话框中操作完成。例如,如果希望查看其销售利润位于1元至5元之间的那些商品的销售数据,就应该在“销售利润”列的准则行内输入“Between 1 And 5”这样的VBA表达式。这样的表达式可以在准则行中直接输入,但不如在“表达式生

27、成器”对话框中操作生成,请参阅图4-10中的图示。图图4-9 应用应用“表达式生成器表达式生成器”设定查询准则设定查询准则 在“表达式生成器”对话框中,双击对话框左下方列表框中的“操作符”,在随之出现的中下方列表框中选择“比较”,在对话框右下方的列表框中双击“Between”选项,对话框上端的文本框中即出现“Between 表达式1 And 表达式2”字样。这表明,本表达式使用“Between”操作符。“Between”是一个双元操作符,需要为其确定两个操作数。单击“表达式1”后,在此处输入1,即输入了第一个操作数;再单击“表达式2”,在此处输入5,即输入了第二个操作数。此时可以看到输入的表达

28、式为“Between 1 And 5”。表达式输入完毕后,单击对话框上的“确定”按钮“”,对话框消失。查询设计视图中对应准则行上的表达式就生成了。接着,可以打开这个查询对象,与前述查询对象打开时的显示数据进行比较,观察该准则的作用。也可以在查询设计视图中切换至SQL视图,仔细观察对应的SQL语句。数据库应用系统的实际应用总是根据需求进行的,设计查询对象应该包括哪些字段、以哪种顺序排列以及筛选条件如何确定,等等,都应该根据需求分析来决定。尤其是在筛选条件准则中,常常不能使用常量,而需使用变量,且这些变量的赋值又往往是用户在窗体上操作时输入的。因此,查询准则中的条件表达式常常包含着变量。4.2.5

29、 “零售商店管理信息系统”中的选择查询设计图图4-10 “库存数据记录查询库存数据记录查询”的属性设置的属性设置图4-10所示查询对象所对应的SQL语句为:SELECT 销售数据记录.货号,销售数据记录.货名,销售数据记录.规格,销售数据记录.计量单位,销售数据记录.销售单价,销售数据记录.销售数量,销售数据记录!销售单价*销售数据记录!销售数量 AS 销售金额,FROM 销售数据记录WHERE(销售数据记录.销售日期)=Forms!销售数据录入!Text29)AND(销售数据记录.销售人员)=Forms!销售数据录入!Combo45);图4-11 “柜存数据记录查询”的属性设置“柜存数据记录

30、查询”对象所对应的SQL语句为:SELECT 柜存数据记录.货号,柜存数据记录.货名,柜存数据记录.规格,柜存数据记录.计量单位,柜存数据记录.销售单价,柜存数据记录.柜存数量,柜存数据记录!销售单价*柜存数据记录!柜存数量 AS 柜存金额,柜存数据记录.上柜日期,柜存数据记录.上柜人,柜存数据记录.营业员FROM 柜存数据记录;图4-12 “销售数据记录查询”的属性设置“销售数据记录查询”对象所对应的SQL语句为:SELECT 销售数据记录.货号,销售数据记录.货名,销售数据记录.规格,销售数据记录.计量单位,销售数据记录.销售单价,销售数据记录.销售数量,销售数据记录!销售单价*销售数据记

31、录!销售数量 AS 销售金额,销售数据记录.销售日期,销售数据记录.销售人员FROM 销售数据记录WHERE(销售数据记录.销售日期)=Forms!销售数据录入!Text29)AND(销售数据记录.销售人员)=Forms!销售数据录入!Combo45);4.3 实用选择查询设计选择查询是Access支持的多种类型查询对象中最重要的一种,它不仅仅可以完成数据的筛选、排序等操作,更常见的用途还在于它的计算功能、汇总统计功能以及接受外部参数的功能。同时,选择查询还是其他类型查询创建的基础。在后续各节中我们会看到,为了创建其他类型的查询,常常会先建立一个选择查询,然后再逐步进行设计修改,以达到实现相关

32、类型查询的设计结果。4.3 实用选择查询设计4.3.14.3.1、计算查询列设计、计算查询列设计4.3.24.3.2、汇总查询设计、汇总查询设计4.3.34.3.3、参数查询对象设计、参数查询对象设计“零售商店管理信息系统零售商店管理信息系统”中的中的汇总查询设计汇总查询设计 通过查询操作完成基表内部或各基表之间数据的计算,是建立查询对象的一个常用的功能。完成计算操作是通过在查询对象中设计计算查询列实现的,当查询运行时,计算查询列就如同一个字段一样。计算查询列本质上是一个计算表达式,设置计算查询列的操作可以借助于向导在“表达式生成器”对话框中完成。令光标停留在需要设置计算查询列的“字段”行上,

33、单击查询设计视图工具栏上的“向导”工具按钮“”,即弹出“表达式生成器”对话框,如图4-10所示。与设定查询准则的逻辑表达式不同,计算查询列上是一个计算表达式。4.3.1 计算查询列设计 图4-8中所示的“销售利润”列就是一个计算查询列,在这一列的“字段”行中填入的内容为:销售利润销售利润:销售单价销售单价*销售数量销售数量-进货单价进货单价*销售数量销售数量 这个计算表达式分为用冒号隔开的两个部分。冒号右边是一个VBA算术表达式,它的含义是用本查询中的“销售单价”与“销售数量”两个字段的数据之积,减去本查询中的“进货单价”与“销售数量”两个字段的数据之积。字段名均用方括号括起来,这属于VBA的

34、语法规则,必须遵循。由于所用字段都是本查询中的字段,因此不用指明其父类,否则,需写成:表名!字段名。所用到的算术运算符与其他程序设计语言使用的算术运算符相同。冒号左边将等同于字段名,本例中设定为“销售利润”。如果使用向导,在“表达式生成器”对话框中完成计算表达式的设计,Access将用“表达式1”作为第一个计算查询列的字段名,并依次为后续的计算查询列命名字段。一般情况下,人们都不会满意将字段名命名为“表达式1”这样的形式。这就需要自己来重新给字段命名。为此,可以在“表达式生成器”对话框中完成计算表达式的设计后,单击确定按钮退回查询设计视图后,再将“表达式生成器”自行确定的“表达式1”修改为“销

35、售利润”。其操作方法是,鼠标单击字段行中的“表达式1”,再删除该字段行中位于计算表达式冒号左侧的字符,并输入所希望的字符串。还可以设计计算查询列中数据的显示格式。其操作方法是,在需要重新设置显示格式的计算查询列“字段”行处右击鼠标,在随之弹出的快捷菜单上单击【属性】;或令光标停留在需要设置显示格式的计算查询列“字段”行上,在查询设计视图的菜单栏上单击【视图】|【属性】(或单击查询设计视图工具栏上“属性”工具按钮“”)。即弹出“字段属性”对话框,如图4-12所示。在“字段属性”对话框中,即可为所选字段设置包括显示格式在内的各项字段属性。图4-12所示,是将“销售数据记录查询”的“销售利润”计算查

36、询列的显示格式设置为货币格式的参数设置操作示例。设计汇总查询也是在查询设计视图中进行。在查询设计视图打开一个已经建立的选择查询对象,在工具栏上单击“汇总”按钮“”。这时,在查询设计视图下部的参数设置区中将增加一个名为“总计”的行,其间参数均为“Group By”。“总计”行中的参数标明各字段是属于分类字段(Group By)还是汇总字段(Expression),一个汇总查询至少应有一个分类字段和一个汇总字段。4.3.2 汇总查询设计 以“销售业绩查询”为例,如果希望得到以“货名”、“规格”、“进货单价”和“销售单价”三个字段作为分类字段的“销售数量”和“销售利润”两个字段的汇总数据,则应将“货

37、名”、“规格”、“进货单价”和“销售单价”四个字段均设置为分类字段,而将“销售数量”和“销售利润”两个字段都设置为汇总数据。图4-13所示即为相关设计参数。三个分类字段可以采用讲述的设定字段名的方法设定,且“总计”行参数不用修改。两个汇总字段可采用节讲述的设定计算字段的方法设定,且“总计”行参数会自动根据所设立的计算表达式而改为“Sum”或“Expression”。图图4-13 “销售利润明细查询销售利润明细查询”的总计属性设计的总计属性设计图4-13所示查询对象所对应的SQL语句为:SELECT 库存数据记录.货名,库存数据记录.规格,库存数据记录.进货单价,销售数据记录.销售单价,Sum(

38、销售数据记录!销售数量)AS 销售数量,销售单价*销售数量-进货单价*销售数量 AS 销售利润FROM 库存数据记录 INNER JOIN 销售数据记录 ON GROUP BY 库存数据记录.货名,库存数据记录.规格,库存数据记录.进货单价,销售数据记录.销售单价;此处所指的参数特指查询准则中使用的变量,参数查询对象则是指本查询对象所使用的参数需由数据库中其他对象赋值方能运行的查询。以节提到的需求为例。一般会希望针对某一个时间段内的销售数据进行汇总统计,而这个时间段又应该由数据库应用系统的使用者在他的操作中输入。假定输入这个时间段的操作是在一个称为“销售业绩查询汇总”的窗体中进行,则相应的“销

39、售业绩查询”参数设置如图4-14所示。其中准则表达式为:Between Forms!销售业绩查询汇总!Text29 And Forms!销售业绩查询汇总!Text67)4.3.3 参数查询设计 其含义是:销售日期起于“销售业绩查询汇总”窗体中“Text29”文本框中输入的起始日期,而终于“销售业绩查询汇总”窗体中“Text67”文本框中输入的终止日期。它导致的运行结果就是筛选出在这个日期段内的销售数据记录。图图4-14 “销售利润明细查询销售利润明细查询”的条件属性设的条件属性设计计图4-14所示查询对象所对应的SQL语句为:SELECT 销售数据记录.销售日期,库存数据记录.货号,库存数据记

40、录.货名,库存数据记录.规格,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,销售数据记录.销售单价,Sum(销售数据记录.销售数量)AS 销售数量,Sum(销售数据记录!销售单价*销售数据记录!销售数量)AS 销售金额,销售单价*销售数量-进货单价*销售数量 AS FROM 库存数据记录 INNER JOIN 销售数据记录 ON GROUP BY 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货名,库存数据记录.规格,库存数据记录.计量单位,库存数据记录.进货单价,HAVING(销售数据记录.销售日期)Between Forms!销售业绩查询汇总!Text

41、29 And Forms!销售业绩查询汇总!Text67)ORDER BY 销售数据记录.销售日期;1“销售结转清查询”设计“零售商店管理信息系统”数据库中的“销售结转清查询”对象设计如图4-15所示。4.3.44.3.4、“零售商店管理信息系统”中的汇总查询设计图图4-15 “销售结转清查询销售结转清查询”的各项属性设计的各项属性设计图4-15所示查询对象所对应的SQL语句为:SELECT 柜存数据记录.货号,柜存数据记录.货名,柜存数据记录.规格,柜存数据记录.计量单位,柜存数据记录.柜存数量,柜存数据记录.销售单价,Sum(销售数据记录.销售数量)AS 销售数量,Sum(销售数据记录!销

42、售单价*销售数据记录!销售数量)AS FROM 柜存数据记录 INNER JOIN 销售数据记录 ON GROUP BY 柜存数据记录.货号,柜存数据记录.货名,柜存数据记录.规格,柜存数据记录.计量单位,柜存数据记录.柜存数量,柜存数据记录.销售单价,HAVING(销售数据记录.销售日期)=Forms!交接班结转清!Text29)AND(销售数据记录.销售人员)=Forms!交接班结转清!Combo45)ORDER BY 柜存数据记录.货号;2“销售业绩查询”设计“零售商店管理信息系统”数据库中的“销售业绩查询”对象设计如图4-16所示。图4-16 “销售业绩查询”的各项属性设计图4-16所

43、示“销售业绩查询”对象所对应的SQL语句为:SELECT 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货名,库存数据记录.规格,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,销售数据记录.销售单价,Sum(销售数据记录.销售数量)AS 销售数量,Sum(销售数据记录!销售单价*销售数据记录!销售数量)AS 销售金额,销售单价*销售数量-进货单价*销售数量 AS 销售利润,销售数据记录.销售人员FROM 库存数据记录 INNER JOIN 销售数据记录 ON 库存数据记录.货号=销售数据记录.货号GROUP BY 销售数据记录.销售日期,库存数据记录.货号

44、,库存数据记录.货名,库存数据记录.规格,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,销售数据记录.销售单价,销售数据记录.销售人员HAVING(销售数据记录.销售日期)Between Forms!销售业绩查询汇总!Text29 And Forms!销售业绩查询汇总!Text67)ORDER BY 销售数据记录.销售日期;4.4 更新查询设计4.4.、更新查询的作用、更新查询的作用 4.4.、更新查询的设计、更新查询的设计 4.4.、更新查询的实质、更新查询的实质 如果需要对数据表中的某些数据进行有规律地成批更新替换操作,就可以使用更新查询来实现。如果读者曾经学习过

45、xBase一类的数据库系统工具,可以理解为:Access 2003中的更新查询相当于xBase中的Replace语句的功能。例如,现需要在CMMIS数据库中将所有商品的销售单价高于6元的那些商品的销售单价下调10%,如果在数据表视图中采用手工操作,将是一件不可思议的事情。设计一个更新查询就可以很方便地完成这样的操作。4.4.、更新查询的作用、更新查询的作用 首先,创建一个选择查询,指定其数据源为需要更新其中数据的表对象。接着,将其中需要更新数据的字段逐一拖曳至查询设计视图的“字段”行中。然后,单击菜单栏上的【查询】|【更新查询】,可以看到在查询设计视图中新增一个“更新到”行。此时,需要在该行中

46、填入数据更新的规则,例如“销售单价”。如果只是需要更新某些满足一定条件的记录中的数据,则应该在查询设计视图的“Where”行中填写记录更新条件,例如“销售单价6元”。最后,保存这个查询对象,即完成了一个更新查询对象的设计操作。只需运行该查询对象,数据源表中的相关数据就按照数据更新规则得到了更新。4.4.、更新查询的设计、更新查询的设计 首先,创建一个选择查询,指定其数据源为需要更新其中数据的表对象。接着,将其中需要更新数据的字段逐一拖曳至查询设计视图的“字段”行中。然后,单击菜单栏上的【查询】|【更新查询】,可以看到在查询设计视图中新增一个“更新到”行。此时,需要在该行中填入数据更新的规则,例

47、如“销售单价”。如果只是需要更新某些满足一定条件的记录中的数据,则应该在查询设计视图的“Where”行中填写记录更新条件,例如“销售单价6元”。最后,保存这个查询对象,即完成了一个更新查询对象的设计操作。只需运行该查询对象,数据源表中的相关数据就按照数据更新规则得到了更新。新建一个选择查询,指定数据源为“柜存数据记录”表,将“柜存数据记录”表中字段“销售单价”拖曳至“字段”行中,单击菜单栏上的【查询】|【更新查询】。在“更新到”行中输入计算更新规则“柜存数据记录!销售单价”,在“准则”行中输入计算更新条件“6”(当然也可以应用向导完成这两行的规则输入操作)。图4-28所示为“销售单价_更新查询

48、”的设计参数。图图4-17 “销售单价销售单价_更新查询更新查询”设计参数设计参数 设计完成一个更新查询后,就可以打开它。与打开选择查询对象、交叉表查询对象的情况不同,Access 2003并不显示查询数据表视图,而是根据指定的更新条件与计算更新规则,在数据库中更新了数据源表中相关字段的数据。比如,“销售单价_更新查询”打开一次的结果,就将“柜存数据记录”表中的“销售单价”字段数据下调了10%,且只是改变那些原销售单价高于6元的记录中的数据。图图4-18 “柜存数据记录柜存数据记录”表更新前的数据表更新前的数据图图4-19 “柜存数据记录柜存数据记录”表更新后的数据表更新后的数据 查询的实质就

49、是SQL语句的应用。观察“销售单价_更新查询”的SQL语句,就可以看到,“销售单价_更新查询”是一条用于数据库数据更新的SQL语句:UPDATE 柜存数据记录 SET WHERE(柜存数据记录.销售单价)6);4.4.、更新查询的实质、更新查询的实质 4.54.5、生成表查询设计、生成表查询设计4.5.14.5.1、生成表查询的作用、生成表查询的作用 4.5.24.5.2、生成表查询的设计、生成表查询的设计 4.5.34.5.3、生成表查询的实质、生成表查询的实质 查询只是一个操作的集合,其运行的结果是一个动态数据集。当查询运行结束时,该动态数据集合是不会为Access所保存的。如果希望查询所

50、形成的动态数据集能够被固定的保存下来,就需要使用生成表查询了。例如,如果希望将CMMIS数据库中记录的某段时间内的销售业绩汇总数据导出为HMTL文档,用于Web页发布,就可以将节中所述的“销售业绩查询”改建为一个生成表查询。只要运行这个生成表查询,即可创建一个名为“销售业绩汇总表”的数据表对象,这个数据表对象称为“生成表”。以下,让我们来说明如何设计这样一种Access查询对象。4.5.14.5.1、生成表查询的作用、生成表查询的作用 设计生成表查询的操作步骤如下,首先设计合适的选择查询,然后将其指定为生成表查询。下面以创建“销售业绩_生成表查询”为例,说明其操作步骤。复制一份“销售业绩查询”

51、,并命名为“销售业绩_生成表查询”;在数据库设计视图中的查询对象选项卡上选中它,单击工具栏上的“设计”按钮“”;在随之出现的查询设计视图中,单击菜单栏上的【查询】|【生成表查询】,如图所示。4.5.24.5.2、生成表查询的设计、生成表查询的设计 图图4-20 “销售业绩销售业绩_生成表查询生成表查询”设计视图设计视图随之即会弹出“生成表”对话框,如图所示。在“生成表”对话框中,需要确定生成表的名称,并确定生成表所属的数据库。例如,希望在当前数据库中,生成一个名为“销售业绩汇总表”的生成表,即可设计如图中所示设计参数。单击“确定”按钮“”;即完成了“销售业绩_生成表查询”的设计操作。图图4-2

52、1 “生成表生成表”对话框对话框 设计完成一个生成表查询后,就可以打开运行它。与打开前述两类查询的情况不同,Access并不显示查询数据表视图,而是在数据库中新建了一个数据表对象,其中的数据即为生成表查询运行的结果。例如,“销售业绩_生成表查询”打开一次的结果,就是在数据库中新建了一个名为“销售业绩汇总表”的数据表对象,其中的数据就是“销售业绩_生成表查询”的运行结果。可以打开这个数据表查看以下,会发现它的数据显示内容完全相同于“销售业绩查询”的数据显示内容。然后,再利用Access的数据导出功能,将这个生成表导出为HMTL文档,即实现了本节开始提出的设计目标。查询的实质就是SQL语句的应用。

53、观察“销售业绩_生成表查询”的SQL语句,就可以看到,“销售业绩_生成表查询”就是在“销售业绩查询”的SQL语句中增加了一个INTO子句。以下是“销售业绩_生成表查询”的SQL语句:4.5.34.5.3、生成表查询的实质、生成表查询的实质 SELECT 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货名,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,销售数据记录.销售单价,Sum(销售数据记录.销售数量)AS 销售数量,销售单价*销售数量-进货单价*销售数量 AS 销售利润 INTO 销售业绩汇总表 FROM 库存数据记录 INNER JOIN 销售数据记

54、录 ON GROUP BY 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货名,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,ORDER BY 销售数据记录.销售日期;4.4.6 6、追加查询设计、追加查询设计4.4.、追加查询的作用、追加查询的作用 4.4.、追加查询的设计、追加查询的设计 4.4.、追加查询的实质、追加查询的实质 4.4.、追加查询的作用、追加查询的作用 如果需要从数据库的某一个数据表中筛选出一些数据,可以使用选择查询。进而,如果需要将这些筛选出来的数据追加到另外一个结构相同的数据表中,则必须使用追加查询了。因此,追加查询的作用就是,从

55、一个数据表中筛选出一些数据追加到另外一个具有相同结构的数据表中。同样可以与xBase所支持的Append From语句作一个比较,就可以看到它与Access的追加查询的功能是相同的。但是,二者的使用方式却不尽相同,Access追加查询数据源应该是提供数据的表对象,亦即数据源表是显式打开的,而接收数据的表对象并未显式打开。例如,在介绍生成表查询时,曾经创建了一个名为“销售业绩_生成表查询”的生成表查询,用“销售数据记录”表中的数据生成一个“销售业绩汇总”表。随着商品销售业务的不断进行,新的销售数据记录不断产生,于是希望能够利用新产生的销售数据记录形成新的一段时间内的销售业绩数据,将其追加到“销售

56、业绩汇总”表中。这就必须应用追加查询功能了。首先,创建一个选择查询,其数据源为需要从中筛选数据的表对象。接着,将其中需要追加到另一个表对象中的字段逐一拖曳至查询设计视图的“字段”行中;然后,单击菜单栏上的【查询】|【追加查询】,在回答了随即弹出的“追加”对话框中关于被追加表对象名称的问题后,可以看到在查询设计视图中新增一个“追加到”行。这时,需要在“追加到”行中逐个输入需要追加数据的表对象中的对应字段名(当然可以应用向导完成这项操作,此处并不要求数据源表对象字段名与追加数据表对象字段名相同)。如此,即完成了追加查询的设计。运行该查询,数据源表中的相关数据就追加到指定的数据表中的对应字段中去了。

57、4.4.、追加查询的设计、追加查询的设计 现以设计“销售业绩_追加查询”为例,说明追加查询的设计方法。“销售业绩_追加查询”的追加表对象及其对应字段与生成表查询中的实例说明相同,如图所示。首先,新建一个选择查询,指定数据源为“销售数据记录”表和“库存数据记录”表。接着,逐一将数据源表中相关的字段拖曳至查询的“字段”行中,并创建一个销售利润计算列。然后,单击菜单栏上的【查询】|【追加查询】,在随即弹出的“追加”对话框中选择当前数据库,并在“表名称”列表框中选择“销售业绩汇总表”。单击“确定”按钮,即完成了“销售业绩_追加查询”对象的设计操作。图示为“销售业绩_追加查询”的查询设计视图及其各项设计

58、参数。图图4-21 在在“追加追加”对话框中选择选择对话框中选择选择“销售利销售利润明细查询(润明细查询(2004年年10月下)月下)”图图4-22 “销售业绩销售业绩_追加查询追加查询”的设计参数的设计参数查询的实质就是SQL语句的应用。观察“销售业绩_追加查询”的SQL语句,就可以看到,“销售业绩_追加查询”是一条用于追加数据库记录的SQL语句:INSERT INTO 销售业绩汇总表(销售日期,货号,货名,计量单位,进货单价,库存数量,销售单价,销售数量,销售金额,销售利润)4.4.、追加查询的实质、追加查询的实质 SELECT 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货

59、名,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,销售数据记录.销售单价,Sum(销售数据记录.销售数量)AS 销售数量,Sum(销售数据记录!销售单价*销售数据记录!销售数量)AS 销售金额,销售单价*销售数量-进货单价*销售数量 AS 销售利润FROM 库存数据记录 INNER JOIN 销售数据记录 ON GROUP BY 销售数据记录.销售日期,库存数据记录.货号,库存数据记录.货名,库存数据记录.计量单位,库存数据记录.进货单价,库存数据记录.库存数量,ORDER BY 销售数据记录.销售日期;4.4.7 7、删除查询设计、删除查询设计4.4.、删除查询的作

60、用、删除查询的作用 4.4.、删除查询的设计、删除查询的设计 4.4.、删除查询的实质、删除查询的实质 如果需要从数据库的某一个数据表中有规律地成批删除一些记录,可以使用删除查询来满足这个需求。如果将Access删除查询对象的功能与xBase所支持的相关语句做一个比较,可以看到Access删除查询对象所能够实现的功能等同于xBase中的Delete语句和Pack语句的组合。应用删除查询对象成批地删除数据表中的记录,应该指定相应的删除条件,否则就会删除数据表中的全部数据。这就是说,删除查询对象必需包含有对应的删除条件,而这个删除条件称为准则。由于Access删除查询对象的特点,其间包含的记录删除

61、准则必须能够用一个关系表达式或逻辑表达式表述。4.4.、删除查询的作用、删除查询的作用 例如,如果使用“零售商店管理信息系统”的企业已经不再经营某些商品了,且这些商品也已经销售完毕,即其在“库存数据记录”表中的“库存数量”为零。这时,希望将这些商品的记录从“库存数据记录”表中删除,就应该考虑建立一个删除查询来完成这项操作。而实际上,如此确定的被删除记录显然可以用这样一个关系表达式予以描述:“库存数据记录!库存数量=0”,因此,完全可以应用Access的删除查询对象进行这些数据记录的有规律成批删除。首先,创建一个选择查询,其数据源为需要从中删除记录的表对象。接着,将其中需要作为删除准则使用的字段

62、逐一拖曳至查询设计视图的“字段”行中。然后,单击菜单栏上的【查询】|【删除查询】菜单项,即可以看到在查询设计视图中新增一个“删除”行,该行中填有“Where”字样。这时,即可以在“删除”行下端的“准则”行中输入删除准则(当然可以应用向导完成这项操作)。至此,所需要的删除查询即设计完毕。运行该查询,数据源表中的满足准则条件的记录就被删除了。4.4.、删除查询的设计、删除查询的设计 下面以设计“库存数据记录_删除查询”,使其能够删除“库存数据记录”表中那些“库存数量”等于零的数据记录为例,说明删除查询的设计操作方法。新建一个选择查询,指定其数据源为“库存数据记录”表对象,将“库存数据记录”表中作为

63、删除准则条件判断的“库存数量”字段拖曳至“字段”行中;单击菜单栏上的【查询】|【删除查询】,查询设计视图中将增加一行,其行首标题为“删除”;在新增加的“删除”行下面的“准则”行中输入删除准则“库存数据记录!库存数量=0”;即完成了“库存数据记录_删除查询”对象的设计操作。图示为“库存数据记录_删除查询”的查询设计视图及其各项设计参数。运行这个查询即可删除“库存数据记录”表中那些“库存数量”为零的记录。注意,如果有些“库存数量”等于零的数据记录不能被删除,即,尽管库存商品已经销售完毕,但该商品还打算继续进货,继续经营。在这样的情况下,上述删除查询的设计参数显然就不合适了。那么,这样的删除准则将如

64、何确定呢?当然只能根据实际情况再作分析了。图图4-23 “库存数据记录库存数据记录_删除查询删除查询”的设计视的设计视图图 查询的实质就是SQL语句的应用。观察“库存数据记录_删除查询”的SQL语句,就可以看到,“库存数据记录_删除查询”是一条用于删除数据库记录的SQL语句:DELETE FROM 库存数据记录WHERE(库存数据记录!库存数量=0);4.4.、删除查询的实质、删除查询的实质 4.4.8 8、交叉表查询设计、交叉表查询设计 交叉表查询是Access支持的另一类查询对象。交叉表查询显示来源于表中某个字段的总结值(合计、计算以及平均),并将它们分组,一组列在数据表的左侧,另一组列在

65、数据表的上部。例如,在“零售商店管理信息系统”数据库的“销售数据记录”表中,如果希望得到各个销售人员的销售总金额一览表,就需要应用交叉表查询来实现。可以看到,交叉表查询运行的显示形式,是作为数据源的表转置后形成的数据表。即,将数据源表中的某一字段数据作为交叉表查询的字段名,某几个字段数据作为分类汇总的依据,某一个字段数据被汇总计算后显示在各自的字段下。图图4-24 “销售数据记录销售数据记录_交叉表交叉表”的数据表视的数据表视图图4.4.8 8、交叉表查询设计、交叉表查询设计4.4.、应用向导创建交叉表查询、应用向导创建交叉表查询 4.4.、在交叉表查询设计视图中修、在交叉表查询设计视图中修改

66、交叉表查询改交叉表查询 仔细观察图所示,就会发现,它还不是最终所需的形式。其中,“总计:销售数量”显示的是商品销售数量的合计数,而我们所期望的是用“总计”字段显示商品销售金额的合计数,这是由于作为查询数据源的“销售数据记录”表中没有“销售金额”字段的缘故。另外,我们还希望“总计”字段数据的显示格式为“货币”数据格式。因此,在应用向导完成交叉表查询的创建操作之后,还应该加以一些设计修改。交叉表查询的设计修改操作需在交叉表查询设计视图中进行。4.4.、应用向导创建交叉表查询、应用向导创建交叉表查询 在数据库设计视图中的查询对象选项卡上,选定刚刚应用向导建立完成的“销售数据记录_交叉表”,单击工具栏上的“设计”按钮,即进入交叉表查询设计视图,如图所示,它显示了应用向导建立的“销售数据记录_交叉表”设计参数。在这个视图中,可以看到三个用以分类的“行标题”列、一个用以汇总的“列标题”列和一个用以计算的“值”列(其字段名为“值:Sum(销售数据记录!销售单价*销售数据记录!销售数量)”,可以利用表达式向导设定),这是任何一个交叉表查询的基本组成。最后一列的作用是得到一个合计数,其字段名为“总计:S

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!