欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第8讲 模块.ppt

    • 资源ID:80599781       资源大小:925.50KB        全文页数:128页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第8讲 模块.ppt

    第第8讲讲 模块模块Access数据库程序设计数据库程序设计2内容提要内容提要n8.1 模块的基本概念模块的基本概念n8.2 创建模块创建模块 n8.3 VBA程序设计基础程序设计基础3模块的基本概念模块的基本概念模模块块是是Access中中的的一一类类重重要要对对象象,它它以以VBA(Visual Basic for Application)语语言言为为基基础础编编写写,以以函函数数过过程程(Function)或或子子过过程程(Sub)为为单单元元的的集集合合方方式式存存储储。在在Access中中,模块分为类模块和标准模块两种类型。模块分为类模块和标准模块两种类型。8.1.1 模块的组成模块的组成8.1.2 类模块类模块8.1.3 标准模块标准模块8.1.4 将宏转换为模块将宏转换为模块4模块的组成模块的组成一一个个模模块块包包含含一一个个声声明明区区域域,包包含含一一个个或或多多个个子子过程过程(以以Sub开头开头)或函数过程或函数过程(以以Function开头开头):n声明区域:声明模块使用的变量等项目。声明区域:声明模块使用的变量等项目。n过过程程:包包含含VBA代代码码的的单单位位。过过程程包包含含一一系系列列的的语语句句和和方方法法,以以执执行行特特定定的的操操作作。当当过过程程附附加加在在控控件件上上时时,如如果果发发生生某某个个事事件件,则则可可以以执执行相应的过程对该事件做出响应。行相应的过程对该事件做出响应。5类模块类模块n类模块是含有类定义的模块,包括其属性和方法的定义。类模块是含有类定义的模块,包括其属性和方法的定义。n窗窗体体模模块块和和报报表表模模块块都都属属于于类类模模块块,它它们们从从属属于于各各自自的的窗窗体体或或报报表表。选选择择“视视图图”|“代代码码”命命令令或或单单击击工工具具栏栏上上的的“代码代码”按钮,可以进入相应的模块代码设计区域。按钮,可以进入相应的模块代码设计区域。n窗窗体体模模块块和和报报表表模模块块通通常常都都含含有有事事件件过过程程,而而过过程程的的运运行行用于响应窗体或报表上的事件。用于响应窗体或报表上的事件。n为为窗窗体体或或报报表表创创建建第第一一个个事事件件过过程程时时,Access将将自自动动创创建建与之关联的窗体模块或报表模块。与之关联的窗体模块或报表模块。n窗窗体体模模块块和和报报表表模模块块具具有有局局部部特特性性,其其作作用用范范围围局局限限在在所所属属窗窗体体或或报报表表内内部部,而而生生命命周周期期则则是是伴伴随随着着窗窗体体或或报报表表的的打开而开始、关闭而结束。打开而开始、关闭而结束。6标准模块标准模块n标标准准模模块块一一般般用用于于存存放放供供其其他他Access数数据据库库对对象象使使用用的的公公共共过过程程。在在Access中中可可以以通通过过创创建建新新的的模块对象而进入其代码设计环境。模块对象而进入其代码设计环境。n标标准准模模块块通通常常安安排排一一些些公公共共变变量量或或过过程程,供供类类模模块块里里的的过过程程调调用用。在在各各个个标标准准模模块块内内部部也也可可以以定定义私有变量和私有过程,仅供本模块内部使用。义私有变量和私有过程,仅供本模块内部使用。n标标准准模模块块中中的的公公共共变变量量和和公公共共过过程程具具有有全全局局特特性性,其其作作用用范范围围在在整整个个应应用用程程序序里里,生生命命周周期期伴伴随随着着应用程序的运行而开始、关闭而结束。应用程序的运行而开始、关闭而结束。7将宏转换为模块将宏转换为模块在在Access中,可以将设计好的宏转换为中,可以将设计好的宏转换为模块代码形式。模块代码形式。n如果需要代码与窗体或报表保存在一如果需要代码与窗体或报表保存在一起,则从相关的窗体或报表的设计视起,则从相关的窗体或报表的设计视图中转换。图中转换。n如果希望代码可被整个数据库使用,如果希望代码可被整个数据库使用,则从数据库窗口的则从数据库窗口的“宏宏”对象窗口中对象窗口中直接转换。直接转换。8将宏转换为模块将宏转换为模块【例例8.1】将将“选课信息查询选课信息查询”窗体中的宏转窗体中的宏转换为模块代码。换为模块代码。9将宏转换为模块将宏转换为模块【例例8.2】将将“选课信息查询选课信息查询”窗体中的宏转窗体中的宏转换为标准模块代码。换为标准模块代码。10创建模块创建模块过程是模块的单元组成,由过程是模块的单元组成,由VBA代码编写而成。代码编写而成。过程分为两种类型:过程分为两种类型:Sub子过程和子过程和Function函数函数过程。过程。n在模块中加入过程在模块中加入过程在窗体或报表的设计视图中,单击工具栏上在窗体或报表的设计视图中,单击工具栏上的的“代码代码”按钮,可以进入类模块的设计和按钮,可以进入类模块的设计和编辑窗口。编辑窗口。单击数据库窗口的单击数据库窗口的“模块模块”对象窗口中的对象窗口中的“新建新建”按钮,可进入标准模块的设计和编辑按钮,可进入标准模块的设计和编辑窗口。窗口。11在模块中加入过程在模块中加入过程nSub过程执行一系列操作,无返回值。过程执行一系列操作,无返回值。定义格式定义格式 Sub 过程名过程名(形参列表形参列表)程序代码程序代码 End Sub调用方法调用方法 过程名过程名 实参列表实参列表 或或 Call 过程名过程名(实参列表实参列表)12在模块中加入过程在模块中加入过程nFunction过程执行一系列操作,有返回值。过程执行一系列操作,有返回值。定义格式定义格式 Function 过程名过程名(形参列表形参列表)As 类型类型 程序代码程序代码 过程名过程名=表达式表达式 End Function调用方法调用方法 过程名过程名(实参列表实参列表)13在模块中执行宏在模块中执行宏在模块的过程定义中,使用在模块的过程定义中,使用DoCmd对象的对象的RunMacro方法,可以执行设计好的宏。方法,可以执行设计好的宏。n调用格式调用格式DoCmd.RunMacro MacroName,RepeatCount,RepeatExpressionn执行方式:如果存在执行方式:如果存在RepeatExpression,则先,则先判断表达式结果是否为判断表达式结果是否为True,为,为True则重复执则重复执行名为行名为MacroName的宏的宏RepeatCount次次(默认默认为为1),为,为False则停止执行宏。则停止执行宏。14VBA程序设计基础程序设计基础VBA是是Office的内置编程语言,在的内置编程语言,在Access程序设计程序设计中,当某些操作用其他中,当某些操作用其他Access对象实现起来很困难对象实现起来很困难时,可以利用时,可以利用VBA编写代码,完成这些复杂任务。编写代码,完成这些复杂任务。8.3.1 面向对象程序设计的基本概念面向对象程序设计的基本概念8.3.2 VBA编程环境:编程环境:VBE界面界面8.3.3 VBA编程基础:常量、变量、运算符和表达式编程基础:常量、变量、运算符和表达式8.3.4 VBA程序流程控制语句程序流程控制语句8.3.5 过程调用和参数传递过程调用和参数传递15面向对象程序设计的基本概念面向对象程序设计的基本概念n类与对象类与对象类类是具有相同属性和相同操作功能的对象的集合,是具有相同属性和相同操作功能的对象的集合,对象对象是类的实例。是类的实例。例如,飞行器类包含位置、速度、颜色等属性,以例如,飞行器类包含位置、速度、颜色等属性,以及起飞、降落、加速等操作。一架波音及起飞、降落、加速等操作。一架波音777客机和客机和一架一架F22猛禽战斗机是飞机类的两个实例。猛禽战斗机是飞机类的两个实例。Access包含表、查询、窗体、报表、数据访问页、包含表、查询、窗体、报表、数据访问页、宏、模块七个类。在数据库窗口中单击其中的一个宏、模块七个类。在数据库窗口中单击其中的一个类,利用类,利用“新建新建”按钮可以创建该类的对象。按钮可以创建该类的对象。16面向对象程序设计的基本概念面向对象程序设计的基本概念n属性与方法属性与方法属性描述了类的静态特征属性描述了类的静态特征(性质性质),方法描述了,方法描述了类的动态特征类的动态特征(行为行为)。例如,一架波音。例如,一架波音777客客机是飞机类的一个具体对象,它具有位置、机是飞机类的一个具体对象,它具有位置、速度、颜色、容量等属性,以及起飞、降落、速度、颜色、容量等属性,以及起飞、降落、加速、维修等行为。加速、维修等行为。对象是类的实例,类是同种对象的抽象综合,对象是类的实例,类是同种对象的抽象综合,是创建对象的模板。在程序中创建一个对象是创建对象的模板。在程序中创建一个对象将在内存中开辟一块空间,其中包括该对象将在内存中开辟一块空间,其中包括该对象的属性和方法。其引用方式为:的属性和方法。其引用方式为:对象对象.属性属性 或或 对象对象.方法方法17面向对象程序设计的基本概念面向对象程序设计的基本概念Access除了提供七个对象类外,还提供了一除了提供七个对象类外,还提供了一个重要的对象:个重要的对象:DoCmd。通过调用该对象。通过调用该对象的方法可以快速实现许多常用操作。的方法可以快速实现许多常用操作。例如:例如:DoCmd.OpenForm 学生信息浏览学生信息浏览n事件处理:如果用户在对象上执行了一个动作,事件处理:如果用户在对象上执行了一个动作,这将导致一个事件的发生。例如,在按钮对象这将导致一个事件的发生。例如,在按钮对象上单击鼠标将导致上单击鼠标将导致Click事件的发生。可以使用事件的发生。可以使用宏或编写宏或编写VBA代码来作为事件处理代码来作为事件处理(响应响应)过程。过程。Access的主要对象事件参考的主要对象事件参考P283表表8.1。18【例例8.3】新建窗体,并在其上放置一个命令按钮,新建窗体,并在其上放置一个命令按钮,然后创建该命令按钮的然后创建该命令按钮的“单击单击”事件响应过程。事件响应过程。面向对象程序设计的基本概念面向对象程序设计的基本概念19面向对象程序设计的基本概念面向对象程序设计的基本概念该事件响应过程该事件响应过程只能被同一模块只能被同一模块中的其他过程所中的其他过程所访问访问20VBA编程环境编程环境标准工具栏标准工具栏工程窗口工程窗口属性窗口属性窗口注意:只有在数据库窗口中选中对象或在设计视图中注意:只有在数据库窗口中选中对象或在设计视图中打开对象,才能在属性窗口中显示该对象的属性打开对象,才能在属性窗口中显示该对象的属性代码窗口代码窗口21VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n标准数据类型标准数据类型数据类型数据类型 类型标识类型标识 符号符号取值范围取值范围整型整型Integer%-3276832767长整型长整型Long&-21474836482147483647单精度型单精度型Single!1.401298E-453.402823E38双精度型双精度型Double#4.94065645841247E-3241.79769313486232E308货币型货币型Currency-922337203685477.5808922337203685477.5807字符串型字符串型String$0字符字符65500字符字符布尔型布尔型BooleanTrue或或False日期型日期型Date100年年1月月1日日9999年年12月月31日日变体类型变体类型Variant由最终的数据类型而定由最终的数据类型而定22VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n常量常量程序在运行时其值始终保持不变的量程序在运行时其值始终保持不变的量字符串常量放在一对字符串常量放在一对内,日期型常量放在内,日期型常量放在一对一对#内。如内。如“China、#3/25/2009#等。等。符号常量是用标识符表示的常量,可用符号常量是用标识符表示的常量,可用Const关键字定义符号常量。例如:关键字定义符号常量。例如:Const PI=3.14159系统提供的内部常量可通过执行系统提供的内部常量可通过执行“视图视图”|“对象浏览器对象浏览器”命令进行查看。命令进行查看。23VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n变量变量程序在运行时其值可以改变的量程序在运行时其值可以改变的量命名规则:命名规则:同字段命名规则类似,但变量名不允许包同字段命名规则类似,但变量名不允许包含空格或除下划线以外的任何其他标点符含空格或除下划线以外的任何其他标点符号。号。变量名不能与变量名不能与VBA的关键字相同。的关键字相同。变量命名不区分大小写。变量命名不区分大小写。24VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量声明变量声明显式声明:显式声明:声明符声明符 变量名变量名 As 类型类型 例如:例如:Dim num As Integer Dim x As Single,y As Double隐式声明:未经声明而直接使用变量,其隐式声明:未经声明而直接使用变量,其类型为类型为Variant。例如:例如:m=528思考:思考:(1)Dim k 中的变量中的变量k的数据类型是什么的数据类型是什么?(2)n%=911 中的变量中的变量n的数据类型是什么的数据类型是什么?25VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量的作用域变量的作用域局部变量:在过程内用局部变量:在过程内用Dim或或Static声明的变量,声明的变量,只能在本过程中使用。可以在不同过程中声明只能在本过程中使用。可以在不同过程中声明相同名字的局部变量而互不影响。相同名字的局部变量而互不影响。模块级变量:在模块的声明区域中用模块级变量:在模块的声明区域中用Dim或或Private声明的变量,可被本模块的任何过程访声明的变量,可被本模块的任何过程访问,但其他模块却不能访问该变量。问,但其他模块却不能访问该变量。全局变量:在模块的声明区域中用全局变量:在模块的声明区域中用Public声明声明的变量,可被本应用程序的任何过程所访问。的变量,可被本应用程序的任何过程所访问。26VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式变量的生存期:是指变量在这一期间能够保持自变量的生存期:是指变量在这一期间能够保持自己的值。己的值。在应用程序的生存期内一直保持模块级变量和在应用程序的生存期内一直保持模块级变量和全局变量的值。全局变量的值。用用Dim声明的局部变量仅当过程执行期间存在,声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量所占据的当一个过程执行完毕,它的局部变量所占据的内存随即释放。当下一次执行该过程时,它的内存随即释放。当下一次执行该过程时,它的所有局部变量将重新初始化所有局部变量将重新初始化(数值型为数值型为0,字符,字符串型为空字符串串型为空字符串“”)。用用Static声明的局部变量在过程执行完毕后所声明的局部变量在过程执行完毕后所占据的内存不释放。占据的内存不释放。27VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式【例例8.4】新建窗体,并在其上放置两个命令按钮新建窗体,并在其上放置两个命令按钮btn1和和btn2,它们的,它们的“单击单击”事件响应过程如下所示。事件响应过程如下所示。Private Sub btn1_Click()Dim count1 As Integer count1=count1+1 MsgBox count1End SubPrivate Sub btn2_Click()Static count2 As Integer count2=count2+1 MsgBox count2End Sub分析:分别单击按钮分析:分别单击按钮btn1和和btn2,弹出的消息框中显,弹出的消息框中显示的信息有何不同?示的信息有何不同?28VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n数组数组定定义义:一一组组具具有有相相同同名名字字不不同同下下标标的的变变量量构构成了数组。组成数组的变量称为数组元素。成了数组。组成数组的变量称为数组元素。例例如如:score(0)、score(1)、score(2)、score(3)为为具具有有相相同同名名字字score,不不同同下下标标i(i=0,1,2,3)的的一一组组变变量量,称称其其为为数数组组score。组组成成数数组组的的变变量量score(i)为数组元素,为数组元素,i称为下标。称为下标。数数组组分分为为静静态态数数组组和和动动态态数数组组,必必须须先先声声明明后使用。后使用。29VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式静态数组:在声明时确定大小,其声明形式为:静态数组:在声明时确定大小,其声明形式为:一维数组一维数组 Dim 数组名数组名(下标下限下标下限 To 下标上限下标上限)As 类型类型 其其中中若若省省略略下下标标下下限限 To,则则系系统统默默认认下下标标下下限限为为0;若若省省略略As 类类型型,则则数数组组元元素素类类型型为为Variant。例如:例如:Dim score(50)As Integer 声声明明了了一一维维数数组组score,它它包包含含score(0)、score(1)、score(50)共共51个个元元素素,每每个个元元素素都都是是Integer类型的变量。类型的变量。思考:思考:Dim ary(1 To 10)数组包含的元素个数及类型?数组包含的元素个数及类型?30VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式多维数组多维数组 Dim 数组名数组名(下标下标1,下标下标2,下标下标n)As 类型类型 例如:例如:Dim ary(1,2)As Integer 声明了二维数组声明了二维数组ary,数组元素如下所示。,数组元素如下所示。ary(0,0)ary(0,1)ary(0,2)ary(1,0)ary(1,1)ary(1,2)动动态态数数组组:先先显显式式声声明明数数组组但但不不指指定定其其大大小小,然然后后用用ReDim关键字来决定数组包含的元素数目。关键字来决定数组包含的元素数目。例如:例如:Dim ary()As Integer ReDim ary(1 To 2,1 To 3)31VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式ReDim语句是可执行语句,只能出现在过程中。语句是可执行语句,只能出现在过程中。ReDim语语句句可可以以改改变变数数组组的的维维数数、每每一一维维的的元元素素数数目和上下界,但不能改变元素的数据类型。目和上下界,但不能改变元素的数据类型。例如:例如:Dim ary()As Integer ReDim ary(1 To 2,1 To 3)ReDim ary(3,1)ReDim ary(10)每每次次执执行行ReDim语语句句时时,原原来来存存储储的的数数据据就就会会全全部部丢丢失失;可可以以使使用用具具有有Preserve关关键键字字的的ReDim语语句句来来改变数组大小且不丢失数据。改变数组大小且不丢失数据。32VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式 例如:例如:Dim ary()As Integer ReDim ary(10)ary(5)=123 ReDim Preserve ary(7)MsgBox ary(5)需需要要注注意意的的是是,使使用用Preserve关关键键字字时时只只能能改改变变最最后后一一维维的的上上界界,如如果果改改变变了了其其它它维维数数的的上上下下界界或或者者改改变变了了最最后后一一维维的的下下界界,那那么么运运行行时时就就会会出出错。错。33VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式可可以以使使用用UBound(arrayname,dimension)函函数数来来获获得得指指定定的的数数组组维维可可用用的的最最大大下下标标;可可以以使使用用LBound(arrayname,dimension)函函数数来来获获得得指指定的数组维可用的最小下标。定的数组维可用的最小下标。例如:例如:Dim ary(1 To 100,0 To 3,-3 To 4)MsgBox UBound(ary,1)MsgBox UBound(ary,2)MsgBox UBound(ary,3)MsgBox LBound(ary,1)MsgBox LBound(ary,2)MsgBox LBound(ary,3)34VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n自定义数据类型自定义数据类型定定义义:用用Type语语句句定定义义的的数数据据类类型型,可可以以包包含含一一个个或或多多个个某某种种数数据据类类型型的的数数据据元元素素、数数组组或或先先前前定定义义的的用用户户自自定定义义类类型型。定定义义格格式式如下:如下:Type 数据类型名数据类型名 分量名分量名1 As 数据类型数据类型 分量名分量名2 As 数据类型数据类型 分量名分量名n As 数据类型数据类型 End Type35VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式 例如:例如:Type CourseRecord name As String scores(1 To 2)As Integer End Type Type StudentRecord name As String age As Integer marry As Boolean birth As Date courses()As CourseRecord End Type36VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式自定义数据类型必须定义在标准模块中。自定义数据类型必须定义在标准模块中。自自定定义义类类型型的的变变量量声声明明与与其其他他类类型型的的变变量量声声明相似。明相似。例如:例如:Dim stu As StudentRecord自定义类型变量的赋值方式如下:自定义类型变量的赋值方式如下:变量名变量名.分量名分量名=数值数值 例如:例如:stu.name=周晓铮周晓铮 stu.age=26 stu.marry=False stu.birth=#7/5/1984#37VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式 ReDim stu.courses(1 To 1)stu.courses(1).name=VBA程序设计程序设计 stu.courses(1).scores(1)=82 stu.courses(1).scores(2)=90 Dim maxSuffix As Integer maxSuffix=UBound(stu.courses)ReDim Preserve stu.courses(1 To maxSuffix+1)stu.courses(maxSuffix+1).name=西方经济学西方经济学 stu.courses(maxSuffix+1).scores(1)=75 stu.courses(maxSuffix+1).scores(2)=6838VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式可可以以使使用用WithEnd With结结构构来来处处理理同同一一个个变量的多个分量。变量的多个分量。例如:例如:With stu .name=周晓铮周晓铮 .age=26 .marry=False .birth=#7/5/1984#End With39VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n对象变量对象变量Object变变量量:利利用用类类型型关关键键字字Object声声明明的的变变量量,保保存存引引用用对对象象的的32位位(4字字节节)地地址址。利利用用Set语语句句,一一个个Object变量可以引用应用程序中的任何实际对象。变量可以引用应用程序中的任何实际对象。例如:例如:Dim obj As Object Set obj=New Form_学生学生 obj.Caption=学生信息学生信息 obj.Visible=True 思考:若将该语句修改为思考:若将该语句修改为 Set obj=Form_学生,学生,程序运行结果会发生改变吗?程序运行结果会发生改变吗?Object变变量量足足够够灵灵活活,可可以以包包含含对对任任何何对对象象的的引引用用。例如:例如:Dim obj As Object Set obj=Forms!学生学生!学号学号 obj.Value=201000000000 Set obj=Forms!学生信息浏览学生信息浏览 obj.Caption=Student Info40VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式注意:在窗体注意:在窗体(或报表或报表)打开的情况下,可以使用如下形式打开的情况下,可以使用如下形式引用窗体引用窗体(或报表或报表)对象及其属性:对象及其属性:Forms(或或Reports)!窗体窗体(或报表或报表)名称名称!控件名称控件名称.属性名称属性名称思考:有没有其他方思考:有没有其他方法来引用窗体法来引用窗体(或报表或报表)对象及其属性?对象及其属性?虽虽然然Object变变量量可可以以引引用用任任何何对对象象,但但是是,在在Object变变量量上上调调用用方方法法或或属属性性时时,总总是是会会遇遇到到后后期期绑绑定定(在在运运行行时时)。若若要要强强制制前前期期绑绑定定(在在编编译译时时)和和提提高高性性能能,应应用特定的类名称声明变量。例如:用特定的类名称声明变量。例如:Dim obj1 As Form_学生学生 Set obj1=Form_学生学生 obj1.学号学号.Value=201000000000 obj1.Visible=True Dim obj2 As Form_学生信息浏览学生信息浏览 Set obj2=Form_学生信息浏览学生信息浏览 obj2.Caption=Student Info obj2.Visible=True41VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式42VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式n运算符运算符算术运算符:算术运算符:、*、/、Mod、+、-例如:例如:232=64 9.75/3=3.25 9.52.5=5 10.5 Mod 3.5=2 9.6 Mod 3.4=1 9.5 Mod-3=1 -9.5 Mod 3=-1余数与被除数的符号相同余数与被除数的符号相同小小数数部部分分采采取取四四舍舍六六入入五五成成双双:0.4直直接接舍舍去去,0.6直直接接进进位位;0.5则则前前一一位位是是双双数数就就舍舍,前前一一位位是是单单数就入数就入43VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式关系运算符:关系运算符:=、=例如:例如:Dim result As Boolean result=(87)result=(95=2)result=(China=Chinese)result=(abaaa)当当其其他他类类型型数数据据转转换换为为Boolean值值时时,0转转成成False,非非0值值转转成成True;当当Boolean值值转转换换为为其其他他类类型型数数据据时,时,False转成转成0,True转成转成-1。44VBA编程基础:常量、变量、运编程基础:常量、变量、运算符和表达式算符和表达式逻辑运算符:逻辑运算符:And、Or、Not 例如:例如:Dim result As Booleanresult=(87 And 95=2)result=(Chinaaaa)result=(87 Or 95=2)result=(ChinaChinese Or ab7 Or 95=2)result=Not(ChinaChinese Or ab连接运算符连接运算符关关系运算符系运算符逻辑运算符逻辑运算符例,表达式:例,表达式:y Mod 4=0 And y Mod 1000 Or y Mod 400=0思考:变量思考:变量y的值分别为的值分别为1900、2000、2008时,表达式的值是什么时,表达式的值是什么?47VBA程序流程控制语句程序流程控制语句VBA程程序序语语句句按按照照功功能能可可分分为为声声明明语语句句和和执执行行语语句句两两类类,声声明明语语句句用用于于给给变变量量、常常量量或或过过程程定定义义命命名名,执执行行语语句句用用于于执执行行各各种种运运算算、调调用用过过程程和和实实现现流流程程控控制制。执执行行语语句句又又可可分分为为顺顺序序结结构构、条条件件结结构构和循环结构三类。和循环结构三类。48VBA程序流程控制语句程序流程控制语句n语句书写规定语句书写规定通通常常将将一一条条语语句句写写在在一一行行,一一行行写写不不下下时时,可可用用续行符续行符“_”将语句剩余部分写在下一行。将语句剩余部分写在下一行。一行可以写几个语句,语句之间用冒号一行可以写几个语句,语句之间用冒号“:”分隔。分隔。n注释语句注释语句用关键字用关键字 Rem 实现注释:实现注释:Rem 注释内容注释内容 注注意意:如如果果“Rem 注注释释内内容容”放放在在语语句句之之后后,需需用冒号隔开。例如:用冒号隔开。例如:x=25:Rem 为变量为变量x赋值赋值用单引号用单引号 实现注释:实现注释:注释内容注释内容n声明语句声明语句49VBA程序流程控制语句程序流程控制语句n赋值语句赋值语句使用格式:使用格式:Let 变量名变量名=表达式表达式功能:将右边表达式的值赋给左边的变量。功能:将右边表达式的值赋给左边的变量。例:例:x=3:y=x+5:x=y+7n标号和标号和GoTo语句语句使用格式:使用格式:GoTo 标号标号功功能能:无无条条件件转转移移到到标标号号所所标标示示的的位位置置继继续续执行。执行。应尽量避免使用应尽量避免使用GoTo语句语句50VBA程序流程控制语句程序流程控制语句n条件语句条件语句根据根据条件表达式的值来选择程序运行语句条件表达式的值来选择程序运行语句主要包括主要包括If语句和语句和Select Case语句语句If语句的单分支结构语句的单分支结构一般格式:一般格式:If 条件表达式条件表达式 Then 语句序列语句序列 End If语语句句执执行行过过程程:先先判判断断条条件件表表达达式式,若若为为真真,就就执执行行语语句句序序列列;否否则则,直直接接执执行行End If后面的语句。后面的语句。51VBA程序流程控制语句程序流程控制语句例:键盘输入一个整数,输出该数的绝对值。例:键盘输入一个整数,输出该数的绝对值。Dim num As Integernum=CInt(InputBox(请输入整数请输入整数,输入输入)If num=0 Then y=3*x+6Else y=-x*x+2*x-8End IfMsgBox 计算结果是:计算结果是:&y54VBA程序流程控制语句程序流程控制语句If语句的多分支结构语句的多分支结构一般格式:一般格式:If 条件表达式条件表达式1 Then 语句序列语句序列1 ElseIf 条件表达式条件表达式2 Then 语句序列语句序列2 ElseIf 条件表达式条件表达式n-1 Then 语句序列语句序列n-1 Else 语句序列语句序列n End If语语句句执执行行过过程程:先先判判断断条条件件表表达达式式1,若若为为真真,则则执执行行语语句句序序列列1;否否则则,再再判判断断条条件件表表达达式式2,若若为为真真,则则执执行行语语句句序序列列2;否否则则,;若若前前面面n-1个个条条件件表表达达式式均均为为假假,则则执执行行语语句序列句序列n。55VBA程序流程控制语句程序流程控制语句例:计算例:计算Dim x,y As Doublex=CDbl(InputBox(请请输输入入数数据据,输入输入)If x0 Then y=x-7ElseIf x=0 Then y=2Else y=3*x*xEnd IfMsgBox 计算结果是:计算结果是:&y56VBA程序流程控制语句程序流程控制语句If语句的嵌套语句的嵌套 在在If语语句句中中又又包包含含有有一一个个或或多多个个If语语句句称称为为If语句的嵌套。请说出以下两段程序的功能:语句的嵌套。请说出以下两段程序的功能:例例1:If(a0)Then If(b0)Then MsgBox a=&a&Chr(10)&b=&b End If End If功能:如果功能:如果a,b都是正数都是正数,则输出则输出a,b57VBA程序流程控制语句程序流程控制语句例例2:If a0 Then If b0 Then MsgBox a=&a&Chr(10)&b=&b Else MsgBox a=&a End If Else If b0 Then MsgBox b=&b End If End If功能:功能:输出输出a,b中的正数中的正数58VBA程序流程控制语句程序流程控制语句注意:注意:Else与与If必须成对出现,且必须成对出现,且Else总是与最近的总是与最近的一个未配对的一个未配对的If匹配。匹配。Dim a,b,c As Integera=2:b=1:c=2If a Then If b0 Then c=0 Else c=c+1 End IfEnd IfMsgBox c=&cDim a,b,c As Integera=2:b=1:c=2If a Then If b=CInt(ary(1)Then If CInt(ary(0)=CInt(ary(2)Then max=CInt(ary(0)Else max=CInt(ary(2)End IfElse If CInt(ary(1)=CInt(ary(2)Then max=CInt(ary(1)Else max=CInt(ary(2)End IfEnd IfMsgBox 输入的输入的3个整数中最大值是:个整数中最大值是:&max60VBA程序流程控制语句程序流程控制语句Select Case语句语句一般格式:一般格式:Select Case 表达式表达式 Case 表达式列表表达式列表1 语句陈述语句陈述1 Case 表达式列表表达式列表2 语句陈述语句陈述2 Case Else 语句陈述语句陈述n End Select61VBA程序流程控制语句程序流程控制语句语语句句执执行行过过程程:如如果果表表达达式式匹匹配配某某个个Case子子句句的的表表达达式式,则则在在Case子子句句之之后后,直直到到下下一一个个Case子子句句的的语语句句陈陈述述会会被被执执行行;如如果果是是最最后后一一个个子子句句,则则会会执执行行到到End Select,然然后后控控制制权权会会转转移移到到End Select之之后后的的语语句句。如如果果表表达达式式匹匹配配一一个个以以上上的的Case子子句句中中的的表表达达式式,则则只只有有第第一一个个匹匹配配后后面面的的语语句句会会被被执执行行。Case Else子子句句用用于于指指明明最最后后一一个个语语句句陈陈述述,当当表表达达式式和和所所有有的的Case子子句句中中的的表表达达式式都都不不匹匹配配时时,则则会会执执行行这这些些语语句句。虽虽然然不不是是必必要要的的,但但是是在在Select Case区区块块中中最最好好还还是是加加上上Case Else语语句句来来处处理理不不可可预预见见的的表表达达式式的的值值。如如果果没没有有Case子子句句的的表

    注意事项

    本文(第8讲 模块.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开