首页 Access VBA编程

Access VBA编程

举报
开通vip

Access VBA编程null第11章 Access VBA编程第11章 Access VBA编程11.1 VBA概述 11.2 VBA编程基础 11.3 程序的流程控制 11.4 模块、函数与子过程 11.5 面向对象的程序设计 11.6 VBA的数据库编程 11.7 调试过程本章要点 本章要点 了解什么是标准模块 了解VBA程序设计相关内容 掌握程序基本结构,能够利用VBA程序设计主窗体、查询窗体、登录窗体等。 11.1 VBA概述11.1 VBA概述11.1.1 VBA简介 ...

Access VBA编程
null第11章 Access VBA编程第11章 Access VBA编程11.1 VBA概述 11.2 VBA编程基础 11.3 程序的流程控制 11.4 模块、函数与子过程 11.5 面向对象的程序设计 11.6 VBA的数据库编程 11.7 调试过程本章要点 本章要点 了解什么是 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 模块 了解VBA程序设计相关内容 掌握程序基本结构,能够利用VBA程序设计主窗体、查询窗体、登录窗体等。 11.1 VBA概述11.1 VBA概述11.1.1 VBA简介 Access提供了强大的交互操作功能,开发者通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立和管理简单的数据库应用系统。 创建过程虽然简单,但是所建系统会有一定的局限性,无法实现复杂的处理和必要的判断控制。 Access提供了VBA编程技术,VBA在开发中的应用,大大加强了对数据管理应用功能的扩展,使开发出来的系统更具灵活性和自动性,更容易发挥开发者的想象力和创造力。 11.1 VBA概述11.1 VBA概述11.1.2 VBA的编程环境 VBA的编程环境,称为VBE(Microsoft Visual Basic Editor),是编写和调试程序的重要环境。 11.1 VBA概述11.1 VBA概述进入VBE (1)在窗体或报表中进入VBE (2)在窗体或报表外进入VBE11.1 VBA概述11.1 VBA概述VBE界面 VBE界面主要由常用工具栏和多个子窗口组成 。11.1 VBA概述11.1 VBA概述 VBE界面中的的窗口有代码窗口、立即窗口、本地窗口、监视窗口、对象浏览器、工程资源管理器、属性窗口。不同的窗口显示不同的对象,可以执行【视图】菜单中的相应命令来调出窗口。 11.2 VBA编程基础11.2 VBA编程基础 在编写代码时,需要用到程序设计基础知识,包括VBA的基本数据类型、常量与变量、运算符、表达式以及常用函数。 11.2 VBA编程基础11.2 VBA编程基础11.2.1 数据类型 数据是信息的物理表示形式,是程序处理的对象。 在VBA中,对不同类型的数据有不同的操作方式和不同的取值范围。 VBA的数据类型有系统定义和自定义两种,系统定义的数据类型称为标准类型。null11.2 VBA编程基础11.2 VBA编程基础11.2.2 常量和变量 计算机处理数据时,必须将其装入内存。在高级语言编写的程序中,需要将存放数据的内存单元命名,通过内存单元名来访问其中的数据。 命名的内存单元,就是常量或变量。11.2 VBA编程基础11.2 VBA编程基础1、常量 (1)直接常量 文字常量直接出现在代码中,也称为字面常量或直接常量,文字常量的表示形式决定它的类型和值。例如: 字符型:"I am a student" 放在一对引号当中。 数值型:3.14159、56、8.432E-15 日期型:#3 jan,98# 放在一对#当中。 逻辑型:True 、False 11.2 VBA编程基础11.2 VBA编程基础(2)符号常量 符号常量就是用标识符来表示一个常量,例如:我们把3.14定义为pi,在程序代码中,我们就可以在使用圆周率的地方使用pi。使用符号常量的好处主要在于,当我们要修改该常量时,只需要修改定义该常量的一个语句即可。 定义常量的方法如下: const 常量名 [as类型]=表达式 说明:常量名的命名规则。 [as类型]用以说明常量的数据类型。11.2 VBA编程基础11.2 VBA编程基础(3) 固有常量 VBA还提供了许多固有常量,固有常量有两个字母前缀指明了定义该常量的对象库。 来自Microsoft Access库的常量以“ac”开头,来自ADO库的常量以“ad”开头,而来自Visual Basic库的常量则以“vb”开头,例如:acForm、adAddNew、vbCurrency。 可以用“对象浏览器”来查看所有可用对象库中的固有常量列表。 11.2 VBA编程基础11.2 VBA编程基础(4) 系统定义常量 系统定义的常量有: True False Null 11.2 VBA编程基础11.2 VBA编程基础2、变量 在程序执行过程中,其值可以改变的量称为变量。 在 VBA代码中,变量名的命名有如下规定: 最长只能有 255 个字符。 必须用字母开头。 可以包含字母、数字或下划线字符 (_)。 不能包含标点符号或空格等。 不能是 Visual Basic 关键字。 关键字是那些在 Visual Basic 中用作语言的一部分的 词,包括预定义语句(如 If 和 Loop)、函数(如 Len 和 Abs)和运算符(如 Or 和 Mod)。 11.2 VBA编程基础11.2 VBA编程基础 使用变量前,应首先定义所用到的变量(包括变量名和类型),使系统分配相应的内存空间,并确定该空间可存储的数据类型。所有变量都具有名字和类型。在VB中可以用类型说明语句或隐式说明来定义变量。 (1)类型说明语句 格式:说明符 变量名 [As 类型] 说明符是说明语句的关键字,它可以是Dim,Private,Public,Static。11.2 VBA编程基础11.2 VBA编程基础(2)使用类型说明符声明变量 VBA允许使用类型声明符来声明变量,类型声明符放在变量的末尾。如:intX%表示是一个整型变量,douY#是一个双精度变量,strZ$是个字符串变量。 例如: intX%=1243 douY#=45665.456 strZ$="Access" 11.2 VBA编程基础11.2 VBA编程基础(3)隐式说明 VB中使用未加说明的变量时,系统默认为可变类型(Variant),这种方式称为隐式说明。建议初学者养成对变量显示说明的习惯,以避免一些不必要的错误。11.2 VBA编程基础11.2 VBA编程基础11.2.3 运算符与表达式 表达式是由常量、变量和运算符按一定的规则组成的字符序列。11.2 VBA编程基础11.2 VBA编程基础1、算术运算符和算术表达式 算术运算符用来连接数值型数据进行算术运算。11.2 VBA编程基础11.2 VBA编程基础2、字符串运算符和字符串表达式 字符串只有连接运算,在VB中可以用“+”或“&”。建议尽量使用“&”,使程序看起来更明了。 注意“+”和“&”的区别。当两个被连接的数据都是字符型时,它们的作用相同。当数字型和字符型连接时,“&”把数据都转化成字符型然后连接;“+”把数据都转化成数字型然后连接。11.2 VBA编程基础11.2 VBA编程基础3、关系运算符和关系表达式 关系运算符用作两个数值或字符串的比较,返回值是逻辑值True或False。表列出了VB中的关系运算符及使用示例。 11.2 VBA编程基础11.2 VBA编程基础4、逻辑运算符 11.2 VBA编程基础11.2 VBA编程基础5、对象运算符和对象运算符表达式 引用了对象或对象属性的表达式称为对象表达式。 对象运算符有两种:“!”和“.”。 “!”运算符的作用是指出随后为用户定义的内容。使用它可以引用一个开启的窗体、报表或开启窗体或报表上的控件。 “.”运算符通常引用窗体、报表或控件等对象的属性。11.2 VBA编程基础11.2 VBA编程基础11.2.4 常用函数 函数实际上是系统事先定义好的内部程序,用来完成特定的功能。VBA提供了大量的内部函数,供用户在编程时使用。 函数的一般形式是: 函数名(参数表)11.2 VBA编程基础11.2 VBA编程基础11.2.5 数组 数组不是一种数据类型,而是一组相同类型的变量集合。 数组的优点:用数组名代表逻辑上相关的一批数据。用下标表示数组中的各个元素。11.2 VBA编程基础11.2 VBA编程基础1、数组的声明 数组在使用前,必须显式声明,可以用Dim语句来声明数组。 ⑴ 一维数组的声明 Dim 数组名(下标)[As 类型] 例如:Dim y(5)As Integer 定义了一个一维数组,该数组的名字为y,类型为Integer,占据6个(0~5)整型变量的空间。 11.2 VBA编程基础11.2 VBA编程基础说明: (1)定义数组后,数值数组中的全部元素都初始化为0,字符串数组中的全部元素都初始化为空字符串。 (2)“数组名”的命名遵守标识符规则。 (3)“下标”的一般形式为“[下界 to] 上界”。 下标的上界、下界为整数,不得超过Long数据类型的范围,并且下界应该小于上界。如果不指定下界,下界默认为0。 11.2 VBA编程基础11.2 VBA编程基础2、数组的使用 数组声明后,数组中的每个元素都可以当作简单变量来使用。 例如,S(2)是一个数组元素,其中的S称为数组名,2是下标。在使用数组元素时,必须把下标放在一对紧跟在数组名之后的括号中。S(2)是一个数组变量,而S2则是一个简单变量。 11.3 程序的流程控制11.3 程序的流程控制11.3.1 顺序结构 简单程序可以只用顺序结构来编写,即程序从左至右、自顶向下执行语句。 11.3 程序的流程控制11.3 程序的流程控制11.3.2 分支结构 在程序设计中经常遇到这类问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,它需要根据不同的情况采用不同的处理方法。 例如,一元二次方程的求根问题,要根据判别式小于零或大于等于零的情况,采用不同的数学表达式进行计算。 对于这类问题,如果用顺序结构编程,显然力不从心,必须借助选择结构。11.3 程序的流程控制11.3 程序的流程控制1.单行If语句 格式: If 条件表达式 Then 语句块 End If 11.3 程序的流程控制11.3 程序的流程控制 语句说明: ①条件表达式:一般为关系或逻辑表达式。表达式成立,结果为True,否则为False。 ②语句块:可以是一条或多条语句。 ③If…Then 、End If 是VBA的保留字。 语句执行过程:当条件表达式的结果为真时,执行Then后面的语句块,否则执行End If后面的语句。 11.3 程序的流程控制11.3 程序的流程控制2.多行If语句 格式: If 条件 then 语句块1 [ Else 语句块2] End If 11.3 程序的流程控制11.3 程序的流程控制功能: 块If首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。当缺省[Else…]中的内容时,该选择结构只对条件满足的情况进行处理。执行过程如图所示。 11.3 程序的流程控制11.3 程序的流程控制3.If…Then…ElseIf语句 格式: If 条件1 then 语句块1 ElseIf 条件2 then 语句块2 …… [Else 语句块n+1] End If 11.3 程序的流程控制11.3 程序的流程控制功能: (1)依次判断条件,如果找到一个满足的条件,则执行其下面的语句块,然后跳过End If,执行后面的程序。 (2)如果所列出的条件都不满足,则执行Else语句后面的语句块;如果所列出的条件都不满足,又没有Else子句,则直接跳过End If,不执行任何语句块。 11.3 程序的流程控制11.3 程序的流程控制4.IIf函数 IIf函数是If语句的一种特殊格式,它的使用语法如下:IIf(条件,表达式1,表达式2) 作用是,先判断条件,如果条件为真,返回表达式l的值;否则返回表达式2的值。 例如:c = IIf(a > b, a, b) 语句执行后, 如果a>b,则c的值为a,否则c的值为b。11.3 程序的流程控制11.3 程序的流程控制5.Select Case语句 当对一个表达式的不同取值情况作不同处理时,用ElseIf语句程序结构显得较为杂乱,而用Select Case语句将使程序的结构更清晰,Select Case语句又称为情况语句。 11.3 程序的流程控制11.3 程序的流程控制格式: Select Case 测试表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 … Case 表达式列表n 语句块n [Case Else 语句块n+1] End Select 11.3 程序的流程控制11.3 程序的流程控制 功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。 执行过程是: 先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行End Select下面的语句;如果没找到,则执行Case Else下面的语句块,然后执行End Select下面的语句。11.3 程序的流程控制11.3 程序的流程控制说明: “测试表达式”可以是数值型或字符串型表达式; Case表达式可以有多种形式: 1、单个值或一列值,相邻两个值之间用逗号隔 开。 2、用关键字To指定值的范围,其中第一个值不 应大于第二个值,对字符串将比较它的第一 个字符的ASCII码大小。 11.3 程序的流程控制11.3 程序的流程控制3、使用关键字is指定条件。is后紧接关系操作符(如<>、<、<=、=、>=和>等)和一个变量或 值。 4、前面的三种条件形式混用,多个条件之间用逗号隔开。 Case语句按先后顺序进行比较,执行与第一个case条件相匹配的代码。若不存在匹配的条件,则执行Case Else语句。然后程序将从End Selecct语句后的代码行继续执行。 11.3 程序的流程控制11.3 程序的流程控制11.3.3 循环结构 循环结构非常适合于解决处理的过程相同、处理的数据相关,但处理的具体值不同的问题。 我们把能够处理这类问题的语句称为循环语句。11.3 程序的流程控制11.3 程序的流程控制1.While循环 对于只知道控制条件,但不能预先确定需要 执行多少次循环体的情况,我们可以使用While 循环。While语句格式如下: While 条件 [循环体] Wend 11.3 程序的流程控制11.3 程序的流程控制 “条件”可以是关系表达式或逻辑表达式。While循环就是当给定的“条件”为True时,执行循环体,为False时不执行循环体。因此While循环也叫当型循环。 执行过程: (1)执行While语句,判断条件是否成立。 (2)如果条件成立,就执行循环体;否则,转到 (4)执行。 (3)执行Wend语句,转到(1)执行。 (4)执行Wend语句下面的语句。 11.3 程序的流程控制11.3 程序的流程控制While循环的几点说明: (1)While 循环语句本身不能修改循环条件,所以必须在While…Wend语句的循环体内设置相应语句,使得整个循环趋于结束,以避免死循环。 (2)While循环语句先对条件进行判断,然后才决定是否执行循环体。如果开始条件就不成立,则循环体一次也不执行。 (3)凡是用For…Next循环编写的程序,我们都可以用While…Wend语句实现。反之,则不然。 11.3 程序的流程控制11.3 程序的流程控制2.Do…Loop语句 与前面介绍的While循环相比,Do循环具有更强的灵活性,它可以根据需要决定是条件满足时执 行循环体,还是一直执行循环体直到条件满足。 Do {while|until} <条件> [<循环体>] Loop 11.3 程序的流程控制11.3 程序的流程控制3.For循环 For循环的一般格式如下: For 循环变量=初值 To 终值 [Step 步长] [循环体] Next [循环变量] 11.3 程序的流程控制11.3 程序的流程控制格式中各项的说明: 循环变量:亦称为循环控制变量,必须为数值型。 初值、终值:都是数值型,可以是数值表达式。 步长:循环变量的增量,是一个数值表达式。一般来说,其值为正,初值应小于终值;若为负,初值应大于终值。但步长不能是0。如果步长是1,Step 1可略去不写。 循环体:在For语句和Next语句之间的语句序列。 Next后面的循环变量与For语句中的循环变量必须相同。 11.3 程序的流程控制11.3 程序的流程控制执行过程: (1)系统将初值赋给循环变量,并自动记下终值和步长。 (2)检查循环变量的值是否超过终值。如果超过就结束循环,执行Next后面的语句;否则,执行一次循环体。 (3)执行Next语句,将循环变量增加一个步长值再赋给循环变量,转到(2)继续执行。11.3 程序的流程控制11.3 程序的流程控制4.For Each…Next语句 For each 变量 in 集合 [循环体] Next For Each语句用于对一个数组或集合中的每个元素重复执行一组语句。11.4 模块、函数与子过程11.4 模块、函数与子过程11.4.1 模块 模块起着存放用户编写的VBA代码的作用,模块也是作为容器使用的。具体地说,模块就是由VBA通用声明和一个或多个过程组成的集合 。 null11.4 模块、函数与子过程11.4 模块、函数与子过程 通用声明部分主要包括:Option语句声明、变量或常量或自定义数据类型的声明。 可以使用的Option语句包括: Option Base 1 声明模块中数组下标的默认下界为l,不声明则为0。 Option Compare Database 声明模块中需要字符串比较时,将根据数据库的区域ID确定的排序级别进行比较;不声明则按字符ASClI码进行比较。 Option Explicit语句 强制模块中用到的变量必须先进行声明。 null11.4 模块、函数与子过程11.4 模块、函数与子过程11.4.2 函数与子过程 无论是哪一种模块,都是由一个通用声明部分以及一个或多个过程组成。一个过程是一个VBA代码单元,包含一系列的语句和方法。 过程通常有两种:Sub 过程和Function 过程。Sub过程没有返回值,而Function过程将返回一个值。 null1、函数 函数过程的定义形式:Function 函数过程名([参数列表])[As类型] [局部变量或常数定义] [语句序列] [Exit Function] [语句序列] 函数名=表达式 End Function nullSub 子过程名([参数列表]) [局部变量或常数定义] [语句序列] [Exit Sub] [语句序列] End Sub 2.子过程的定义形式 11.4 模块、函数与子过程11.4 模块、函数与子过程2.创建子程序和函数 在VBE的“工程资源管理器”窗口中,双击需要创建过程的窗体模块或报表模块或标准模块,然后单击【插入】菜单中的【过程】命令,打开“添加过程”对话框。 null11.4 模块、函数与子过程11.4 模块、函数与子过程3.事件过程与函数的调用 ⑴ 事件过程的调用方法 格式1:Call 过程名([参数列表]) 格式2:过程名 [参数列表] 11.4 模块、函数与子过程11.4 模块、函数与子过程⑵ 过程的参数传递和返回值 调用Function过程的方法和调用任何内部函数的方法是一样的,就是在赋值语句中调用函数过程,调用形式为: 变量名 = 函数过程名([参数列表]) 11.5 面向对象的程序设计11.5 面向对象的程序设计11.5.1 面向对象程序设计的基本概念 “面向对象”概念是相对于“面向过程”的一次革命。“面向对象”不仅仅作为一种语言,更作为一种方法论贯穿于软件设计的各个阶段。面向对象的技术在系统程序设计、数据库及多媒体应用等诸多领域得到广泛应用。 Visual Basic、Visual FoxPro、Visual C++都是面向对象的程序设计语言。11.5 面向对象的程序设计11.5 面向对象的程序设计1.对象和对象名称 对象好比是积木块,它是VBA应用程序的基础构件。在开发一个应用程序时,必须先建立各种对象,然后围绕对象进行程序设计。 表、查询、窗体、报表等是对象,字段、窗体和报表中的控件也是对象。 为便于识别,每个对象均有名称,称为对象名称。 11.5 面向对象的程序设计11.5 面向对象的程序设计 有效的名称须符合Access的标准命名规则,窗体、报表、字段等对象的名称不能超过64个字符,而对于控件,对象名称长度不能超过255个字符。 对于未绑定控件,默认名称是控件的类型加上一个唯一的整数。 对于绑定控件,如果通过从字段列表中拖放字段来创建控件,则对象的默认名称是记录源中字段的名称 。 11.5 面向对象的程序设计11.5 面向对象的程序设计2.对象的属性 属性是指对象的特征。每一种对象都有一组特定的属性,这在属性窗口中可以看到。 每个属性都有一个缺省值,如果不改变该值,应用程序就使用该缺省值,如果缺省值不能满足 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 ,就要对它重新设置。 11.5 面向对象的程序设计11.5 面向对象的程序设计3.对象的方法 如果说,对象的属性是静态规格,那么对象的方法便是动态操作,目的是改变对象的当前状态。 例如,如果将光标插入点移入某个文本框内,在程序中就需要使用SetFocus方法。 注意:对象的方法不会显示在属性表中,只可显示在程序中。 11.5 面向对象的程序设计11.5 面向对象的程序设计4.对象的事件 事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。事件的发生通常是用户操作的结果。 每个对象都有一系列预先定义的事件集。例如,命令按钮能响应单击、获取焦点、失去焦点等事件,可以通过属性表的“事件”选项卡查看。 null11.5 面向对象的程序设计11.5 面向对象的程序设计5.事件过程 尽管系统对每个对象都预先定义了一系列的事件集,但要判定它们是否响应某个具体事件以及如何响应事件,就是编程的事情了。例如,需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中。 事件过程的形式如下: Private Sub 对象名_事件名() …(VB程序代码) End Sub 11.5 面向对象的程序设计11.5 面向对象的程序设计11.5.2 面向对象程序设计示例 创建一个简单应用程序,该应用程序由一个文本框和一个命令按钮组成。单击命令按钮,文本框中会出现 "Hello , world!" 消息。 11.5 面向对象的程序设计11.5 面向对象的程序设计Private Sub cmd1_Click() txt1.Value = "Hello World!" End Sub Private Sub Form_Load() txt1.Value = "" txt1.FontSize = 20 txt1.FontItalic = True txt1.FontBold = True txt1.BackColor = vbBlue cmd1.FontSize = 20 cmd1.FontBold = True Me.Caption = "程序设计之一" End Sub 11.6 VBA的数据库编程11.6 VBA的数据库编程11.6.1 数据库引擎及其接口 (1)开放数据库互联应用编程接口。 (2)数据访问对象。 (3)Active数据对象。11.6 VBA的数据库编程11.6 VBA的数据库编程11.6.2 VBA访问数据库的类型 本地数据库 外部数据库 ODBC数据库11.6 VBA的数据库编程11.6 VBA的数据库编程11.6.3 数据访问对象 1.DBEngine对象 2.Workspace对象 3.Database对象 4.TableDef对象 5.Recordset对象 6.QueryDef对象 7.Field对象 8.Index对象11.6 VBA的数据库编程11.6 VBA的数据库编程11.6.4 ActiveX数据对象 1.Connection对象 2.Recordset对象 11.7 调试过程11.7 调试过程11.7.1 使用Debug.Print 使用立即窗口的方法是在程序代码中加入Debug.Print命令,其作用是在屏幕上显示变量的当前值。11.7 调试过程11.7 调试过程11.7.2 设置断点 有些调试工具,需要挂起VBA代码的执行。因为,只有挂起代码,才可以进行调试工作,例如检查当前的变量值或单步运行代码。挂起的代码仍在运行当中,只是在某个语句位置暂停下来。 通过设置断点,可以挂起代码。设置断点的方法有三种: ⑴ 使用边界标示条。 ⑵ 使用【调试】菜单。 ⑶ 使用【调试】工具栏。 本章小结本章小结本章介绍了VBA编程的基础知识以及Access VBA的编程实例。 主要内容包括:VBA的多种数据类型,常量和变量的定义及使用,对象模型的应用,算术运算符、连接运算符、关系运算符和逻辑运算符的种类及优先级别,表达式的构成,数组的声明与使用,条件分支语句和循环语句的控制结构,类模块和标准模块,过程和函数的定义及调用,常用的内部函数的意义,VBA的调试与错误处理,最后通过创建一个验证登录密码的VBA模块实例,讲解了VBA在实际系统中的应用。作业:作业:1. 模块可以分为哪几类?它们之间有什么区别? 2. 窗体与类模块有什么联系? 3. 宏和VBA各有什么优点?分别适用于什么情况?
本文档为【Access VBA编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_247290
暂无简介~
格式:ppt
大小:352KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-07-12
浏览量:93