第8章模块与VBA编程基础课件.ppt

上传人(卖家):三亚风情 文档编号:3526400 上传时间:2022-09-11 格式:PPT 页数:168 大小:4.34MB
下载 相关 举报
第8章模块与VBA编程基础课件.ppt_第1页
第1页 / 共168页
第8章模块与VBA编程基础课件.ppt_第2页
第2页 / 共168页
第8章模块与VBA编程基础课件.ppt_第3页
第3页 / 共168页
第8章模块与VBA编程基础课件.ppt_第4页
第4页 / 共168页
第8章模块与VBA编程基础课件.ppt_第5页
第5页 / 共168页
点击查看更多>>
资源描述

1、第第8章章 模块与模块与VBA编程基础编程基础考试大纲考试大纲VBA程序设计基础程序设计基础 1.面向对象程序设计的基本概念 2.模块的基本概念 (1)类模块 (2)标准模块 3.创建模块 (1)创建VBA模块 (2)编写常用事件代码 Click,Load,Init,GetFocus,LostFocus 4.VBA编程基础 (1)常量,变量,常用内部函数,表达式 (2)VBA程序流程控制:顺序控制,选择控制,循环控制 (3)过程的定义与调用:子过程,函数过程,参数传递 Contents模块的基本概念模块的基本概念创建模块创建模块VBA流程控制语句流程控制语句412VBA程序设计基础程序设计基础

2、35过程调用和参数传递过程调用和参数传递6VBA程序运行错误处理程序运行错误处理7VBA程序的调试程序的调试 模块是模块是Access数据库中的一个重数据库中的一个重要对象,它以要对象,它以VBA(Visual Basic for Applications)为基础编写以函为基础编写以函数过程(数过程(FunctionFunction)或子过程为单元)或子过程为单元的集合方式存储。的集合方式存储。Access中,模块分为中,模块分为类模块类模块和和标标准模块准模块两种类型。两种类型。8.1 模块的基本概念模块的基本概念*模块和宏区别“模块”和“宏”有什么区别?使用“宏”更加简单,不需要编程,而是

3、用“模块”,要求对编程有基本知识,比较复杂。“模块”的运行速度比较快,而“宏”运行速度比较慢。“宏”的每个基本操作在VBA中都有相应的等效命令,如果在“模块”中使用这些语句就可以实现所有的单独的“宏”命令,所以“模块”的功能比“宏”更加强大。类模块是含有类模块是含有类类定义的模块,包括其属性、定义的模块,包括其属性、事件和方法的定义。与窗体、报表、控件等紧密事件和方法的定义。与窗体、报表、控件等紧密关联,如:关联,如:都是都是类类模块模块。8.1.1 类模块类模块 8.1.1 类模块类模块 8.1.1 类模块类模块例:form1 标准模块作用是合理组织程序或控制程序执标准模块作用是合理组织程序

4、或控制程序执行流程,纯代码,不与任何对象(窗体、报表、行流程,纯代码,不与任何对象(窗体、报表、控件等)相关联,可放置在数据库中的任何位置,控件等)相关联,可放置在数据库中的任何位置,可以被工程内数据库对象调用。可以被工程内数据库对象调用。8.1.2 标准模块标准模块 标准模块中的标准模块中的公共变量和公共过程公共变量和公共过程具有局部特具有局部特性,其作用范围在整个应用程序里,而性,其作用范围在整个应用程序里,而生命周生命周期期则是伴随着应用程序的运行而开始,关闭而则是伴随着应用程序的运行而开始,关闭而结束。结束。8.1.2 标准模块标准模块8.1.2 标准模块标准模块例:form1uAcc

5、ess宏实质上就是宏实质上就是VBA程序,宏的操作都是由程序,宏的操作都是由VBA代代码实现的。码实现的。u宏的用法简单,上手容易,比较适合没有编程基础的用户宏的用法简单,上手容易,比较适合没有编程基础的用户开发普通应用程序。宏的不足是功能较弱、运行效率较差。开发普通应用程序。宏的不足是功能较弱、运行效率较差。u Access模块中内嵌的模块中内嵌的VBA功能强大,具有较完功能强大,具有较完 善的语法体系和强大的开发功能。它采用目前主流善的语法体系和强大的开发功能。它采用目前主流 的面向对象机制和可视化编程环境,适用于开发的面向对象机制和可视化编程环境,适用于开发 高级高级Access数据库应

6、用系统。数据库应用系统。8.1.3 将宏转换为模块将宏转换为模块 每一个宏操作都有自己对应的VBA代码,根据需要我们可以把宏转换为模块。8.1.3 将宏转换为模块将宏转换为模块 过程是模块的组成单元,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。8.2 创建模块创建模块声明:声明(定义)变量声明:声明(定义)变量过程过程(若干个):过程是模块的组成单元,分若干个):过程是模块的组成单元,分2 2种:种:子子(Sub)(Sub)过程过程 子过程没有返回值,它的定义格式如下:子过程没有返回值,它的定义格式如下:其中的程序代码表示要完成的一系列操作。调用其中的程序代码

7、表示要完成的一系列操作。调用子过程用子过程用 8.2 创建模块创建模块 函数函数(Function)(Function)函数过程又称为函数过程又称为FunctionFunction过程,函数过程有返回过程,函数过程有返回值,它的值,它的定义格式如下。定义格式如下。调用函数过程时,调用函数过程时,。8.2 创建模块创建模块8.2 创建模块创建模块二二 在模块中执行宏在模块中执行宏 在模块的过程定义中,使用在模块的过程定义中,使用DocmdDocmd对象的对象的RunMacroRunMacro方法,方法,执行宏,其格式:执行宏,其格式:Docmd.RunMacro MacroName,Repeat

8、Count,RepeatExpressionDocmd.RunMacro MacroName,RepeatCount,RepeatExpression MacroNameMacroName:当前数据库中宏的名字;:当前数据库中宏的名字;RepeatCountRepeatCount:可选项,计算宏运行次数的整数值;:可选项,计算宏运行次数的整数值;RepeatExpressionRepeatExpression:可选项,数值表达式,在每次运:可选项,数值表达式,在每次运行宏时进行计算,结果为行宏时进行计算,结果为FalseFalse,停止运行宏。,停止运行宏。8.2 创建模块创建模块8.3 VB

9、A程序设计基础程序设计基础 VBA 是微软Office中的内置编程语言,其语法与VB的兼容,在Access程序设计中,当某些操作不能使用其他Access对象实现,或者实现较难时,就可利用VBA语言编写程序代码。8.3.1 8.3.1 面向对象程序设计的基本概念面向对象程序设计的基本概念1.集合(类)和对象集合(类)和对象 集合集合:含有相同属性的事物的总称成为集合,比如所有的:含有相同属性的事物的总称成为集合,比如所有的学生就构成一个集合(类)。学生就构成一个集合(类)。对象:对象:集合中的某一个实体,例如学生集合中的某一个学集合中的某一个实体,例如学生集合中的某一个学生就是一个对象。生就是一

10、个对象。在自然界中,一个对象就是一个实体,如一辆汽车就是一在自然界中,一个对象就是一个实体,如一辆汽车就是一个对象。在面向对象的程序设计中,对象代表应用程序中个对象。在面向对象的程序设计中,对象代表应用程序中的元素,如表、窗体、按钮等。的元素,如表、窗体、按钮等。Access有几十个对象,其中包括有几十个对象,其中包括对象和对象集合对象和对象集合。所有。所有对象和对象集合按对象和对象集合按层次结构层次结构组织,处在最上层的是组织,处在最上层的是Application对象对象,即,即Access应用程序,其他对象或对象应用程序,其他对象或对象集合都处在它的下层或更下层。集合都处在它的下层或更下层

11、。8.3.1 面向对象程序设计的基本概念2.属性和方法属性和方法 属性属性是对象的特征。如汽车有颜色和型号属性,按钮有标是对象的特征。如汽车有颜色和型号属性,按钮有标题和名称属性。对象的类别不同,属性会有所不同。同类题和名称属性。对象的类别不同,属性会有所不同。同类别对象的不同实例,属性也有差异。例如,同是命令按钮,别对象的不同实例,属性也有差异。例如,同是命令按钮,名称属性不允许相同。名称属性不允许相同。描述对象的性质和行为,引用方式:描述对象的性质和行为,引用方式:对象对象.属性属性或者或者对象对象.行为行为DoCmd对象对象:通过调用包含在内部的方法来实现通过调用包含在内部的方法来实现V

12、BA编程编程中对中对Access的操作。的操作。具体调用格式具体调用格式:DoCmd.OpenReportDoCmd.OpenReport “报表名报表名”,视图,视图,查询名称查询名称,条件条件 DoCmd.OpenReport“教师信息教师信息“Docmd是Access的一个特殊对象,用来调用内置方法,在程序中实现对Access的操作,诸如打开窗口、关闭窗体、打开报表、关闭报表等。DoCmd 对象的大多数方法都有参数,有些参数是必需的,有些则是可选的。若省略可选参数,参数将采用默认值。DocmdDocmd对象对象 (1)用DoCmd 对象打开窗体 格式:DoCmd.OpenForm 窗体名

13、 功能:用默认形式打开指定窗体。例如:DoCmd.OpenForm 文本框练习(2 2)用)用DoCmdDoCmd 对象关闭窗体对象关闭窗体 格式格式1 1:DoCmd.Close acFormDoCmd.Close acForm,窗体名窗体名 功能:关闭指定窗体。功能:关闭指定窗体。例如:例如:DoCmd.Close acFormDoCmd.Close acForm,文本框练习文本框练习 格式格式2 2:DoCmd.CloseDoCmd.Close 功能:关闭当前窗体。功能:关闭当前窗体。(3 3)用)用DoCmdDoCmd 对象打开报表对象打开报表 格式:格式:DoCmd.OpenRepo

14、rtDoCmd.OpenReport 报表名报表名,acViewPreview,acViewPreview 功能:用预览形式打开指定报表。功能:用预览形式打开指定报表。例如:例如:DoCmd.OpenReportDoCmd.OpenReport 工资报表工资报表,acViewPreview,acViewPreviewDocmdDocmd对象对象 (4)用DoCmd 对象关闭报表 格式1:DoCmd.Close acReport,报表名 功能:关闭指定报表。例如:DoCmd.Close acReport,工资报表 格式2:DoCmd.Close 功能:关闭当前报表。DocmdDocmd对象对象

15、(5)用DoCmd 对象运行宏 格式:DoCmd.RunMacro 宏名 功能:运行指定宏。例如:DoCmd.RunMacro 宏1(6)用DoCmd 对象退出Access。格式:DoCmd.Quit 功能:关闭所有Access对象和Access本身。DocmdDocmd对象对象 (1)在窗体中建立5个按钮名称分别为c1、c2、c3、c4、c5标题分别为“打开窗体”、“关闭窗体”、“打开报表”、“关闭报表”、“退出Access”。实例:使用实例:使用DoCmdDoCmd对象对象(2)c1代码:DoCmd.OpenForm 教师基本情况“(3)c2代码:DoCmd.Close acForm,教师

16、基本情况“(4)c3代码:DoCmd.OpenReport “按年龄段统计报表,acViewPreview(5)c4代码:DoCmd.Close acReport,按年龄段统计报表“(6)c5代码:DoCmd.Quit例:使用例:使用DoCmdDoCmd对象对象8.3.1 面向对象程序设计的基本概念面向对象程序设计的基本概念3.事件和事件过程事件和事件过程事件:Access窗体或者报表及其上控件等对象可以“辨识”的动作,如单击、双击、某一个按键等。事件过程:为某个事件编写VBA代码过程,来完成指定的动作。在类模块每一个过程的开始行,都显示对象名和事件名。如:Private Sub c1_Cli

17、ck()。例:动态设置控件属性(1)在窗体中建1个文本框名称为t1。(2)在窗体中建1个标签名称为b1标题为“欢迎你!”。(3)在窗体中建3个命令按钮名称分别为c1、c2、c3标题 分别为“红色”、“绿色”、“蓝色”。8.3.1 面向对象程序设计的基本概念面向对象程序设计的基本概念3.事件和事件过程事件和事件过程(4)设置各按钮的前景色,在属性窗口可查看颜色值。(5)c1的click事件代码:t1.BackColor=255 b1.ForeColor=255(6)c2的click事件代码:t1.BackColor=33792 b1.ForeColor=33792(7)c3的click事件代码:

18、t1.BackColor=16711680 b1.ForeColor=16711680 执行结果:8.3.2 VBE8.3.2 VBE编程环境编程环境1.进入进入VBE编辑环境编辑环境 类模块:类模块:1)定位窗体或者报表,单击工具栏)定位窗体或者报表,单击工具栏“代码代码”按钮;按钮;2)或者通过窗体、报表或者控件)或者通过窗体、报表或者控件“属性属性”窗口中窗口中“事件事件”选选项卡的项卡的“事件过程事件过程”项进入。项进入。标准模块:标准模块:1)已有模块已有模块,在数据库窗体选择,在数据库窗体选择“模块模块”对象,双击要查看对象,双击要查看的模块;的模块;2)新建模块新建模块,在数据库

19、窗体选择,在数据库窗体选择“模块模块”对象,单击对象,单击“新建新建”按钮;按钮;3)在数据库对象窗体中,单击)在数据库对象窗体中,单击“工具工具”菜单菜单“宏宏”“Visual basic Visual basic 编辑器编辑器”。工具栏工具栏8.3.2 Visual Basic编程环境编程环境 Access视图视图用于从用于从VBE切换到数据库窗口切换到数据库窗口插入模块插入模块插入新的模块插入新的模块运行子过程运行子过程/用户窗体用户窗体运行模块程序运行模块程序中断运行中断运行中断正在运行的程序中断正在运行的程序重新设置重新设置结束正在运行的程序,重新进入模块设计状态结束正在运行的程序,

20、重新进入模块设计状态设计模式设计模式进入和退出设计模式进入和退出设计模式工程资源管理器工程资源管理器打开工程资源管理器窗口打开工程资源管理器窗口属性窗口属性窗口打开属性窗口打开属性窗口对象浏览器对象浏览器打开对象浏览器窗口打开对象浏览器窗口 工程资源管理器,显示应用程序的所有模块文件。工程资源管理器,显示应用程序的所有模块文件。3 3个按钮:个按钮:按钮可以打开相应的代码窗口。按钮可以打开相应的代码窗口。按钮可以打开相应的对象窗口。按钮可以打开相应的对象窗口。可以隐藏或显示对象的分类文件夹。可以隐藏或显示对象的分类文件夹。代码窗口主要是用来编写、显示以及编辑代码窗口主要是用来编写、显示以及编辑

21、VBAVBA代码,代码,如下图所示。如下图所示。8.3.2 Visual Basic编程环境编程环境(3 3)代码窗口代码窗口对象浏览器对象浏览器快速访问子过程快速访问子过程自动显示提示信息自动显示提示信息F1F1帮助帮助代码窗口代码窗口 列出了所选对象的属性,由列出了所选对象的属性,由“对象对象”框和框和“属性属性”列表组列表组成。成。:用于列出当前所选的对象。用于列出当前所选的对象。:按字母或分类对对象属性进行排序按字母或分类对对象属性进行排序。可以在属性窗口中直接用前面用到的方法设置可以在属性窗口中直接用前面用到的方法设置 对象的属性(静态设置方法)。对象的属性(静态设置方法)。可以在代

22、码窗口中用可以在代码窗口中用VBAVBA代码编辑对象的属代码编辑对象的属 性(动态设置方法)。性(动态设置方法)。用来进行快速的表达式计算、简单方法的操作寄进行程序测用来进行快速的表达式计算、简单方法的操作寄进行程序测试的工作窗口。试的工作窗口。8.3.2 Visual Basic编程环境编程环境二、进入二、进入VBE编程环境编程环境VBE将模块分成对象、标准和类模块。进入其编辑环境有多种方式:一、对象模块:可以直接定位到窗体或报表,然后单击视图下的“代码”按钮进入;或定位到窗体、报表和控件上通过指定对象事件处理过程进入。其方法有两种:(1)右键单击控件对象,单击快捷菜单上的“事件生成器命令”

23、,打开“事件生成器”对话框,选择其中的“代码生成器”,单击“确定”按钮即可进入;(2)单击属性窗口的“事件”选项卡,选中某个事件直接单击属性右侧的“”按钮,打开“事件生成器”对话框,选择其中的“代码生成器”,单击“确定”按钮即可进入。二、进入二、进入VBE编程环境编程环境二、对于标准模块:有3种方法进入:(1)对于已存在的标准模块,只需从数据库窗体对象列表上选择“模块”,双击要查看的模块对象即可进入;(2)要创建新的标准模块,需要从数据库窗体对象列表上选择“模块”,单击工具栏上的“新建”按钮即可进入;(3)在数据库对象窗体中,选择“工具”菜单里“宏”子菜单的“Visual Basic编辑器”选

24、项即可进入。使用Alt+F11组合键,可以方便的在数据库窗口和VBE之间进行切换。三、三、VBE环境中编写环境中编写VBA代码代码 VBA代码是由语句组成的,一条语句就是一行代码。例如 intCount=3 将3赋值给变量intCount Debug.Print intCount 在立即窗口打印变量intCount的值3三、三、VBE环境中编写环境中编写VBA代码代码 Access的VBE编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程,再从该对象过程列表选项中选

25、择某个事件名称,系统会自动生成相应的事件过程模块,用户添加代码即可。双击工程窗口中的任何类或对象都可以在代码窗口中打开相应代码进行编辑处理 四、程序语句书写原则四、程序语句书写原则1 语句书写规定通常一个语句写在一行,若要分行用续行符”-”;”:“将一行中多条语句隔开;若语句中出现红色表示有错误。四、程序语句书写原则四、程序语句书写原则2 注释语句一个好的程序都要有注释语句。在VBA中使用下列格式:Rem 注释语句(单引号)注释语句 Rem 定义两个变量 Dim Str1,Str2 Str1=“beijing”Str2=“Shanghai”四、程序语句书写原则四、程序语句书写原则3 采用缩进格

26、式书写程序 编辑缩进(或凸出)4 F1帮助信息一、标准数据类型一、标准数据类型 VBA提供了多种数据类型的支持,这样也是为了大家进行编程提供方便。各种数据类型所占的存储空间、所表示数据范围大小、以及所支持的数据运算不同。数据类型可以分为数值型、布尔型、日期型、字符型、对象型、变体型和用户自定义的数据类型。8.3.3 8.3.3 数据类型和数据库对象数据类型和数据库对象数据类数据类型型类型标识类型标识符符号号字段类型字段类型取值范围取值范围整型整型Integer%字节字节/整数整数/是是/否否-3276832767之间的整数之间的整数长整型长整型Long&长整数长整数/自动编号自动编号-2147

27、4836482147483647之间的之间的整数整数单精度单精度Single!单精度单精度负数:负数:-3.402823E38-1.401298E-45正数:正数:1.401298E-453.402823E38双精度双精度Double#双精度双精度负数:负数:-1.79769313486232E308 -4.94065645841247E-324正数:正数:4.94065645841247E-324 1.79769313486232E308货币货币Currency货币货币-922337203685477.5808 922337203685477.5807字符串字符串String$文本文本065

28、535个字符个字符布尔布尔Boolean逻辑值逻辑值true或或false日期日期Date日期日期/时间时间January 1,100到到December 31,9999变体类变体类型型Variant任何任何January 1/10000(日期日期)数字和双精度同数字和双精度同,文本和字符串同文本和字符串同数据类型转换函数数据类型转换函数函数函数转换后类转换后类型型说明说明CByte(xCByte(x)ByteBytex x取值范围同取值范围同ByteByte,小数部分四舍五入,超出,小数部分四舍五入,超出范围显示范围显示“溢出溢出”CInt(xCInt(x)IntegerIntegerx x

29、取值范围同取值范围同IntegerInteger,小数部分四舍五入,小数部分四舍五入CLng(xCLng(x)LongLongx x取值范围同取值范围同LongLong,小数部分四舍五入,小数部分四舍五入CSng(xCSng(x)SingleSinglex x取值范围同取值范围同SingleSingleCDbl(xCDbl(x)DoubleDoublex x取值范围同取值范围同DoubleDoubleCCur(xCCur(x)CurrencyCurrencyx x取值范围同取值范围同CurrencyCurrencyCBool(xCBool(x)BooleanBooleanx x取值范围是任何有

30、效数字或字串取值范围是任何有效数字或字串CDate(xCDate(x)DateDatex x取值范围是任何有效日期表达式取值范围是任何有效日期表达式CStr(xCStr(x)StringString无无CVar(xCVar(x)VariantVariantx x如果是数值范围同如果是数值范围同DoubleDouble,否则,与,否则,与StringString相同相同 例:例:在立即窗口中计算函数值在立即窗口中计算函数值(1)在VBE界面“视图”菜单“立即窗口”,显示立即窗口。(2)输入表达式x=“true”回车输入表达式y=“false”回车输入表达式?x+y回车,显示结果为:truefal

31、se。(3)输入表达式?cbool(x)+cbool(y)回车,显示结果为:-1。说明:每行写完后必须回车才能生效。问号与print语句相同,在立 即窗口显示计算结果。数据类型数据类型-布尔型型 布尔数据类型以16位数字形式存储。布尔数据类型只有True和False两个值。布尔数据支持逻辑与、或、非等运算。当其他的数值类型转化为布尔型时,0转化为False,其他转化为True。当布尔型转化为其他的数值类型时,False转化为 0,True转化为-1。标识符:标识符:Boolean数据类型数据类型-日期型型 日期数据类型以64位浮点数值形式存储。日期数据类型前后必须用#封住如:#2012/4/1

32、#日期变量根据计算机中的短日期格式显示,时间则根据计算机的时间格式显示。当其他数值类型转化为时间类型时,整数部分表示日期,小数部分表示时间,负数表示1899年12月31日以前的日期。标识符:标识符:Date数据类型数据类型-变体型型 变体数据类型所代表的数据类型是不确定的,可以成为任何类型的变量。变体的数据类型的变量可以存储特殊值,如:Empty,Error,Nothing,Null等。变体数据类型中的数值类型可以代表任何的整型和实型数。可以用VarType和TypeName函数检查变体中的数据标识符:标识符:Variant数据类型数据类型-字符型型 每个字符以一个字节(8位)进行表示,对应的

33、数值的范围是0255。字符中的前128个字符对应于ASCII字符集中的定义,字符集后128个字符代表特定的字符。字符数据类型两种:变长字符和定长字符。变长字符可以包括的字符数量为0到约20亿个定长字符可以包括的字符数量为1到约64K个字符。标识符:String数据类型数据类型-数值型型 VBA中数值型包括整型、长整型、单精度、双精度和货币等。数据的存储从8位到64位不等。数据支持加、减、乘、除等运算。货币类型的数据保持小数点左边15位数字,右边4位数字,以满足精度的需要。整型长整型单精度双精度货币integer longsingledouble currency标识符二二 用户用户定义的数据类

34、型数据类型 前面所介绍的数据类型都是原子型的数据类型,即不可以再分割的数据类型,使用Type语句可以定义任何结构型数据类型,如:定义格式:Type 数据类型名 域名1 as 数据类型 域名2 as 数据类型 End Type二二 用户用户定义的数据类型数据类型 例如:Type newstudent txtno As String*7 txtname As String txtsex As string*1 txtage As Integer End Type 这样就定义了“newstudent”这种数据类型,它包括“编号“、“姓名”、“性别”、“年龄”四个数据域。二二 用户用户定义的数据类型数

35、据类型 用户定义数据类型变量的取值可指明变量名及分量名,两者用句号分开,如:Dim NewStu as NewStudent NewStu.txtSno=“980306”NewStu.txtName=“冯伟冯伟”NewStu.txtSex=“女女”NewStu.txtAge=20二二 用户用户定义的数据类型数据类型 也可以使用With简化程序的重复部分,将上面的变量赋值:With NewStu .txtSno=“980306”.txtName=“冯伟冯伟”.txtSex=“女女”.txtAge=20 End With三三 数据库对象数据库对象 如数据库、表、查询、窗体、报表等也有对应的VBA对

36、象数据类型,这些数据类型由引用的对象库所定义,对应关系见:P208 表8.38.3.4 8.3.4 常量和变量常量和变量一、变量一、变量在VBA中变量的概念是怎么样呢?变量是程序运行时值会发生变化的数据。变量的命名规则与字段命名一样,不能使用VBA的关键字。在VBA中不必先声明变量再使用变量,但是先声明再使用是良好编程的习惯。变量的数据类型可以是前面所介绍的数据类型中的任何一种,也可以是用户自定义的数据类型。变量变量-变量名命名原则变量的命名原则有以下几点:第一个字母必须是英文字母。不能在变量名中使用空格、句点等符号。变量名的长度不能超过255个字符。变量名不区分大小写。不能在某一范围内的相同

37、层次中使用重复的变量名。变量不能与函数名、过程名相同。以下是合法的变量名:a,x,x3,BOOK_1,sum5以下是非法的变量名:3s s*T -3x bowy-1 if 一一 变量的声明变量的声明1 1、显式声明、显式声明 VBA中定义变量的格式为:Dim 变量名 AS 类型 格式中Dim是一个VBA命令,此处用于定义变量;As是关键字,此处用于指定变量的数据类型。例如:Dim x as Integer x为整型变量 Dim x%,y!x是整型,y为单精度一一 变量的声明变量的声明2 2、隐含声明、隐含声明 VBA允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的

38、变量都是Variant数据类型。例如:Dim m,n,NewVar=258m,n为变体Variant变量,NewVar为Variant类型变量,其值为258。二二 强制声明强制声明在默认情况下,在默认情况下,VBA允许在代码中使用未声明的允许在代码中使用未声明的变量,如果在模块设计窗口的顶部变量,如果在模块设计窗口的顶部“通用通用声声明明”区域中区域中,加入语句:,加入语句:Option Explicit 说明:说明:强制要求所有变量强制要求所有变量必须定义才能使用必须定义才能使用。这种方法只能为当前模块设置了自动变量声明这种方法只能为当前模块设置了自动变量声明功能,如果想为所有模块都启用此功

39、能,可以功能,如果想为所有模块都启用此功能,可以单击菜单命令单击菜单命令“工具工具”下下“选项选项”对话框中,对话框中,选中选中“要求变量声明要求变量声明”选项即可。选项即可。三三 变量的作用域变量的作用域1 1、局部范围(、局部范围(LocalLocal)变量定义在模块的过程内部,过程代码执行时才可见。在子过程或函数过程中定义的或直接使用的变量作用范围都是局部的。在子过程或函数内部使用Dim、StaticAs关键字说明的变量就是局部范围的。2 2、模块范围(、模块范围(ModuleModule)变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程或函数过程中可见。在模块的通

40、用说明区,用Dim、Static、PrivateAs关键字定义的变量作用域都是模块范围。三三 变量的作用域变量的作用域3 3、全局范围(、全局范围(PublicPublic)变量定义在标准模块的所有过程之外的起始位置,运行时在类模块和标准模块的所有子过程或函数过程中都可见。在标准模块的变量定义区域,用PublicAs 或 GlobalAs说明的变量就属于全局的范围。变量的持续时间(生命周期)是从变量定义语句所在的过程第一次运行,到程序代码执行完毕并将控制权交回调用它的过程为止的时间。四数据库对象变量四数据库对象变量Access建立的数据库对象及其属性,均可被看成是VBA程序代码中的变量及其指定

41、的值来加以引用。例如,Access中窗体和报表对象的引用格式为:Forms!窗体名称!控件名称.属性名称或 Reports!报表名称!控件名称.属性名称关键字Forms或Reports分别表示窗体或报表对象集合。感叹号“!”分隔开对象名称和控件名称。“属性名称”部分缺省,则为控件基本属性。如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。四数据库对象变量四数据库对象变量如:Forms!学生管理!编号=”980306“Forms!学生管理!编 号=”980306“对象名称含空格如果要多次引用对象可以用Set关键字来建立控件对象的变量。如:Dim txtname As Control S

42、et txtname=Forms!学生管理!姓名 txtname=”冯伟“返一个特殊的模块变量一个特殊的模块变量 本地窗口打开时,自动生成一个名为本地窗口打开时,自动生成一个名为“Me”Me”的特殊模块变量。的特殊模块变量。对于类模块,定义为对于类模块,定义为MeMe。MeMe是对象的引用,引用当前模块中当前类是对象的引用,引用当前模块中当前类的实例。的实例。MeMe变量不需要专门定义,直接使用即可。变量不需要专门定义,直接使用即可。例如,用代码定义例如,用代码定义“学生信息学生信息”窗体中窗体中“Lab”Lab”标签的标题属性,标签的标题属性,以下两种方法效果是一样的:以下两种方法效果是一样

43、的:标准方法:标准方法:Forms!Forms!学生信息学生信息!Lab.Caption!Lab.Caption=学生信息浏览学生信息浏览 常用方法:常用方法:Me!Lab.CaptionMe!Lab.Caption=学生信息浏览学生信息浏览 例:用例:用staticstatic、dimdim和和publicpublic定义变量定义变量(1 1)在窗体中建立)在窗体中建立2 2个文本框个文本框分别命名为分别命名为t1t1和和t2t2附加标签附加标签的标题分别为的标题分别为“静态变量静态变量”和和“局部变量局部变量”。(2 2)在窗体中建立命令按钮)在窗体中建立命令按钮名称为名称为c1c1标题为

44、标题为“计算计算”。(3 3)c1c1的的clickclick代码:代码:Static a As IntegerStatic a As Integer Dim b As Integer Dim b As Integer a=a+1:b=b+1:c=c+1 a=a+1:b=b+1:c=c+1 T1=a:T2=b:T3=c T1=a:T2=b:T3=c 新建一个模块,添加代码:新建一个模块,添加代码:Public c As IntegerPublic c As Integer(4 4)执行时不断单击命令按钮,观察值的变化。然后关闭)执行时不断单击命令按钮,观察值的变化。然后关闭窗体,再次打开,再观

45、察值的变化窗体,再次打开,再观察值的变化 五五 数组数组 数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,使用数组必须先定义数组。通常用Dim语句来定义数组,定义格式为:Dim 数组名(to)As 缺省情况下,下标下限为0,数组元素从“数组名(0)”至“数组名(下标上限)”;如果使用to选项,则可以安排非0下限。五五 数组数组例如,dim score(10)as Integer 定义了11个整形数构成的数组,数组元素为score(0)至score(10)再如,dim score(1 to 10)as Integer定义了10个元素的整型数组

46、,数组元素为score(1)至 score(10)注:(1)所有数组元素在内存连续存放 (2)根据下标区分数组元素五五 数组数组关于数组的定义,还有下面的几点说明:(1)定义数组时数组名的命名规则与变量名的命名规则相同。(2)一般在定义数组时应给出数组的上界和下界。但也可以省略下界,缺省 为0。例如,Dim a(10)As Single默认情况下,数组a由11个元素组成。若希望下标从1开始,可在模块的通用声明段使用Option Base语句声明。其使用格式为Option Base 0|1 后面的参数只能取 0 或 1五五 数组数组(3)和不能使用变量,必须是常量,常量可以是字面常量或符号常量,

47、一般是整型常量。(4)如果省略As子句,则数组的类型为Varient变体类型。二维数组的定义:格式为:Dim 数组名(to,to)As 例如,Dim c(1 To 3,1 To 4)As Single五五 数组数组 VBA还支持动态数组,定义和使用方法是:先用Dim显式定义数组但不指明数组元素数目,然后用ReDim关键字决定数组包含的元素数,以建立动态数组。创建方法:Dim NewArray()As LongReDim NewArray(9,9,9)如果想释放数组占用的空间可将ReDim设置0个元素。六六 变量标识命名法则变量标识命名法则 在编写VBA程序代码时,会用到大量的变量名称和不同的数

48、据类型。对于控件对象,可以用VBA的Set关键字将每个命名的控件对象指定为一个变量名称。目前,VB和VBA均推荐使用Hungarian符号法作为命名法则。该方法也被广泛用在C和C+等一些程序中。Hungarian符号法使用一组代表数据类型的码。用小写字母作为变量名的前缀。见P212 表8.4 如七七 符号常量符号常量如果程序中多处用到某个常量,将其定义成符号常量可增加代码的可读性,也便于维护。符号常量用关键字Const来定义,格式如下:Const 符号常量名称=常量值 例如:Const PI as single=3.1415926定义了一个符号常量PI,其值为3.1415926若是在模块的声明

49、区中定义符号常量,则建立一个所有模块都可以用的全局符号常量。一般是Const前加Global或Public关键字。八八 系统常量(内部常量系统常量(内部常量/固有常量)固有常量)这是一类特殊的符号常量,Access系统内部包含若干个启动时就建立的系统常量,有True、False、Yes、No、On、Off和Null等。在编码时可以直接使用。例如:VBA类库中,vbRed代表红色,vbBlue代表蓝色。这里开始的两个字母表示所在的类库Access类库的常量以ac开始,如acForm等。ADO类库的常量以ad开始,如adOpenKeyset。例:使用符号常量和数组例:使用符号常量和数组 (1 1)

50、在窗体建文本框)在窗体建文本框名称为名称为t1t1。(2 2)在窗体建命令按钮)在窗体建命令按钮名称为名称为c1c1标题为标题为“确定确定”。(3 3)c1c1的代码:的代码:const AA=“const AA=“欢迎你欢迎你!”!”定义符号常量定义符号常量 dim b(1)As String dim b(1)As String 定义数组定义数组 b(0)=AA b(0)=AA b(1)=t1 b(1)=t1 MsgBox b(0)&Chr(13)&Chr(13)&b(1),vbInformationMsgBox b(0)&Chr(13)&Chr(13)&b(1),vbInformation

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第8章模块与VBA编程基础课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|