第8章模块和VBA程序设计ppt

上传人:hs****ma 文档编号:567711099 上传时间:2024-07-22 格式:PPT 页数:127 大小:1.96MB
返回 下载 相关 举报
第8章模块和VBA程序设计ppt_第1页
第1页 / 共127页
第8章模块和VBA程序设计ppt_第2页
第2页 / 共127页
第8章模块和VBA程序设计ppt_第3页
第3页 / 共127页
第8章模块和VBA程序设计ppt_第4页
第4页 / 共127页
第8章模块和VBA程序设计ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

《第8章模块和VBA程序设计ppt》由会员分享,可在线阅读,更多相关《第8章模块和VBA程序设计ppt(127页珍藏版)》请在金锄头文库上搜索。

1、7/22/20241第8章 模块和VBA程序设计奸镊醚依椰撒见昧侮殿衰辱避淋泵竿吼字吭耗亭灼扎锻履记匙焙舵荫扯晃第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计本章要求:本章要求: 1、了解、了解VBA编程环境;编程环境; 2、掌握、掌握VBA编程基础:常量,变量,表达式;编程基础:常量,变量,表达式; 3、掌握顺序控制,选择控制,循环控制、掌握顺序控制,选择控制,循环控制 4、了解、了解VBA模块模块本章要点:本章要点:掌握顺序控制,选择控制,循环控制掌握顺序控制,选择控制,循环控制学时安排:学时安排: 6 6学时学时( (理论)理论)+6+6学时学时( (实践)实践)第第8章

2、章 模块和模块和VBA程序设计程序设计辕侍尊侄溺耻膊血蔓愤察具秀赁似谎窝拈汇谜扩恿那更娱凯壁阔淆屎陆努第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计第第8章章 模块和模块和VBA程序设计程序设计 VBA程序设计基础 模块的概念 常用标准函数 VBA的程序结构 VBA的数据库编程 过程调用和参数传递 驮葱掀报秋褥拘指涪坯锐缠筷互来廷蔬掐棉业宗骨吩别彬劲如则貌耽础逝第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 在Access系统中,把宏、窗体和报表等对象结合起来,不用编写程序代码就可以建立功能较完善的数据库管理系统。但宏的功能是有局限性的,它只能处理一些简单的操作

3、,如果要实现功能强大的数据管理,以及灵活的控制功能,宏对象就无能为力了。这时,就需要编写程序模块来实现上述的功能。本章介绍模块的概念和用来建立模块的VBA语言的基础知识。第第8章章 模块和模块和VBA程序设计程序设计池滇整握犊整容皖褪滓彦厉毋眉硼待醉假缆渊稠液喧吼良秽蔼坡反斩挛熬第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.1 模块的概念模块的概念 模块对象是Access系统中所包含的7种对象之一,模块和宏的使用有一些相似之处。宏是由系统自动生成的程序模块,而模块对象是用VBA语言编写的,VBA是Office软件中内置的编程语言,语法与Visual Basic兼容。 1.模

4、块的分类 在Access中,模块分为类模块和标准模块两种类型。 (1)类模块 类模块包括窗体模块和报表模块,它们与各自的 窗体 或报表相关联。 窗体模块中的事件过程的代码用于响应窗体或窗体 上控件的触发事件。报表模块中的事件过程的代码用于 响应报表或报表上控件的触发事件。 耕骤疆烂啮垄耶挫凛逊粕尊贱赖菱融显拆滋木遇订梢茫抄巷呻碗专履滩疹第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.1 模块的概念模块的概念 在窗体或报表的设计视图中,可以使用下面方法打开模块代码的编辑窗口:l 工具栏上的“代码”按钮。l 为窗体或报表创建事件过程时,系统会自动打开模块代码编辑窗口。 窗体模块和

5、报表模块的作用范围在其所属窗体或报表内部,并随着窗体或报表的打开而开始,随着窗体或报表的关闭而结束。 类模块也可以不依赖窗体或报表而单独存在拣箍澈漾狄睫呼洪屡导躁住瞎阴杯氢掷响急疹豁太俩末厌钥草砸业念励轧第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.1 模块的概念模块的概念(2)标准模块 标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。标准模块和某个特定对象无关的类模块的主要区别在于其范围和生命周期。 标准模块显示在数据库窗口的“模块”对象中,窗体、报表和标准模块也都显示在“对象浏览器”对话框中。“对象浏览器”对话框用于显示与当前项

6、目有关和引用对象库中对象、属性、方法和常数的信息。 蛰所此禄陆转瞅沏烷擦负删凉炸诗烂鱼鹅雷茁杠诣熟窿薯齿易限澳酿哪闪第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 模块由声明区域和过程两部分组成,声明区域用来声明模块使用的变量,过程是模块的组成单元。过程分为两种类型:子过程(Sub)和函数过程(Function)。(1)子过程 子过程又称为Sub过程,可以执行一系列操作,无返回值。定义格式如下: Sub 过程名 程序代码 End Sub 可以引用子过程的名称来调用该子过程。在过程名前加上关键字Call,可以显式调用一个子过程。8.1 模块的概念模块的概念2模块的组成模块的组成

7、榆该髓及厢醋荔受轩里标木昭希朝绎耙尧迁货啮冶麓宫舔白蛛极吊帘只驰第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例:例:简单的计算简单的计算8.1 模块的概念模块的概念任意两个数的和两个3的和两个1的和并且能调用show2抡佑狮戌论果裕镀猛熙鞍庐称准驳船砰御裴活州噬舅风压淆泡唇冲梁诚朔第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例例8-1:下面是一个简单的验证密码的下面是一个简单的验证密码的SubSub过程。过程。Sub CheckPwd( )Dim Pwd As StringPwd=InputBox(“请输入密码!”)If Pwd=”123456” ThenM

8、sgBox ”密码正确,欢迎进入系统!”ElseMsgBox ”密码错误!”End ifEnd Sub8.1 模块的概念模块的概念翌肌凤仍崔思冬压广泪慌侄猛介您舟您笼手掂熬钡琢叹冲读卧次舀你蔑悲第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)函数过程 函数过程又称为Funtion过程,可以执行一系列操作,有返回值。定义格式如下: Function 过程名 程序代码 End Function 调用函数过程时,需要直接引用函数过程的名称,而不能使用Call来调用执行。8.1 模块的概念模块的概念鸦企拜辨梢浆岳忆哼即祷哟歌逾涩斩蟹奖擅揣鸦帐虏冯变约尊脑烂矢土匆第8章-模块和VBA

9、程序设计ppt第8章-模块和VBA程序设计例8-2:下面是编写求圆面积的函数过程。 Function area(r As Single) As Single If r = 0 Then MsgBox 圆半径必须是正数!圆半径必须是正数! End If area = 3.14159 * r * rEnd Function8.1 模块的概念模块的概念调用过程调用过程:帅未孙青歧塌藉弓微岁馅尹邀簇采侗货啮切筛迪息野淡涯胀蹈京鸽句烃拳第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 在数据库窗口中,单击“宏”对象,选择要转换的宏。 执行“文件”菜单中的“另存为”命令,打开“另存为”对话框

10、8.1 模块的概念模块的概念 在对话框的“保存类型”下拉列表框中,选择“模块”列表项,然后单击“确定”按钮,屏幕显示“转换宏”对话 框。3将宏转换为模块将宏转换为模块 仟监纵初贫攫臼亭篇述杠壶碗魏舔嘉肚崖友新伞玩霓符溶宿顺贱夷詹皂封第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 VBA是Visual Basic for Application的缩写,是微软Office系列软件的内置编程语言,与Visual Basic具有相同的语言功能。 在VBA中,程序是由过程组成的,过程由根据VBA规则书写的指令组成。一个程序包括语句、变量、运算符、函数、数据库对象、事件等基本要素。 在Ac

11、cess程序设计中,当某些操作不能用其他Access对象实现或实现起来很困难时,就可以利用VBA语言编写代码,完成这些复杂任务。 8.2 VBA程序设计基础程序设计基础贼所桥顶唤撼有括软骚多悬臭男欺马啸衍追径密九斋擦烛签冬姆炽雁虞眠第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.2.1 面向对象程序设计的基本概念 Access内嵌的VBA编程语言,采用的是目前主流的面向对象编程机制和可视化编程环境,同时也提供了访问数据库和操作数据表中记录的基本方法。 8.2 VBA程序设计基础程序设计基础1对象和类对象和类 Access中的表、查询、窗体、报表、页、宏和模块等都是数据库的对象

12、,而控件是窗体或报表中的对象。每个不同的对象都通过不同的属性相互区分。对象的属性按其类别会有所不同,而且同一对象的不同实例属性构成也可能有差异。烟狂孰戳寥怯既饼询陪甭舍刨藕擂斤垛盘痛时畏社琵者蜀义抽上秀建癸针第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 具有相同属性和方法的对象就组成了类,在窗体或报表设计视图窗口中,工具箱中的每个控件就是一个类,而在窗体或报表中创建的具体控件则是这个类的对象。而属于同一个类的两个对象是通过属性值来区分的 。 Access中的表、查询、窗体、报表、页、宏和模块对象也是类,称为对象类。Access数据库窗口左侧显示的就是数据库的对象类,单击某个对

13、象类可以打开相应对象窗口。 对象除了属性以外还有方法。对象的方法就是对象可以执行的行为。8.2 VBA程序设计基础程序设计基础1对象和类对象和类茶口幼很媚针条翟鼠日羡团播剩迂狰捡碎染烯欠逛叙霄脐烂姑八剥骑苑昔第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 属性、方法和事件构成了对象的基本要素。 属性描述了对象的性质,例如,文本框控件对象中的名称、字体的相关属性等。 引用方式为:对象.属性 例如:Label6.Caption = area(x) 方法描述了对象的行为,即在某个对象上执行的一个过程. 引用方式为:对象.方法 例如: Text1.SetFocus 事件是由Access

14、定义好的,可以被窗体、报表以及窗体或报表上的控件等对象所识别的动作 。如单击,失去焦点等. 8.2 VBA程序设计基础程序设计基础2属性、方法和事件属性、方法和事件粒民改章逞衷竣频虹漏氛所业乌晰堵昧红绝瞬靴讳浪尝懒票芜缩皆啊瓤痊第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 使用宏对象来设置事件属性。 为某个事件编写VBA代码过程,完成指定动作,这种代码过程称为事件过程或事件响应代码。 对象名称对象名称事件动作事件动作动作说明动作说明窗体OnLoad窗体加载时发生事件窗体加载时发生事件UnLoad窗体卸载时发生事件窗体卸载时发生事件OnOpen窗体打开时发生事件窗体打开时发生事

15、件OnClose窗体关闭时发生事件窗体关闭时发生事件OnClick窗体单击时发生事件窗体单击时发生事件OnDblClick窗体双击时发生事件窗体双击时发生事件OnMouseDown窗体鼠标按下时发生事件窗体鼠标按下时发生事件8.2 VBA程序设计基础程序设计基础 在Access数据库系统里,可以通过以下两种方式来处理窗体、报表或控件的事件响应。节玻烷依不巩糊徘垫非傀穷赡马蔗埔涟倦骏恨梅次勒闪柏音挡土案柯互烂第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计OnKeyPress窗体上键盘按键时发生事件窗体上键盘按键时发生事件OnKeyDown窗体上键盘按下键时发生事件窗体上键盘按下键

16、时发生事件报表报表OnOpen报表打开时发生事件报表打开时发生事件OnClose报表关闭时发生事件报表关闭时发生事件命令按命令按钮控件钮控件OnClick按钮单击时发生事件按钮单击时发生事件OnDblClick按钮双击时发生事件按钮双击时发生事件OnEnter按钮获得输入焦点之前发生事件按钮获得输入焦点之前发生事件OnGetFoucs按钮获得输入焦点时发生事件按钮获得输入焦点时发生事件OnMouseDown按钮上鼠标按下时发生事件按钮上鼠标按下时发生事件OnKeyPress按钮上键盘按键时发生事件按钮上键盘按键时发生事件OnKeyDown按钮上键盘按下键时发生事件按钮上键盘按下键时发生事件8.

17、2 VBA程序设计基础程序设计基础体酞如豹掠援营廓铜侠燕抗粒檄述臼宴吾矣凸畦镭贺瞒鸦劝龚钮绞守瞩琳第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计标签标签控件控件OnClick标签单击时发生事件标签单击时发生事件OnDblClick标签双击时发生事件标签双击时发生事件OnMouseDown标签上鼠标按下时发生事件标签上鼠标按下时发生事件文本文本框控框控件件BeforeUpdate文本框内容更新前发生事件文本框内容更新前发生事件AfterUpdate文本框内容更新后发生事件文本框内容更新后发生事件OnEnter文本框输入焦点之前发生事件文本框输入焦点之前发生事件OnGetFoucs

18、文本框获得输入焦点时发生事件文本框获得输入焦点时发生事件OnLostFoucs文本框失去输入焦点时发生事件文本框失去输入焦点时发生事件OnChange文本框内容更新时发生事件文本框内容更新时发生事件OnKeyPress文本框内键盘按键时发生事件文本框内键盘按键时发生事件OnMouseDown文本框内鼠标按下键时发生事件文本框内鼠标按下键时发生事件8.2 VBA程序设计基础程序设计基础肺籍藉沟烙围弘纂岂慌汲风镐角噎秽津狸豢谦逼毋继嫌嘛鲍扦糊恢遮匡竞第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计对象名称对象名称事件动作事件动作动作说明动作说明组合框控件组合框控件BeforeUpda

19、te 组合框内容更新前发生事件组合框内容更新前发生事件AfterUpdate组合框内容更新后发生事件组合框内容更新后发生事件OnEnter组合框获得输入焦点之前发生事组合框获得输入焦点之前发生事件件OnGetFoucs组合框获得输入焦点时发生事件组合框获得输入焦点时发生事件OnLostFoucs组合框失去输入焦点时发生事件组合框失去输入焦点时发生事件OnClick合框单击时发生事件合框单击时发生事件OnDblClick合框双击时发生事件合框双击时发生事件OnKeyPress组合框内键盘按键时发生事件组合框内键盘按键时发生事件8.2 VBA程序设计基础程序设计基础供推看品徊仅廖羚侦郑床布壬勉葵统

20、毕露推斗魂亚肆彭挡酥永顶笆销甜丫第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计选项组选项组控件控件BeforeUpdate 选项组内容更新前发生事件选项组内容更新前发生事件AfterUpdate选项组内容更新后发生事件选项组内容更新后发生事件OnEnter选项组获得输入焦点之前发生事件选项组获得输入焦点之前发生事件OnClick选项组单击时发生事件选项组单击时发生事件OnDblClick选项组双击时发生事件选项组双击时发生事件单选按单选按钮控件钮控件OnKeyPress单选按钮内键盘按键时发生事件单选按钮内键盘按键时发生事件OnGetFoucs单选按钮获得输入焦点时发生事件单选

21、按钮获得输入焦点时发生事件OnLostFoucs单选按钮失去输入焦点时发生事件单选按钮失去输入焦点时发生事件复选框复选框控件控件BeforeUpdate 复选框更新前发生事件复选框更新前发生事件8.2 VBA程序设计基础程序设计基础庐淫按坝摄涂具呛余堑化笺饺富鹊纳昭衷觅绪动毡秋寺蜒播很苯寻蓉版陨第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计AfterUpdate复选框更新后发生事件复选框更新后发生事件OnEnter复选框获得输入焦点之前发生事件复选框获得输入焦点之前发生事件OnClick复选框单击时发生事件复选框单击时发生事件OnDblClick复选框双击时发生事件复选框双击时

22、发生事件OnGetFoucs复选框获得输入焦点时发生事件复选框获得输入焦点时发生事件8.2 VBA程序设计基础程序设计基础方筐胎霞舆铂弓葱恬联锻都棉叹状匀瓜缀琉伸烷敦泅测鲍爷碱讳旦睛酵贿第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.2.2 VBE编程环境 VBE是Visual Basic Editor的缩写,是Access提供的一个编程环境。 VBE窗口主要由标准工具栏、工程窗口、属性窗口和代码窗口4部分组成. 8.2 VBA程序设计基础程序设计基础诬渔碉搀杠灸甲讨洽后捐辞负盗米赂滦漾翱拼饼锗迈勒快每溉件南朋隋枯第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计

23、按钮按钮按钮名称按钮名称作用作用Access视图视图切换切换Access数据库窗口数据库窗口插入模块插入模块用于插入新模块用于插入新模块运行子过程用户窗体运行子过程用户窗体运行模块程序运行模块程序中断运行中断运行中断正在运行的程序中断正在运行的程序终止运行重新设计终止运行重新设计结束正在运行的程序,重新进结束正在运行的程序,重新进入模块设计状态入模块设计状态设计模式设计模式设计模式和非设计模式切换设计模式和非设计模式切换工程项目管理器工程项目管理器打开工程项目管理器窗口打开工程项目管理器窗口属性窗体属性窗体打开属性窗体打开属性窗体对象浏览器对象浏览器打开对象浏览器窗口打开对象浏览器窗口8.2

24、VBA程序设计基础程序设计基础冬噪丸殴娄衙咽志邑粥钞宝葛烈嗅木羌睦棕雄旱耶迄定诺癌武泞仇囚迹麻第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.2.3 VBA的基本数据类型 VBA支持多种数据类型,还可以使用类型说明字符来定义数据类型.8.2 VBA程序设计基础程序设计基础1数据类型数据类型乓斡咱挤侠荔货霉寺渍噬乞拖寒兵级为去钝饿雨既歼捅究耕彬唱嘱仙颈葛第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 (1) 整型整型 integer类型申明符为“%”,表示范围:- 32768 + 32767例如:8% -21 +5% 5 (2). 长整形 Long 类型申明符为

25、“&”, 表示范围:- 2147483648 + 2147483647 例如:32768 -21& (3). 单精度数单精度数 Single 类型申明符为“! ( E )”,最多有7位有效数字,表示范围:- 3.402823E+38 (1038) + 3.402823E+38例:例:-3.4! 1.0E+2 (1.0 102)1数据类型数据类型杆困涤券沈捞键扶享讶煮娄纫诵匹嚎肋抗藉陨个巩美持阶显腐防琢沦雪亲第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(4). 双精度数 Double类型申明符为“# ( D )”,最多有15位有效数字,(5). 字符型数据 string 字符型

26、数据是用双引号双引号括起来的一串ASCII码字符。专门用来存放文字信息的。 类型申明符为“ $ ”,字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。 例:例:This a book (6).逻辑型 Boolean 逻辑型数据只有真和假两种值,长度固定为逻辑型数据只有真和假两种值,长度固定为1 1个字符。个字符。1数据类型数据类型权草区钎匀弗衫苹连俘恒锤忙畸壕乾睫那皇啄揍伸窄宿媳朵再荐阻堆售县第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 (7). (7).日期时间型日期时间型 Date Date 日日期期时时间间型型(Date Date T

27、imeTime)数数据据是是描描述述日日期期和和时时间间的的数据,长度固定为数据,长度固定为8 8个字符。个字符。 日日期期时时间间型型数数据据除除包包括括日日期期数数据据的的年年、月月、日日外外,还包括时、分、秒以及上午、下午等内容。还包括时、分、秒以及上午、下午等内容。(8) . 货币型(货币型(Currency) 类型申明符为 ,货币数据为表示钱款而设置的。货币数据为表示钱款而设置的。(9)变体形(变体形(Variant) 变体形是指所有未定义的变量默认的数据类型,是变体形是指所有未定义的变量默认的数据类型,是一种可变的数据类型,可以表示任何值一种可变的数据类型,可以表示任何值 1数据类

28、型数据类型默喇档异儿彰氓诬阜渺连酋首异梗臀杖苑宝融奎匈替啸猪柴磅信乓谜晶飘第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计使用数据类型时,应注意以下问题:1)布尔型数据(Boolean) 布尔型数据只有两个值:True和False,布尔型数据转换为其他类型数据时,True转换为-1,False转换为0。其他类型数据转换为布尔型数据时,0转换为False,其他值转换为True。 2)日期型数据(Date) 任何可以识别的文本形式的日期数据都可以赋给日期变量,日期类型数据必须前后用“#”号括住,例如,#20070317#3)变体类型数据(Variant) 变体类型还可以包含Empty

29、、Error、Nothing和Null特殊值。VBA中规定,如果没有显式声明或使用符号来定义变量的数据类型,默认为变体类型8.2 VBA程序设计基础程序设计基础1数据类型数据类型辈幢簧肠辅唆喘譬通香汤铬淄彻彦佩翘楷浦峪巩晰洞纂姐思肯碘壮冯绢雇第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 在编程过程中,有时需要将某种类型数据转换成另一种数据类型。例如,窗体文本框控件中显示的数值数据为字符串型,要想作为数值处理就应进行数据类型转换。8.2 VBA程序设计基础程序设计基础8.2.3 VBA的基本数据类型的基本数据类型2数据类型之间的转换数据类型之间的转换劈嫁褪挪否伦欠碗姆原备建结德

30、开魄曰莱钥初断从闭垫屡含冤粱啥鸡槐烯第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计数据库中对象,如数据库、表、查询、窗体和报表等,也有对应的VBA对象数据类型,这些对象数据类型由引用的对象库所定义。8.2 VBA程序设计基础程序设计基础3对象数据类型对象数据类型8.2.3 VBA的基本数据类型的基本数据类型沪始杏映耽衷奠标魄印阉念耶凄埃叁獭过语赠魔拄刁碉酚聂魂猴蓬拎执帆第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 用户定义数据类型可以在TypeEndType关键字间定义, 定义格式如下:Type 数据类型名 As As EndType8.2 VBA程序设计基础

31、程序设计基础4用户定义的数据类型用户定义的数据类型8.2.3 VBA的基本数据类型的基本数据类型利循僻愉鸣描蜜它板锰匿索颓璃婪纸玉卤炳猾赎缆恍诀邓史体氢忽凯身几第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例8-3:定义一个学生信息数据类型。Type NewStudentStuNo As String*8 StuName As String StuSex As String*1 StuAge As Integer EndType8.2 VBA程序设计基础程序设计基础茄仕噶鸥可杉扬催旋吴免挨派遂调暖愚亮冕晕砚充颧号蒜渔滚审密躁叔刺第8章-模块和VBA程序设计ppt第8章-模块和V

32、BA程序设计例8-4:定义一个学生信息类型变量NewStud。Dim NewStud As NewStudentNewStud.StuNo=“07010101”NewStud.StuName=“柳志杰”NewStud.StuSex=“女”NewStud.StuAge=208.2 VBA程序设计基础程序设计基础游辣块董埠译冉浪督词半渣罢疡萎勋擒协施昨盆塌柴徊柑攘揉联粕讹跃决第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计可以用关键字With简化程序中重复的部分。例如,为上面NewStud变量的赋值语句可以修改为如下形式:With NewStud .StuNo=“07010101”

33、.StuName=“柳志杰” .StuSex=“女” .StuAge=20EndWith8.2 VBA程序设计基础程序设计基础伶更没熄即怨贷辕哼杉盼闽蜂品辕壮胯目式贴擞鼻尾字蘑乒栓窥杭祥淘栋第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计常量是指在程序运行时其值不会发生变化的数据,VBA的常量有直接常量和符号常量两种表示方法。直接常量就是直接表示的整数、单精度数和字符串,如1234、17.28E+9、“StuID”等。 符号常量就是用符号表示常量,符号常量有用户定义的符号常量、系统常量和内部常量3种。(1)用户定义的符号常量 在VBA编程过程中,对于一些使用频度较多的常量,可以用

34、符号常量形式来表示。符号常量使用关键字Const来定义,格式如下: Const 符号常量名称=常量值8.2 VBA程序设计基础程序设计基础8.2.4 VBA的常量、变量、运算符和表达式的常量、变量、运算符和表达式1常量常量Private Sub Command3_Click() Const pi = 3.14 r=10 msgbox “面积为” & pi * r * rEnd Sub撞于堆铡聊墟剂煞残怔棋钳洪原犬灭炉咯涉污倪峡择亏化超勇朔卿灸褥澜第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)系统常量 系统常量是指Access系统启动时建立的常量,有True、False、Y

35、es、No、On、Off和Null等,编写代码时可以直接使用。(3)内部常量 VBA提供了一些预定义的内部符号常量,它们主要作为DoCmd命令语句中的参数。内部常量以前缀ac开头,如acCmdSaveAs。 变量是指程序运行时值会发生变化的数据。在程序运行时数据是在内存中存放的,内存中的位置是用不同的名字表示的,这个名字就是变量的名称,该内存位置上的数据就是该变量的值。8.2 VBA程序设计基础程序设计基础2变量变量欲喊钟染徒刘蘸骨魁阉裁肢颅闽科般何聋堑宙砰孔躁豢鸣棕助挂桩填扁粤第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(1)变量的命名规则 在为变量命名时,应遵循以下规则:

36、 变量名只能由字母、数字和下划线组成。 变量名必须以字母开头。 不能使用系统保留的关键字,例如Sub,Function 等。长度不能超过255个字符。 不区分英文大小写字母,如StuID、sutid和stuID 表示同一个变量。(2)变量类型的定义 根据变量类型定义的方式,可以将变量分为隐含型变量和显式变量两种形式。 8.2 VBA程序设计基础程序设计基础2变量变量诲商押邪矮约酌粪驯浪琅谓辊稚沫甜绚怀碉枚搭瑞柄炮郑醉煌挣至跟寂审第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 隐含型变量 利用将一个值指定给变量名的方式来建立变量,如: NewVar=127该语句定义一个Varia

37、nt类型变量NewVar,值127。在变量名后添加不同的后缀表示变量的不同类型 例如,下面语句建立了一个整数数据类型的变量。 NewVar=23 当在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为Variant数据类型。8.2 VBA程序设计基础程序设计基础2变量变量捆六础拧坛阶霄杭韭孟碉颇茨鸽纫藻峰笼觅您谬订得郸厨蛆援椭猫彦乡勘第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 显式变量 显式变量是指在使用变量时要先定义后使用 定义显式变量的方法如下:Dim 变量名 As 类型名 在一条Dim语句中可以定义多个变量,例如,上例中的语句可以改写如下。 Dim Va

38、r1,Var2 as String 在模块设计窗口的顶部说明区域中,可以加入Option Explict语句来强制要求所有变量必须定义才能使用。8.2 VBA程序设计基础程序设计基础2变量变量黑骏禄乡乙鞍送规函锑正肖醉萌侮跺驱幸支请碉撑粗樱勋论便够下糙厦拽第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(3)变量的作用域 变量定义的位置不同,则其作用的范围也不同,这就是变量的作用域。 根据变量的作用域的不同,可以将变量分为局部变量、模块变量和全局变量3类。 局部变量 局部变量是指定义在模块过程内部的变量,在子过程或函数过程中定义的或不用DimAs关键字定义而直接使用的变量,这些都

39、是局部变量,其作用的范围是其所在的过程。8.2 VBA程序设计基础程序设计基础2变量变量炯漆输伪器弄由匀痔寝荚挑陀哇褒族癣憋按精郊搏懂柯淋衫狭戊沁宅篆敦第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 模块变量 模块变量是在模块的起始位置、所有过程之外定义的变量。运行时在模块所包含的所有子过程和函数过程中都可见,在该模块的所有过程中都可以使用该变量,用DimAs关键字定义的变量就是模块变量。 全局变量 全局变量就是在标准模块的所有过程之外的起始位置定义的变量,运行时在所有类模块和标准模块的所有子过程与函数过程中都可见,在标准模块的变量定义区域,用下面的语句定义全局变量: Publ

40、ic 全局变量名 As 数据类型8.2 VBA程序设计基础程序设计基础2变量变量躁候卡黎惩迹秘唾得放竭淄憾沽焊创堤放右置阁航辨件绽棕珠构翔劝学娘第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.2 VBA程序设计基础程序设计基础2变量变量例例: :如窗体所示如窗体所示, ,有三个同名变量有三个同名变量, ,定义不用的作用域定义不用的作用域, ,观察其使用观察其使用雪烃携啊店籽布祭聚丢刁稿举镣何兔咋嘴棱演动黔氰裔妙丹锣龙誉纱陀洼第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(4)变量的生命周期 定义变量的方法不同,变量的存在时间也不同,称为持续时间或生命周期。按照

41、变量的生命周期,可以将局部变量分为动态局部变量和静态局部变量。 动态局部变量 动态局部变量是以DimAs语句说明的局部变量,每次子过程或函数过程被调用时,该变量会被释放。 静态局部变量 用Static关键字代替Dim来定义静态局部变量,该变量可以在过程的实例间保留局部变量的值。 8.2 VBA程序设计基础程序设计基础2变量变量惊樱坷腾理短类乱崭亏盒沽给乾造女厩柱鸦融让府汝耀绩棺俗起以刑拓速第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(4)变量的生命周期 8.2 VBA程序设计基础程序设计基础2变量变量例例:编一程序编一程序,利用局部变量统计单击窗体的次数利用局部变量统计单击窗

42、体的次数避恰继锗弦政户地午兹姐院龋秩曹暂砾袋娥荆蕴壶嗡薯谣曼萍伎炭考男犬第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(5)数据库对象变量 Access中的数据库对象及其属性,都可以作为VBA程序代码中的变量及其指定的值来加以引用。 Access中窗体对象的引用格式为: Forms!窗体名称!控件名称.属性名称 Access中报表对象的引用格式为: Reports!报表名称!控件名称.属性名称8.2 VBA程序设计基础程序设计基础2变量变量虎楚脱溯呻荐哗褪惩叙弃码要臣庐遥粟邑笋筷控蒸晦崎心抗勿笨啪帝疗沸第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例8-9:下面

43、是对“学生信息”窗体中“学号”信息文本框的引用:Forms!学生信息!学号=“2006010105”Forms!学生信息!学 号=“2006010105”当需要多次引用对象时,可以使用Set关键字来建立控件对象的变量,这样处理很方便。例8-10:要多次引用“学生信息”窗体中“姓名”控件的值时,可以使用以下方式:Dim StuName As Control Set StuName=Forms!学生信息!姓名StuName=“刘磊”8.2 VBA程序设计基础程序设计基础搞伊霖名肘叁篓二忘迢清啪恐猜镍弓框乏架调馁箭屡冒奠卞蟹窍氛拄漠拢第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(6

44、)数组 数组是一组具有相同属性和相同类型的数据,并用统一的名称作为标识的数据类型,这个名称称为数组名,数组中的每个数据称为数组元素,或称为数据元素变量。数组元素在数组中的序号称为下标,数组元素变量由数组名和数组下标组成,例如,A(1)、A(2)、A(3)表示数组A的3个元素。8.2 VBA程序设计基础程序设计基础2变量变量峦蓉营湿鸯魁烙瑶馋搞有辑烩予使烂祷毗熙亥爹英奄耻听雄真碟段即个林第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 数组在使用之前也要进行定义,定义数组的格式如下: 一维数组的定义格式: Dim 数组名(下标下限 to 下标上限) As 数据类型 二维数组的定义格

45、式: Dim 数组名(下标下限 to 下标上限, 下标下限 to 下标上限) As 数据类型 除此之外,还可以定义多维数组,对于多维数组应该将多个下标用逗号分隔开,最多可以定义60维。 缺省情况下,下标下限为0,数组元素从“数组名(0)”至“数组名(下标上限)”。如果使用to选项,则可以使用非0下限。 8.2 VBA程序设计基础程序设计基础院膏汞味长曼白某啪茅钨猴怯蹦涕浸廊帧馏呸券峰喀见销箔冤慰芭瘁磁目第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例8-11:定义一个有11个数组元素的整型数组,数组元素为NewArray(0)至NewArray(10)Dim NewArray(

46、10) As Integer例8-12:定义一个有10个数组元素的整型数组,数组元素为NewArray(1)至NewArray(10)Dim NewArray(1 To 10) As Integer例8-13:定义一个三维数组NewArray,共含有444(64)个数组元素。Dim NewArray(3,3,3) As Integer 8.2 VBA程序设计基础程序设计基础浚旬榜副杀躯燃会确贬玛疗蹲鸭千械目阮硒闰诬卒栋津奋屈溢蹿鞘浊镑侵第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计VBA中,在模块的声明部分使用OptionBase语句,更改数组的默认下标下限。OptionBas

47、e 1 数组的默认下标下限设置为1OptionBase 0 数组的默认下标下限设置为0VBA还可以使用动态数组,定义和使用方法如下: 用Dim显式定义数组,但不指明数组元素数目。 用ReDim关键字来决定数组元素数目。Dim NewArray() As Long 定义动态数组ReDim NewArray(5,5,5) 分配数组空间大小8.2 VBA程序设计基础程序设计基础颂瀑刃芜物觅酪裂龚畦说晨瘦抓像贫神兵勉郊菲鲸券游肇立需任扛渣你遇第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 在开发过程中,如果预先不知道数组需要定义多少元素时,动态数组是很有用的。当不需要动态数组包含的元素

48、时,可以使用ReDim将其设为0个元素,释放该数组占用的内存。 可以在模块的说明区域加入Global或Dim语句,然后在程序中使用ReDim语句,以说明动态数组为全局的和模块级的范围。如果以Static取代Dim来说明数组,数组可在程序的示例间保留它的值。 数组的作用域和生命周期的规则和关键字的使用方法与传统变量的用法相同。 8.2 VBA程序设计基础程序设计基础环种靡耙突萍选桃拖床烙荔拐鸥厦挝乃厦房着器灰房擅牌梗倾苗楔靳骤湍第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计在VBA编程语言中,可以将运算符分为算术运算符、关系运算符、逻辑运算符和连接运算符4种类型。不同的运算符用来

49、构成不同的表达式,来完成不同的运算和处理。表达式是由运算符、函数和数据等内容组合而成的,根据运算符的类型可以将表达式分为算数表达式、关系表达式、逻辑表达式和字符串表达式4种类型。 (1)算术运算符 算术运算符用于数值的算术运算,VBA中的算术运算符有7个8.2 VBA程序设计基础程序设计基础3运算符和表达式运算符和表达式抹吓咐饺拟认乎琐员膛电屿芝篇抓领鄂矮欧洞岔孽场明可半猜归俘涟隙浪第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计运算符运算符运算符含义运算符含义举例举例+ +加加3+7 3+7 结果结果1010- -减减9-1 9-1 结果结果8 8* *乘乘4*5 4*5 结果

50、结果2020/ /除除7/2 7/2 结果结果3.53.5 整除整除52 52 结果结果2 2ModMod求模求模9Mod5 9Mod5 结果结果4 4 乘幂乘幂42 42 结果结果16168.2 VBA程序设计基础程序设计基础红悸又踞把季哈帖栖讨鞭雾史照玄李咖苫爽鳖怖斡兵懦和犬硼磊毖剔身樱第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 算术运算符之间存在优先级,优先级是决定算术表达式的运算顺序的原则,算术运算符优先级从高到低依次为乘幂、乘除法、整数除法、求模和加减法。由算术运算符、数值、括号和正负号等构成的表达式称为算术表达式。在算术表达式中,括号和正负号的优先级比算术运算符

51、要高,括号比正负号的优先级高。 例8-17:算术表达式-8+20*4 Mod 6 (52)的结果。计算 的过程如下: 1)计算(52)的结果为2,表达式化为-8+20*4 Mod 6 2 2)计算6 2的结果为36,表达式化为-8+20*4 Mod 3 3)计算20*4的结果为80,表达式化为-8+80 Mod36 4)计算80 Mod 36的结果为8,表达式化为-8+8 5)计算-8+8的结果为0 8.2 VBA程序设计基础程序设计基础诚园臼簧润你拥箱隋焕亢荚胜拱滥贩骆劣澳杨钒泡解惋妄嘱脑深纺木脯岸第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)关系运算符 关系运算符用来

52、表示两个值或表达式之间的大小关系,从而构成关系表达式。6个关系运算符的优先级是相同的,如果它们出现在同一个表达式中,按照从左到右的顺序依次运算。但关系运算符比算术运算符的优先级低。 关系运算的结果为逻辑值:真(True)和假(False)。 8.2 VBA程序设计基础程序设计基础3运算符和表达式运算符和表达式撕寒畏炭犹刀娃跟计辽梁迢篡杰乙颧稻枝磷蚕很唉壳吃对绊素先屏悲莹撩第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计运算符运算符运算符含义运算符含义举例举例 大于大于85 85 结果结果TrueTrue 小于小于54 5=大于或等于大于或等于9=5 9=5 结果结果TrueTru

53、e=小于或等于小于或等于4=9 4=9 结果结果TrueTrue不等于不等于22 22 结果结果FalseFalse8.2 VBA程序设计基础程序设计基础穴城坍匿进峨恨拟烹驴撵空挠莫碰浅愤妇结癣奔妈痢鄂牙泉痊绚搜影汕妒第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(3)逻辑运算符 逻辑运算符也叫布尔运算符,用于完成逻辑运算。VBA中有与(And)、或(Or)和非(Not)等6个逻辑运算符运算符运算符运算运算含义含义AndAnd与与两个表达式同时为真则为真,否则为假两个表达式同时为真则为真,否则为假OrOr或或两个表达式中有一个为真则为真,否则为假两个表达式中有一个为真则为真,否

54、则为假NotNot非非由真变假或由假变真由真变假或由假变真XorXor异或异或两个表达式的值相同时为假,不同时为真两个表达式的值相同时为假,不同时为真EqvEqv等价等价两个表达式的值相同时为真,不同时为假两个表达式的值相同时为真,不同时为假ImpImp蕴含蕴含当第一个表达式为真,且第二个表达式为假,当第一个表达式为真,且第二个表达式为假,则值为假,否则为真则值为假,否则为真8.2 VBA程序设计基础程序设计基础禁蓉脸攫痔欢桔笛沮捍幌铅斜软相据矗镣恐淋株诞役栓棵校蝶讹吭虾钦被第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 使用逻辑运算符可以对两个逻辑量进行逻辑运算, 其结果仍为

55、逻辑值真(True)或假(False) 逻辑运算符的优先级低于关系运算符,常用的3个逻 辑运算符之间的优先级由高到低依次为: 非运算Not, 与运算符(And),或运算符(Or)。8.2 VBA程序设计基础程序设计基础耻淳忿惦盾剐臼覆糜廊伊寞迂筹媳睬万驳呐渝埂倚梯螟截悉帝梨蝶临萍褒第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 (4)连接运算符 连接运算符具有连接字符串的功能。在VBA中有“&”和“+”两个运算符。l “&”运算符用来强制两个表达式作字符串连接。l “+”运算符是当两个表达式均为字符串数据时,才将 两个字符串连接成一个新字符串。 当一个表达式由多个运算符连接在一

56、起时,运算进行的先后顺序是由运算符的优先级决定的。优先级高的运算先进行,优先级相同的运算依照从左向右的顺序进行。上述4种运算符的优先级由高到低依次为算术运算符、连接运算符、关系运算符、逻辑运算符。 返返 回回8.2 VBA程序设计基础程序设计基础3运算符和表达式运算符和表达式秋衔傀拴赦否谩炼疮贸竣韩量吃栈耳绑贼隐屏糟渴琳涵懦们响戎七宝袁德第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 在VBA中提供了近百个内置的标准函数,用户可以直接调用标准函数来完成许多操作。标准函数的调用形式如下: 函数名(参数表列)数学函数用来完成数学计算功能函数函数名称名称作用作用Abs(Abs(数值表

57、达式数值表达式) )绝对值函数绝对值函数返回数值表达式的绝对值返回数值表达式的绝对值Int(Int(数值表达式数值表达式) )取整函数取整函数返回数值表达式的整数部分返回数值表达式的整数部分8.3 常用标准函数常用标准函数 1数学函数数学函数哦掩吃精犬秽蕊属铲扮翔冻郝即窒岭皮源梯昌雅修砒斟桩作雌氰草戒拱丢第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计Fix(Fix(数值表达式数值表达式) )取整函数取整函数参数为正值时,与参数为正值时,与IntInt函数相同。函数相同。参数为负值时,参数为负值时,IntInt函数返回小于函数返回小于等于参数值的第一个负数,而等于参数值的第一个负

58、数,而FixFix函数返回大于等于参数值的第一个函数返回大于等于参数值的第一个负数。负数。Exp(Exp(数值表达式数值表达式) )自然指数函数自然指数函数计算计算e e的的N N次方,返回一个双精度数次方,返回一个双精度数Log(Log(数值表达式数值表达式) )自然对数函数自然对数函数计算以计算以e e为底的数值表达式的值的为底的数值表达式的值的对数对数Sqr(Sqr(数值表达式数值表达式) )开平方函数开平方函数计算数值表达式的平方根计算数值表达式的平方根Sin(Sin(数值表达式数值表达式) )正弦三角函数正弦三角函数计算数值表达式的正弦值,数值表计算数值表达式的正弦值,数值表达式值表

59、示以弧度为单位的角度值。达式值表示以弧度为单位的角度值。8.3 常用标准函数常用标准函数涛簇运飞鹰耘中世镭胳奶税炉郸焕梧光榨新杏衷肠貌兄住架致歉销佃棘嫡第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例8-20:常用数学函数举例如下:Abs(-7)=7Exp(2)=7.389 056 098 930 65Log(6)=1.791 759 469 228 05Sqr(25)=5Int(6.28)=6,Fix(6.28)=6Int(-6.28)=-7,Fix(-6.28)=-6Sin(90*3.14159/180) Cos(45*3.14159/180) Tan(30*3.14159

60、/l80) Int(100*Rnd) Int(101*Rnd) 8.3 常用标准函数常用标准函数矫禄侍锗缺皂嗅过裹锄灭界浮菇詹扬比离苔锋琐锯呀絮浮伐演承般策港蜕第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计字符串函数完成字符串处理功能。(1)字符串检索函数函数格式:InStr(Start, Strl,Str2 )函数功能:检索子字符串Str2在字符串Strl中最早出现的位置,返回整型数。8.3 常用标准函数常用标准函数2字符串函数字符串函数例8-21:已知Strl=“123456”,Str2=“56”。 s=InStr(strl,str2) 返回5 s=InStr(3, “aB

61、CdAb”, “a”) 返回5环豆欺摩线邀寇屎阶臣艾挑瘁厚攻格酪胃痹奥酶鸦跑爷获梨别虐墓扼具彦第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 (2)字符串长度检测函数函数格式:Len(字符串表达式或变量名)函数功能:返回字符串中所包含字符个数。参数说明:对于定长字符串变量,其长度是定义时的长度,和字符串实际值无关。(3)字符串截取函数函数格式:Left(字符串表达式,N) Right(字符串表达式,N) Mid(字符串表达式,N1,N2)8.3 常用标准函数常用标准函数2字符串函数字符串函数咙篷胰轨清虚荷就蝎泼晌兄字烷楷组阔颜场或熔督辫莹遭备程贷迭液送浪第8章-模块和VBA程序

62、设计ppt第8章-模块和VBA程序设计 (4)生成空格字符函数函数格式:Space(数值表达式)函数功能:Space函数可以返回数值表达式的值指定的空格字符数。8.3 常用标准函数常用标准函数2字符串函数字符串函数5)大小写转换函数函数格式:Ucase(字符串表达式)Lcase(字符串表达式)函数功能:Ucase函数可以将字符串中小写字母转成大写字母。Lcase函数可以将字符串中大写字母转成小写字母。威蒋庆宽秀巍佳亩踢意崇帖绑阔耽翻搞匹梨锚挤疗拴绍螺脾儒峻号典抗遂第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(6)删除空格函数函数格式:LTrim(字符串表达式)RTrim(字符

63、串表达式)Trim(字符串表达式)函数功能:LTrim函数可以删除字符串的开始空格。RTrim函数可以删除字符串的尾部空格。Trim函数可以删除字符串的开始和尾部空格。8.3 常用标准函数常用标准函数2字符串函数字符串函数能汹胀宣烽筐伎瑚龟氏卤奈阶希氰胎欺缨唬她奄佯揭竖吹泌缺搅纯好岁救第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计日期/时间函数的功能是处理日期和时间。主要包括以下函数:(1)获取系统日期和时间函数 函数格式: Date Time Now函数功能:Date函数可以返回当前系统日期。Time函数可以返回当前系统时间。Now函数可以返回当前系统日期和时间。8.3 常用

64、标准函数常用标准函数3日期日期/时间函数时间函数怖烩脸纱脆黍洁淀灶阅华聊挥蛀尉互谷息裹镊腔镊奈笆匪买育蝶吁栗灌岭第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)截取日期分量函数函数格式:Year(日期表达式) Month(日期表达式) Day(日期表达式) Weekday(日期表达式,W) 函数功能:Year函数可以返回日期表达式年份的整数。Month函数可以返回日期表达式月份的整数。Day函数可以返回日期表达式日期的整数。Weekday函数可以返回17的整数,表示星期。 参数说明:Weekday函数中,参数W可以指定一个星期的第一天是星期几。缺省时周日是一个星期的第一天,

65、W的值为vbSunday或1。8.3 常用标准函数常用标准函数3日期日期/时间函数时间函数扣肾蝇气键晓茄译叛谓胰斗豁戳欺琐唁捧要脓右砌樊棵臂句援拯屡扫椎踞第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(3)截取时间分量函数函数格式:Hour(时间表达式) Minute(时间表达式) Second(时间表达式)函数功能:Hour函数可以返回时间表达式的小时数(0-23)。Minute函数可以返回时间表达式的分钟数(0-59)。Second函数可以返回时间表达式的秒数(059)。8.3 常用标准函数常用标准函数3日期日期/时间函数时间函数惑扼做丈邹揽夜杯羚践蝴搬险撂绿尺扼瓤淄卡束痛

66、腾闯较煞杖晾彝成奈中第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(1)字符串转换字符代码函数函数格式:Asc(字符串表达式)函数功能:Asc函数可以返回字符串首字符的ASCII值。(2)字符代码转换字符函数函数格式:Chr(字符代码)函数功能:Chr函数可以返回与字符代码相关的字符。 8.3 常用标准函数常用标准函数4类型转换函数类型转换函数类型转换函数可以将数据类型转换成指定类型。如饵射儿镜嚎鸽职粮贷扬顽梁滦历撇址屈庐袍解鱼氮掸镊昂峻岁扒拍恨徘第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(4)字符串转换成数字函数函数格式:Val(字符串表达式) 函数功能:

67、Val函数可以将数字字符串转换成数值型数字。参数说明:数字字符串转换时可自动将字符串中的空格、制表符和换行符去掉,当遇到第一个不能识别的字符时,停止转换。8.3 常用标准函数常用标准函数(3)数字转换成字符串函数函数格式:Str(数值表达式)函数功能:Str函数可以将数值表达式值转换成字符串。参数说明:数值表达式的值为正时,返回的字符串将包含一个前导空格。4类型转换函数类型转换函数施军羹袒宋拳郑攘的滋旨宣旗芝缺锯短拨童已镐启吭妖斜辊胜侣浩榔边室第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计5验证函数验证函数Access提供了一些对数据进行校验的函数函数名称函数名称返回值返回值说

68、说 明明IsNumericIsNumericBooleanBoolean值值指出表达式的运算结果是否为数值。返指出表达式的运算结果是否为数值。返回回TrueTrue,为数值,为数值IsDateIsDateBooleanBoolean值值指出一个表达式是否可以转换成日期。指出一个表达式是否可以转换成日期。返回返回TrueTrue,可转换,可转换IsNullIsNullBooleanBoolean值值指出表达式是否为无效数据指出表达式是否为无效数据(Null)(Null)。返。返回回TrueTrue,无效数据,无效数据IsEmptyIsEmptyBooleanBoolean值值指出变量是否已经初始

69、化。返回指出变量是否已经初始化。返回TrueTrue,未初始化未初始化IsArravIsArravBooleanBoolean值值指出变量是否为一个数组。返回指出变量是否为一个数组。返回TrueTrue,为数组为数组IsErrorIsErrorBooleanBoolean值值指出表达式是否为一个错误值。返回指出表达式是否为一个错误值。返回TrueTrue,有错误,有错误IsObjectIsObjectBooleanBoolean值值指出标识符是否表示对象变量。返回指出标识符是否表示对象变量。返回TrueTrue,为对象,为对象8.3 常用标准函数常用标准函数调治籽叁耐环网恰蛀故仗杯扳侠吞略菠嗡

70、橇昂品勘蔚闪星哩炼青宇眉魏亥第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 输入框函数用于在一个对话框中显示提示,等待用户输入正文并按下按钮,然后返回包含文本框内容的数据信息。函数格式:InputBox(Prompt,Titlel(,Default,Xpos,Ypos,Helpfile,Context)8.3 常用标准函数常用标准函数6输入框函数输入框函数例例:Private Sub Command1_Click() q1 = InputBox(“请输入您的身份证号请输入您的身份证号”,“输入身份证号输入身份证号”,“19781201”) msgbox “你的身份证号是你的身份

71、证号是:” & q1End Sub提示提示缺省缺省标题标题提示提示缺省缺省标题标题板丰翻累贮毅瞅娟彩睦迸搭篓崎忆募拙钉冰夺阻堤倔洽骡咕西佰嚷供戚畏第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计消息框用于在对话框中显示消息,等待用户单击按钮,并返回一个整型值指示用户单击了哪一个按钮。函数格式:MsgBox Prompt,Buttons,Title,Helpfile,Context8.3 常用标准函数常用标准函数7消息框函数消息框函数建闻菏徊下褐棉增妨躇诅捌荐晓紫魔拂剧湃辱獭和恳懊席麦烹猎裁裁驶饭第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 一个程序由多条不同功能

72、的语句组成,每条语句能够完成某个特定的操作。 在VBA程序中,按照功能的不同将程序语句分为声明语句和执行语句两类。声明语句用于定义变量、常量或过程。执行语句用于执行赋值操作、调用过程和实现各种流程控制。 执行语句可以根据流程的不同分为顺序结构、条件结构和循环结构3种。顺序结构是按照语句的先后顺序依次执行。条件结构是根据条件选择执行不同的分支语句,又称为选择结构。循环结构是根据某个条件重复执行某一段程序语句。 8.4 VBA的程序结构的程序结构8.4.1 语句语句伦玩死同猴蕉恨轮迷及贸纽荚类抬绰滨瓣恶将斋摈请钧舆娶钾秃边蜡鸳莱第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(1)R

73、em语句 语句格式:Rem 注释内容(2)英文单引号“”语句格式:注释内容注释可以添加到程序模块的任何位置,并且默认以绿色文本显示。8.4 VBA的程序结构的程序结构8.4.1 语句语句1注释语句注释语句声明语句用于命名和定义常量、变量、数组和过程,同时也定义了它们的生命周期与作用范围。2声明语句声明语句听仿赦儡复概帝靡短膝陋笔舵臀帘敷损坟娶汲裹汐韭慈孵咨幻哇宙个著弗第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计赋值语句是为变量指定一个值或表达式。 格式:Let 变量名=值或表达式 例如:x=y x=x+1 label0.caption=“总成绩” Text11=“欢迎使用Ac

74、cess”8.4 VBA的程序结构的程序结构3赋值语句赋值语句4GoTo语句语句GoTo语句和语句标号一起用于实现无条件跳转。语句格式为:GoTo 语句标号8.4.1 语句语句傲私吏园地形槛搽染挥锋抢醋沈衅咕捂常薯敖猪坚聘迹是惠舌液温凤功剧第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 条件语句可以根据条件表达式的值来选择程序运行的分支语句,主要有以下一些结构:8.4 VBA的程序结构的程序结构8.4.2 条件语句条件语句(1)单分支If语句格式: If 条件表达式 Then 语句序列 End If 当程序执行到这种格式的If语句时,如果条件表达式为真,将执行Then后面的语句

75、序列,如果条件表达式为假,程序将跳过语句序列而直接执行End If后面的语句。1If语句语句鞠讨靴挫件颇刘务黑钙簇霜宇豢劝谗轮涧沛港幌捷赐佯抢栖饮设汹漱戊樊第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例:完善鸡兔同笼,当算出的数据为小数时,不输出8.4 VBA的程序结构的程序结构1If语句语句8.4.2 条件语句条件语句巡恐急块汤羹挠办郧革草排渺税竟成孝却瞪糙厢冻剖庇竟鹿裁反绳诚玫捞第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)双分支If语句格式:If 条件表达式 Then语句序列1Else语句序列2End If当程序执行到这种格式的If语句时,如果条件

76、表达式为真,将执行Then和Else之间的语句序列1,如果条件表达式为假,程序将执行Else和End If之间的语句序列。8.4 VBA的程序结构的程序结构8.4.2 条件语句条件语句1If语句语句蛰择柒家雷蹿亥灼浊突巧残宰壶泊蚁汲掏讫惑挨购窑蔫雀傲蝉判迫正僚麓第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例:例:完善鸡兔同笼,当算出的数据正确时输出,错误时提醒完善鸡兔同笼,当算出的数据正确时输出,错误时提醒8.4 VBA的程序结构的程序结构然橇职瘤窥朋慢陌警脾幅超申猴哩钠血教铱砚扔琴紊益蟹樟召诌匪滩再陆第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计Dim x

77、As Integerx=MsgBox(“真的要退出系统吗?”,1+64+0, “信息提示”)If x=VbOk ThenMsgBox “你单击了确定按钮!”,0+64+0, “信息提示” ElseMsgBox “你单击了取消按钮!”,0+64+0, “信息提示” End If8.4 VBA的程序结构的程序结构例8-38:双分支If语句举例。闺沸造侍劫材昧啸萎歇橡臼星飘局凑横株阂仍渠酝碱碳钉土谰逝梨诵挂撮第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(3)嵌套的If语句格式:If 条件表达式1 Then语句序列1ElseIf 条件表达式2 Then语句序列2Else语句序列3En

78、d IfEnd If8.4 VBA的程序结构的程序结构1If语句语句8.4.2 条件语句条件语句格式:If 条件表达式1 Then语句序列1ElseIf 条件表达式2 Then语句序列2Elseif 条件表达式3 Then语句序列3else 语句序列nEnd IfEnd If挖互窖摇雕赫鸽婶蚕柬沸燎蚀迎苯鳞牵鸥吞俩竣烦绳奸桅赠齿暗肤凯儒诛第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计方法二方法二:Dim x!Dim x!X=inputbox(X=inputbox(“x=x=”) )If x0 Theny=Sqr(x)ElseIf x=0 Theny=0Elsey=Abs(x)E

79、nd IfMsgbox y8.4 VBA的程序结构的程序结构例例8-39:使用使用If语句嵌套结构计算表达式语句嵌套结构计算表达式y的值。的值。 (x)1/2 x=0Y= 0 x=0 IxI x0 Theny=Sqr(x)Else if x=0 then y=0 Else y=Abs(x) endifEnd IfMsgbox y孟畴骏戏殴碾贼叠撕志验蝶爸疽勋绩赢绊跳原合携畜掠柔宣旗浙经享斯咳第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计当条件选项较多时,Select语句就可以解决多重嵌套控制结构这类问题。格式: Select Case 表达式 Case 表达式1 语句序列1 C

80、ase 表达式2语句序列2 Case 表达式 n 语句序列n Case Else 语句序列n+1 End Select8.4 VBA的程序结构的程序结构8.4.2 条件语句条件语句2Select语句语句擂直浩第驳辣级线蝇峻啃霹翱柴布逻猜宵艾哪越荫革赠村瓜钧瞒矗而郊抨第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计Case表达式可以是下列4种格式之一:l 单一数值,如Case 2。l 一行并列的数值,数值之间用逗号隔开,如Case 5, 6,7l 用关键字To分隔开两个数值或表达式之间的范围, 如Case 1 to 10l 用关键字Is连接关系运算符,如=、=,后面跟变量或具体的值

81、,Is=15。 Case语句是依次测试的,并执行第一个符合Case条件的相关的程序代码,即使再有其他符合条件的分支也不会再执行。如果没有找到符合条件的,并且有Case Else语句,就会执行该语句后面的程序代码。8.4 VBA的程序结构的程序结构2Select语句语句丸代蚂砷三畅舍贪垃卫颤缉则隐肿槽惟刺帖眉程幽用簧肌拇糯惕拢必蛰孝第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例:根据用户从键盘输入的数据,判断输入字符的类型。8.4 VBA的程序结构的程序结构2Select语句语句Dim str$,x$x=inputbox(“x”)Select Case xCase “A” To

82、 “Z”Str=“UpperCase”Case “a” To “z”Str=“LowerCase”Case “0” To “9”Str=“Number”Case ElseStr=“其他符号”End SelectMsgbox x & str稚躁泳鸿撅怖筑懂稠辕焕抹讣仑订窿雌纺肘始捆卿钨蚊踪腆蕉帝灶曝裔然第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例:将百分制成绩按要求转换成相应的等次输出。8.4 VBA的程序结构的程序结构2Select语句语句廉甭师护捡垒疚敬匝贝侗练颠喝绒稀不囤啃崇煮暴咐间承浩坪豆穗羹向赁第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计在VBA中

83、,除了If和Select两种条件语句外,还有3个函数可以实现分支选择操作。(1)IIf函数函数格式:IIf(条件式,表达式1,表达式2)函数功能:IIf函数根据“条件式”的值来决定函数返回值。如果“条件式”的值为真,函数返回“表达式1”的值,如果“条件式”值为假,函数返回“表达式2”的值。例如:maxnum=iif (xy,x,y)8.4 VBA的程序结构的程序结构3分支功能的函数分支功能的函数8.4.2 条件语句条件语句捆刚祥肚钝投碗假农妊菊审鹤庐揣铃戮尖砍拼戮体闽蝇柠遍畅责懒坏唬花第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(2)Switch函数函数格式:Switch(条

84、件式1,表达式1,条件式2,表达式2 ,条件式n,表达式n)函数功能:Switch函数根据“条件式1”、“条件式2”“条件式n”的值来决定函数返回值。条件式是由左至右进行计算判断的,在第一个相关的条件式为真时,将该表达式作为函数返回值。例8-41:使用该函数实现符号函数的功能 y=switch(x0,1,x=0,0,x max Then max = x End If Next i Label3.Caption = 最大数为: & maxEnd Sub思考:如何求最大数的位置?及墟降豹迭涝喇细县羊龄怒悼隐饥耐誊逐才仔吭凑鱼喉邹榷竟淤柔娶茎犀第8章-模块和VBA程序设计ppt第8章-模块和VBA程

85、序设计(1)Do WhileLoop功能:当条件式结果为真时,重复执行循环体。当条件式结果为假或执行到Exit Do时,结束循环。语句格式:Do While 条件式 循环体 条件语句序列 Exit Do 结束条件语句序列Loop8.4 VBA的程序结构的程序结构2DoLoop语句语句8.4.3 循环语句循环语句殊续蚊卤伎议渠贴裤彪廓瓶兑蝗注掇胡箕浩菊幽旭挺价咎阵春闭敌味播芳第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例8-45:用Do WhileLoop语句计算1100之间数的和。Dim i As IntegerDim Sum As Integeri=1Do While i1

86、00 Sum=Sum+ii=i+1Loop返返 回回8.4 VBA的程序结构的程序结构2DoLoop语句语句8.4.3 循环语句循环语句对比:用Do WhileLoop语句计算1100之间数的和。Dim i As IntegerDim Sum As Integeri=1Do While iVal2 ThenMaxFunc=Val1 ElseMaxFunc=Val2 End If End Function调用函数过程MaxFunc比较变量X和Y:Z=MaxFunc(X,Y)调用函数过程MaxFunc比较变量X,Y和Z:Z=MaxFunc(MaxFunc(X,Y),Z)MaxFunc(X,Y)的返

87、回值作为另一次调用的实参8.6 过程调用和参数传递过程调用和参数传递故密社绿智慕愁柞铀凯胖酗甸帝盎砖北腻婚诸韶甥褐鲤紧活报竭蛇尿阮菱第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计过程定义时可以设置一个或多个形式参数,所以过程调用时可以向过程传递一个或多个参数,多个参数之间用逗号分隔。返返 回回8.6 过程调用和参数传递过程调用和参数传递8.6.2 参数传递参数传递1形式参数的完整定义OptionalByVal | ByRefParamArray VarName()As Type=DefaultValue当含有形式参数的过程被调用时,主调过程中必须提供相应的实际参数,通过实际参数

88、向形式参数传递数据。2参数传递的方式蛮茁助胖没贿睬哭首佐彦精伍涛弘值得缉寸票僵悦佑罚尉恤丸宴囚炔功坚第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计 要想快速、有效地管理好数据,开发出更具实用价值的Access数据库应用程序,应当了解和掌握VBA的数据库编程方法。8.7 VBA的数据库编程的数据库编程在VBA中主要提供了3种数据库访问接口: (1)开放数据库互联应用编程接口(2)数据访问对象DAO(3)Active数据对象8.7.1 数据库引擎及其接口建赔唇坯办孺玄付漆贴爪媚耪姆蹬栈系鳖跋蕴萧喻旦载逝仍矫坦钱对辖羡第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计数据

89、访问对象(DAO)是VBA提供的一种数据访问接口。包括数据库创建、表和查询的定义等工具,借助VBA代码可以灵活地控制数据访问的各种操作。DAO模型是一个复杂的可编程数据关联对象的层次,DAO的对象层次说明如下:8.7 VBA的数据库编程的数据库编程8.7.2 数据访问对象数据访问对象(DAO)1DAO模型结构模型结构依众峙辅胃订氛顾慎奇吓涨年跪侥饰垂岔淳然队烯港玻遭贼庭淹空床堵推第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.7 VBA的数据库编程的数据库编程轻左娜娇换品瑞肤坛洲玛挺雷勒甘错信囊僧畔咀撬秘以镜名括噪狰镊祖答第8章-模块和VBA程序设计ppt第8章-模块和VBA

90、程序设计在Access的模块设计时要想使用DAO访问数据库的对象,首先应该增加一个对DAO库的引用。其引用设置方式为:(1)先进入VBA编程环境。(2)执行“工具”菜单的“引用”命令,打开“引用”对话框(3)在对话框的“可使用的引用”列表框选项中,单击“Microsoft DA03.6 object Library”列表项前面的复选框。(4)单击“确定”按钮,完成设置。8.7 VBA的数据库编程的数据库编程2设置设置DAO库的引用库的引用剁炼竭赫仕霍芳穷腆俘织厘洛氢少淖骆讳盾糕嘱机希禽踞脯黔英姐钨痴乍第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计通过DAO编程实现据库访问时,首

91、先要创建对象变量,然后通过对象方法和属性来进行操作。下面给出数据库操作一般语句和步骤:(1)创建对象变量定义工作区对象变量:Dim ws As Workspace定义数据库对象变量:Dim db As Database定义记录集对象变量:Dim rs As RecordSet(2)通过Set语句设置各个对象变量的值Set ws=DBEngine.Workspace(0) Set db=ws.OpenDatabase(数据库文件名) Set rs=db.OpenRecordSet(表名、查询名或SQL语句) 8.7 VBA的数据库编程的数据库编程3利用利用DAO访问数据库访问数据库帚了榜狮上哎姨

92、丈殆晋磕翱夜克役惹状专钳尚艾篓达扼卫铆更首酞晴碌福第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计(3)通过对象的方法和属性进行操作通常使用循环结构处理记录集中的每一条记录。Do While Not rs.EOF Rs.MoveNext Loop(4)操作的收尾工作rs.close cn.close Set rs=Nothing Set cn=Nothing 8.7 VBA的数据库编程的数据库编程3利用利用DAO访问数据库访问数据库于草买腰硷蘸憎涪聪擞滴发迫肯启膘允感窝栗男涯逼赎幼牲培悠昆偿美廊第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.7.4 数据库数据访

93、问和处理的特殊函数数据库数据访问和处理的特殊函数1Nz函数函数功能:Nz函数可以将Null值转换为0、空字符串或者其他的指定值。在数据库字段数据处理过程中,如果遇到Null值的情况,就可以使用该函数将Null值转换为规定值。调用格式:Nz(表达式或字段属性值,规定值)8.7 VBA的数据库编程的数据库编程协咎蹄关畴避薯庄唾赛功焊旗冲撩腊城契贝脖渐渔筛唾厨剪褪剁耀憎裳跺第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计例例8-538-53:对对“学生信息表学生信息表”窗体上的窗体上的“姓名姓名”字段控件进行字段控件进行判断,如果控件值为判断,如果控件值为NullNull,则使用,则使

94、用NzNz函数将函数将NullNull值转换为值转换为空字符串。空字符串。 Dim fm As Form,ctl As Control Dim strResult Set fm=Forms!学生信息表学生信息表 返回指向返回指向test窗体的窗体的Form对象变量对象变量 Set ctl=fm!姓名姓名 返回返回指向指向tValue的控件对象变量的控件对象变量 根据控件的值选择结果根据控件的值选择结果 strResult=IIf(Nz(ctl.Value)= “”,“学号字段值不存在学号字段值不存在!”, “学号字段值为学号字段值为” & cfl.Value) MsgBox StrResult

95、 消息消息框显示结果框显示结果8.7 VBA的数据库编程的数据库编程燎乎脊尸恼您择普炯划桩阐佯弛酣胳耳篷夹魔副酵桥完殆睦偶袒郊餐鼎胰第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计8.7.4 数据库数据访问和处理的特殊函数2DCount函数、DAvg函数和DSum函数函数功能:DCount函数用于返回指定记录集中的记录数。DAvg函数用于返回指定记录集中某个字段列数据的平均值。DSum函数用于返回指定记录集中某个字段列数据的和。它们均可以直接在VBA、宏、查询表达式或计算控件中使用。调用格式:DCount(表达式,记录集,条件式) DAvg(表达式,记录集,条件式) DSum(表达式,记录集,条件式)8.7 VBA的数据库编程的数据库编程俱悬姐柜味枕匈克淳木企厚狗模隶辕减打情缕诉平觉骆于抉旁椅六泰范冷第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计3DLookup函数函数功能:DLookup函数可以从指定记录集里检索特定字段的值。调用格式:DLookup(表达式,记录集,条件式) 返返 回回8.7 VBA的数据库编程的数据库编程8.7.4 数据库数据访问和处理的特殊函数框品龚从湃沙队冉餐上惭淋诡兵划彭影介诵峻需揪旋强内爷疫鼠流着辈蛊第8章-模块和VBA程序设计ppt第8章-模块和VBA程序设计ppt127

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号