版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章第八章 模块模块Access 2019数据库技术数据库技术返回返回第八章第八章 模块模块8.1 根本概念根本概念8.2 模块的分类模块的分类8.3 模块的创建与调用模块的创建与调用8.4 模块的调试模块的调试8.5 宏与模块的关系宏与模块的关系8.6 VBA程序设计入门程序设计入门8.7 VBA的数据库编程根底的数据库编程根底返回返回8.1 根本概念根本概念 模块就是存储在一个单元中的VBA(Visual Basic For Application)声明和过程的集合。它经过嵌入在Access中的VB(Visual Basic)程序设计言语编辑器和编译器实现与Access的完美结合。模块是
2、基于VB程序设计言语而创建的。 返回返回根本概念根本概念 模块由过程组成,每一个过程都由模块由过程组成,每一个过程都由一个函数或一个子程序所组成。一个函数或一个子程序所组成。 过程过程(Procedure):是由:是由VB代码组成的代码组成的单元。它包含一系列执行操作或计单元。它包含一系列执行操作或计算数值的语句和调用对象方法的语算数值的语句和调用对象方法的语句。过程可分为函数句。过程可分为函数(Function)过程过程和子和子(Sub)程序两种。程序两种。返回返回子程序 子程序:也称为子程序:也称为Sub过程。是执行一过程。是执行一项操作或一系列操作的过程。数据项操作或一系列操作的过程。数
3、据库中每个窗体或报表都有内置的窗库中每个窗体或报表都有内置的窗体模块或报表模块,这些模块包含体模块或报表模块,这些模块包含事件过程模板,可以向其中添加代事件过程模板,可以向其中添加代码,使得当窗体、报表或其中的控码,使得当窗体、报表或其中的控件发生相应的事件时,执行相应的件发生相应的事件时,执行相应的代码。许多导游代码。许多导游(如命令按钮导游如命令按钮导游)在在创建对象的同时也创建对象的事件创建对象的同时也创建对象的事件过程。子程序以关键字过程。子程序以关键字“Sub开场,开场,并以并以“End Sub语句终了。语句终了。返回返回8.2 模块的分类模块的分类两种类型:类模块和规范模块两种类型
4、:类模块和规范模块类模块:类模块是可以定义新对象的模类模块:类模块是可以定义新对象的模块。新建一个类模块,即新建了一个块。新建一个类模块,即新建了一个对象。模块中定义的任何过程都变成对象。模块中定义的任何过程都变成该对象的属性或方法。类模块既可以该对象的属性或方法。类模块既可以独立存在,也可以与窗体和报表同时独立存在,也可以与窗体和报表同时出现。窗体和报表都属类模块,它们出现。窗体和报表都属类模块,它们各自与某一窗体或报表相关联。单各自与某一窗体或报表相关联。单击击 按钮可查看窗体或报表的模按钮可查看窗体或报表的模块。块。规范模块:规范模块是指存储在整个数规范模块:规范模块是指存储在整个数据库
5、中可用的子程序和函数的模块。据库中可用的子程序和函数的模块。规范模块包含通用过程和常用过程,规范模块包含通用过程和常用过程,通用过程不与任何对象相关联,常用通用过程不与任何对象相关联,常用过程可以在数据库中的任何位置运转。过程可以在数据库中的任何位置运转。返回返回规范模块与类模块的主要区别 规范模块与类模块的主要区别在于规范模块与类模块的主要区别在于其作用范围和生命周期。其作用范围和生命周期。 窗体或报表模块中的过程可以调用窗体或报表模块中的过程可以调用曾经添加到规范模块中的过程。曾经添加到规范模块中的过程。Access 2000以前版本的类模块只能以前版本的类模块只能在与窗体或报表相关联时出
6、现。而在与窗体或报表相关联时出现。而Access 2000以及更高版本中的类模以及更高版本中的类模块不仅可以脱离窗体或报表独立存块不仅可以脱离窗体或报表独立存在,而且可以在数据库窗口对象栏在,而且可以在数据库窗口对象栏的模块列表中显示。的模块列表中显示。返回返回8.3 模块的创建与调用模块的创建与调用 经过向窗体或报表上的事件添加代码来创建一个事件过程,也可以在类模块或规范模块中创建函数过程或子程序。 创建模块的普通操作步骤如下: (1) 在“模块中单击“新建按钮; (2) 在模块编辑窗口中编辑模块程序。返回返回一个简单的Sub过程【例1】 创建一个Sub过程,自动弹出一个系统运用阐明信息框。
7、本例只需一句话:调用函数MsgBox显示一段文字Private Sub aa()MsgBox (单击“进入系统按钮,翻开教务管理系统;单击“退出系统按钮,封锁教务管理系统,并退出Access。)End SubSub结尾Sub开头例1见窗体:启动返回返回模块的调用方法1 在模块编辑窗口中, 选择菜单“运转 “运转子过程/用户窗口 或按F5键特别留意:特别留意:运转时,要要运转时,要要将光标将光标 置于置于过程体中恣意过程体中恣意位置。位置。返回返回模块的调用方法2运用调用语句Call格式:call 子过程名(参数表)阐明:运用Public定义的可以使该子过程适用于一切模块中的一切其它过程;运用P
8、rivate定义的子过程只适用于同一模块中的其它过程。实例:Sub abc()End subSub ss() Call abcEnd sub返回返回模块的调用方法3事件驱动:事件驱动: 与宏一样,我们可以在窗体或报与宏一样,我们可以在窗体或报表的表的“事件中编制事件驱动程序,事件中编制事件驱动程序,当事件发生时,模块中相应的过程自当事件发生时,模块中相应的过程自动执行。实例见后面动执行。实例见后面返回返回VBA中对象的援用VBA中对象的援用有2种:援用对象援用对象的属性返回返回对象的援用实例-11、设置窗体“改动颜色中的标签Label1的字体颜色为红色 Forms!改动颜色!Label1.Fo
9、reColor = RGB(255, 0, 0)2、设置窗体“改动字体中的标签Label1的字体为隶书 Forms!改动字体!Label1.FontName = 隶书“3、设置窗体“改动字体中的标签Label1的字体为加粗 Forms!改动字体!Label1.FontBold = True4、设置窗体“改动字体中的标签Label1的字体为倾斜 Forms!改动字体!Label1.FontItalic = True5、取消窗体“改动字体中的标签Label1的字体的下划线 Forms!改动字体!Label1.FontUnderline = False返回返回对象的援用实例-21、翻开窗体主控面板
10、DoCmd.OpenForm 主控面板2、封锁当前窗体 DoCmd.Close3、焦点置于文本框Text1 Text1.SetFocus4、清空文本框Text1 Text1 = “5、 n = Forms!改动字体!Frame1 选项组的值返回返回常用的VBA命令 翻开操作翻开操作封锁操作封锁操作 输入操作输入操作输出操作输出操作 返回返回翻开操作 翻开窗体。其命令格式如下: DoCmd.OpenForm formname,view,filtername,wherecondition,datamode,windowmode例:以只读数据方式翻开“教师信息窗体。DoCmd.OpenForm 教师
11、信息, acFormReadOnly返回返回封锁操作封锁操作 其命令格式如下:其命令格式如下:DoCmd.Close objecttype,objectname,save例:封锁例:封锁“工资统计表报表。工资统计表报表。DoCmd.Close acReport, 工资统计表工资统计表返回返回输入操作输入框输入框 InputBox函数函数格式如下:格式如下:InputBox(prompt,title,default,xpos,ypos,helpfile,context)A=InputBox(请输入半径:请输入半径:)返回返回输出操作 Private Sub aa() Dim a, b a = I
12、nputBox(请输入半径:请输入半径:) b = 3.14 * a 2 MsgBox (圆的面积圆的面积= & b) b = MsgBox(圆的面积圆的面积= & b, , 输出结果输出结果) 假设用标题等其它参数时,必需用假设用标题等其它参数时,必需用“变量变量= End Sub返回返回输出操作音讯框音讯框 MsgBox 函数函数其命令格式如下:其命令格式如下:MsgBox(prompt,buttons,title,helpfile,context) Private Sub aa()Dim a MsgBox (欢迎!欢迎!)a = MsgBox(热烈欢迎!热烈欢迎!, ,
13、输出文字输出文字)End SubMsgBox详细阐明详细阐明点击翻开Word文档返回返回返回返回记录操作 跳到第一个:跳到第一个:DoCmd.GoToRecord , , acFirst 跳到最后一个:跳到最后一个: DoCmd.GoToRecord , , acLast 下一个:下一个: DoCmd.GoToRecord , , acNext 上一个:上一个: DoCmd.GoToRecord , , acPrevious返回返回VBA的根本控制构造 构造化程序设计方法有三种根本的程序构造化程序设计方法有三种根本的程序控制构造控制构造:顺序构造顺序构造分支选择构造分支选择构造循环构造。循环构
14、造。 返回返回分支选择构造 VBA提供了如下两种常用的选择语句If语句 -分支构造Select Case语句 -多分支构造返回返回1、IF 语句 格式:格式:If Then ElseEnd if返回返回【实例【实例2】验证密码】验证密码 设计一个验证密码窗体,单击设计一个验证密码窗体,单击“确定时,运用过程确定时,运用过程验证密码正确与否正确密码大写验证密码正确与否正确密码大写ASDF 假设不对,信息窗标题假设不对,信息窗标题“验证,提示验证,提示“密码错误,密码错误,请重新输入!,请重新输入!, 单击单击“重试按钮时,将密码清空,焦点落在文本框;重试按钮时,将密码清空,焦点落在文本框; 假设
15、输入正确,翻开主控面板,并封锁当前窗体验假设输入正确,翻开主控面板,并封锁当前窗体验证密码。证密码。例2见窗体:验证密码返回返回单击事件驱动程序代码Private Sub 确定_Click()Dim aIF Forms!验证密码!Text1 = ASDF Then DoCmd.Close DoCmd.OpenForm 主控面板Else a = MsgBox(密码错误,请重新输入!, 5 + 48 + 0, 验证) If a 4 Then Quit Else Text1 = Text1.SetFocus End IfEnd IfEnd Sub返回返回2、Select Case语句 格式:格式:S
16、elect Case Case Case Case ElseEnd Select返回返回【实例【实例3】评价等级】评价等级 制造窗体“A班成果表,添加2个按钮如图: 单击“下上一记录按钮,显示下上一记录的信息,并在信息框显示该生等级 等级规范:平均分 XX=60,及格 80X=70,中等 90X=80,良好 =90,优秀例3见窗体: A班成果表返回返回添加翻页按钮操作步骤添加按钮,在弹出的导游中,选择记录导航:转至下上一项记录封锁导游后翻开事件过程 在事件过程中的语句DoCmd.GoToRecord , , acNext之后添加如下页程序 :返回返回相当于省略了=60“下一记录单击事件驱动程序
17、代码Private Sub Command1_Click()Dim n, i As IntegerDoCmd.GoToRecord , , acNext 下一记录n = Forms!A班成果表!平均分Select Case n Case Is 60 i = MsgBox(不及格, , 该生等级) Case Is 70 i = MsgBox(及格, , 该生等级) Case Is 80 i = MsgBox(中等, , 该生等级) Case Is =90Dj=优秀Case Is =80 Dj=良好Case Is =70 Dj=中等Case Is =60 Dj=及格Case Is 60Dj=不及格
18、End Selecti = MsgBox(Dj, , 该生等级) Exit_Command1_Click: Exit Sub返回返回循环构造 在VBA中,可以经过运用循环语句来控制程序反复执行一组语句。VBA提供了如下三种常用的循环语句:ForNextDo WhileLoopDo UntilLoop返回返回 3、ForNext 语句语句格式如下:格式如下:For = To Step Next 返回返回【实例【实例4】求偶数和】求偶数和 制造窗体“求偶数和,添加控件如图: 在TEXT1中输入上界 单击“计算按钮 结果显示在TEXT2中例4见窗体:求偶数和返回返回单击计算按钮驱动程序代码Priva
19、te Sub 计算_Click()Dim n, sn = Forms!求偶数和!Text1s = 0For i = 2 To n Step 2 s = s + iNext iForms!求偶数和!Text2 = sEnd Sub返回返回4、Do WhileLoop 格式如下:格式如下:Do While Loop返回返回【例【例5】程序运转后,音讯框输出结果是多少?】程序运转后,音讯框输出结果是多少?Dim a,b,c As Integera=10:b=1:c=1Do While c=ab=b*2c=c+1LoopMsgbox b (210=1024)Msgbox c (11)返回返回5、Do UntilLoop 格式如下:格式如下:Do Until Loop 返回返回【例【例6】用】用Do UntilLoop 完成【例完成【例4】Dim a,b,c As Integera=10: b=1: c=1Do Until cab=b*2c=c+1LoopMsgbox bMsgbox cDim a,b,c As Integera=10:b=1:c=1Do W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自升式塔式起重机生产项目可行性研究报告申请立项
- 二零二五年度夫妻感情修复-暂时分居协议3篇
- 2025版矿山机械设备采购合同规范模板6篇
- 铸造产业园建议书可行性研究报告备案
- 智能控制与技术改造项目申请报告可行性研究报告
- 广西河池市(2024年-2025年小学六年级语文)人教版课后作业((上下)学期)试卷及答案
- 机场改造项目建设方案
- 高速公路改造项目环境影响评估
- 中国灌胶机行业投资前景分析及未来发展趋势研究报告(智研咨询发布)
- 新型环保砖建议书可行性研究报告备案
- 2025年1月八省联考河南新高考物理试卷真题(含答案详解)
- 物业管理服务人员配备及岗位职责
- 建设工程检试验工作管理实施指引
- 郑州2024年河南郑州市惠济区事业单位80人笔试历年参考题库频考点试题附带答案详解
- 深静脉血栓的手术预防
- 【9道期末】安徽省合肥市庐阳区2023-2024学年九年级上学期期末道德与法治试题
- 软件租赁合同范例
- 腹腔镜全胃切除手术配合
- 安徽省芜湖市2023-2024学年高一上学期期末考试 物理 含解析
- 2024年社区工作者考试必背1000题题库【含答案】
- 初中数学教师跟岗学习总结
评论
0/150
提交评论