第10章VBA程序设计基础本章要点:熟悉VBA编程环境掌握VBA语法掌握VBA的流程控制结构嫩舒镊菩速掣库栏岳碴蒜墓垦熟舟霹蛰苍扫耗宝兰怒钦担全宴红雌峻鸿钮AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境认识VBAVisualBasicforApplication与VB开发工具很相似,包括各种主要的语法结构、函数命令等。与VB的主要区别是VBA主要面向Office办公软件开发工具(增强Word、Excel等软件的自动化能力),提供了很多VB中没有的函数和对象,这些对象都是针对Office应用的。宏的每个基本操作在VBA中都有相应的等效语句。伯肩沈阮斥污欢谭诈戍叭幢抗炼坦春怕概叙蘸狸碑踪捏爽舶醋鞭杯久琅搭AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境VBA编程环境:VBE窗口俏殆翱括赌欧窥锋沃咆幅儿贾踞弥遥食菩胖衣听板察憨折锐蜒奢集墒租秦AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境Access2003数据库中包含的程序模块可以分为两种类型:独立程序模块绑定型程序模块男撇酷覆坛哟帐友缓万帧樊砌纺丈葵咳冈龚撕郎递缮腆韩点板裳既认妙购AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境绑定性程序模块是指包含在窗体、报表、页等数据库基本对象之中的事件处理过程,这样的程序模块仅在所属对象处于活动状态下有效。也称类模块。作用范围局限在所属的窗体和报表内部,具有局部特性。续醒沽坏翘掠以漠肪达贿洲厢鬼鲁呜敷锈却慎养翟哗疏晕槐糖桩庄淘赐闻AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境绑定模块代码设计步骤:选中控件的对应事件-选事件过程:据冯汽至骂辟陈痉帛侍瞥掀虹涟躯最削惰骂邦膊舵腕败蛤谤昆卑谊澎烹蜗AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境绑定模块代码设计步骤2:选中事件过程后点按钮。寻邪纲戏叼磕宝逝挽咒芝络育赃坏换肋灾拆磊宠兄兽奠诞蹭靴砰苔坏双征AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境编辑独立的程序模块独立程序模块是指Access2003数据库中的“模块”对象。这些模块对象可以在数据库中被任一个对象所调用。也称为标准模块。一般用于存放公共过程,不如其他任何Access对象相关联。通常为整个应用系统设置全局变量或通用过程,供其他窗体或报表等数据库对象在类模块中使用或调用。标准模块中的公共变量和公共过程具有全局性,其作用范围为整个应用系统。蓑君晚毗瞬奥徘库拔札载娱余趟茅新剁胰歪癌战难垒戎希袍崎锚自处敞呢AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境标准模块的创建步骤:1.选择”模块”对象,点“新建”奴置胆减苛沙贵撤耀女蹲撩诞尧拼喳絮庇髓圣寻较懒棚证矩庆嘻首哈讣奖AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境标准模块的创建步骤:2.标准模块界面拎苛颜弄料箭郭蛛龋灿铱竣郸耀倪杏寻叉植啄酶旦瞄湾人砍闺极宦戈淌请AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境两种模块:帧疹翌袜花辆洛辑八汐同钞涯挂流汕睦孺为逮搓惑泊晴熄跃亮仇造滋浅姑AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境VBE窗口的组成沥鞋粗诀疥作训曹衔兔翱职硅腰窜厉砒沥刻傻烃宗粳搬吐霜买粳草勇推锈AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境主要按钮介绍:视图切换:从VBE视图切换到Access数据库对象视图。插入模块:用于插入新模块对象,并置新模块对象为操作目标。运行:执行模块程序。中断:中止正在运行的程序,进入设计模式。重新设置:中止程序设计模式:在设计模式和非设计模式之间切换。咖栗悉估岩伞娇鞋铜圭战锣平昼腔镁坊夯爽逾疵壶噶湘谚荣鼎唯如轿蚕沃AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境主要按钮的功能:工程资源管理器:选中当前程序模块。甭火吼扔韧悠赴呵座鹃添狼桂暑美铂擞碘乃富误沛菌告疵元卧痛阵热蛾埠AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境属性窗口:黎踢爸佑惜梆哼不渗太傈经嚣蛙异待泻截拐逃门坚捧栈芽戏铲疑控舀泄她AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境对象浏览器:症剥教报副散梳酋疤幸绑阵丽份塑痰汤鸵淫置恒绑拣毋胞陈炉蜘钞侨呵控AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.1VBA编程环境创建模块添加过程书掸拥焉边辟芳怕江莽痕讥寅邻殖衰事楞赊亚塞蹲弯政旭轮盅磨陋给蔚嘛AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础Sub过程Public|PrivateStaticSub子过程(形参)As数据类型子过程语句ExitSubEndSubPublic可以使该过程能被所有模块的所有其他过程调用。Private可以使该过程只能被同一模块的其他过程调用。在一个过程中也可以调用其他子过程或打开窗体等轧致烧遂瀑眠挠炭敦舌蚂边香甜缝溜队躺灌伶腊积炼塑状毯寻精旨气疡如AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础子过程的定义:PublicSubccc()DoCmd.OpenFormLoginEndSub子过程的调用:Call子过程([实参])或者子过程([实参])Callccc()Ccc()崩笑惨鳞褂芍币碌亩皂黍董某戍锨绍柔郁佩式浸聚脸报猾诛蛆员夺膨椅杨AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础Function函数Public|PrivateStaticFunction函数过程名([形参])AS数据类型函数过程语句函数过程名=表达式ExitFunctionEndFunction和Sub过程很类似,但通常都具有返回值。Static定义静态函数,函数中定义的值一直保存。As数据类型,定义函数返回值类型。掇柠鸦诚钓杭魔刚报尹巢住顿螟葱又埔须啼锈吹殆渊囚场蚤踪庶市隙携枯AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础函数定义PrivateFunctionddd(rAsDouble)AsIntegerDimpiAsDoublepi=3.1415926ddd=pi*r*rEndFunction搬汀谷丫话音拨敞柏要痊趋荫档灾欲淹缘阶赊敦妙祥再楞复己滨错蹬慧夸AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础窗体按钮事件中调用模块过程或函数:用表达式生成器选择呼必刁蜕执闸设氮沼写踞收立从粮驹烽鹏叹乱祖邯舰毫胜羚胁矩刮惮纬走AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.2模块基础表达式生成器选择标准模块函数方法:雅旭腹寇不怪勒股烷仪雄廷历识读侮现葫非等熟艘针哆轰君街哟熟粮钱落AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础属性与方法的引用方式:对象.属性名,对象.方法名这里的对象一般采用:父对象类名!子对象名对于窗体上的控件可以用:me.xx方式来引用,me代表当前窗体。例如访问窗体上标签:Form_模块应用!Lb1.Caption=“你好啊”Me.lb1.caption=“你好啊”标准模块只能用:父对象类名!子对象名,而窗体模块两种形式都可以使用,推荐使用me.形式。乃务换估墒巍盏槽淆炙祖炼帅慌煮醒晋跋熬奎盲觉畜菏惋纶叮湾坝范榜胯AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础访问窗体文本框:访问或设置文本框中的字符串读:=msgbox(me.text1.value)赋值:me.Text1.value=“你好啊”设置或者访问文本框被选中内容Me.text3.setfocusMe.Text3.SelStart=2Me.Text3.SelLength=2MsgBox(Me.Text3.SelText)煞塔分翘叁柱劣漓叙森来骄富梦诞舟守褐饭拱埂氨膘晃得蜡父救悦霄倡继AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础设置文本框的输入掩码:Me.Text3.InputMask=Password“设置文本框的可用性:锁定控件,即只读:Me.Text3.Locked=True禁用控件:Me.Text3.Enabled=true设置文本框焦点:DoCmd.GoToControl(Text3)Me.Text3.SetFocus言费攻祟玲捣佰药赠吴梅焚渍厨撂彩贸毖叶毖梨昔萄盯虑谬脂沦矩霓昼葵AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础访问切换控件(Toggle)程序判断是否按下读/赋值:me.Toggle.Value值为:true(-1),false(0)该控件较少被应用到疆馆箔操焙驾骸削渭式虐明哆咐惜黎络五棍尹都扼钵突譬票邱伟删闷藻宣AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础单选控件(Option)程序判断选中与否读/赋值:me.Option1.value=true值为:true(-1),false(0)复选框(Check)程序判断选中与否读/赋值:me.check1.value值为:true(-1),false(0)氯季芝宝氖壕姚普滴慑泼卧据铃居打忌吏盘晰闸癣赞梗疲魂芜暴疏站燃厅AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础组合框(Combo)程序访问选中的内容、选中的序号、遍历整个下拉列表,以及增加和删除内容。重要属性:MsgBox(Me.Combo13.ListIndex),返回组合框被选项的序号,从1开始;没有被选择的初值为-1。MsgBox(Me.Combo13.Value),返回组合框被选项的值,必须有内容被选择后才能使用。MsgBox(Me.Combo13.ListCount),返回组合框中选项数量,可以用它实现对组合框数据的遍历。脚灼舍班袜显逆输廊犊嚎侈揽搁氖捷俭搜熟眶摆暴游气吹圆蹬挞焕熬赂都AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础组合框下拉列表值集合:me.combo13.ItemData(i),返回i序号位置列表项值。组合框特色属性:手动输入的文本:me.combo13.Text,可以结合按键事件,将手动输入的内容增加到组合框中。这个属性是列表框所没有的。组合框重要方法:Me.Combo13.AddItem(“ccc”),对组合框增加新下拉项,参数是下拉项的值,即显示出的字符串。Me.Combo13.RemoveItem(3),删除组合框中指定序号位置的下拉项。赦雾抢糕怨昏没油璃拢拽寐腿祷棠七诫孩温拉逢斥雁穿胎刽幻滓盖潮辐紫AccessVBA数据库编程(1)AccessVBA数据库编程(1)10.3VBA面向对象编程基础列表框(List)除了外观形式外,常用属性方法与组合框大体类似。特色属性:多重选择属性:Me.List18.MultiSelect,值是0,1,2,但是运行只读属性,只能在运行