第12章 编写ACCESS应用程序
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 推荐网站:
– (Access实例) – /(VBA教程视频)
VBA简介
• 窗体示例
编程
开始编写程序
TxtBj
TxtZc
Private Sub cmdJS_Click() TxtZc = 2 * 3.14 * TxtBj End Sub
开始编写程序
• 表达式(p237~P238)与函数
– 典型表达式举例
5 mod 3 结果:2 说明:取余数 ―王‖ & ―梅‖ 结果:王梅 说明:连接字符串 或:―王‖ + ―梅‖
– 各类函数(P234~p237) – 输入/输出函数
• Msgbox和Inputbox
开始编写程序
• 使用变量
Private Sub cmdJH_Click() Dim temp temp = Text1 Text1 = Text2 Text2 = temp End Sub
VBA简介
小故事:深山里有位猎人,朋友送枪给他。猎人担心射击技 术掌握不好,又担心浪费子弹,于是,将枪悬于梁上,一弹 未发。 比喻:VBA就是枪,开发人员不会使用VBA,好比猎人不使 用枪来打猎。
VBA简介
• 在ACCESS使用VBA的意义
– 创建功能丰富的应用程序 – 没有VBA代码的Access数据库应用系统是一 个初步的系统 – ―没有做不到,只有想不到‖
– 工程上命名一般要遵守一定的规范,如:匈牙利表 示法,即―前缀+变量含义‖,变量的含义为一个或多 个英文单词,变量前缀为三个小写字母示意其类型
例如:intCount, strName, curSalary
开始编写程序
• 声明变量语句
P230 – Dim语句的格式 表12-1 Dim 变量名 [AS 类型][,变量名 [AS 类型]] 例如:Dim strName as string – 在程序中,通过Dim语句声明了变量名和数据类型, 称为显示声明;如果在Dim语句中只定义了变量名, 未定义数据类型,或没有变量声明语句而通过赋值 语句直接使用,称为隐式声明。 – 通过设置―要求变量声明‖,所有变量必须进行显示 说明,称为强制声明。 – 变量作用域:变量在程序中的作用范围,后续讲解
练习
程序基本结构-分支函数
• IIF函数
– IIf(条件表达式,表达式1,表达式2) – 条件表达式成立,返回表达式1,否则返回 表达式2 – 例如:mx=IIf(a>b,a,b)
变量mx存放a、b中的最大值
– 例如:i=iif(text1=null,0,text1)
Text1是窗体上的文本框名称
程序基本结构-循环
• For…Next(计数型)
– 计数循环,以指定的次数重复执行一组语句 – For 循环变量=初值 To 终值 [Step步长] 循环体 [Exit For] Next [循环变量]
第12章 编写ACCESS应用程序
主要内容
1、什么是VBA 代码 2、为什么要用 VBA
1、如何编写程 序
2、三大结构: 顺序、选择、循 环
1、过程与函数 2、与数据库对象结 合(类与对象) 3、与数据库结合 (ADO)
VBA简介
• 什么是VBA
– VBA (Visual Basic for Application)是VB的 子集,VB是微软公司推出的可视化Basic语 言,编程简单、功能强大。微软公司将它内 置到Microsoft Office系列软件中,使得 Microsoft Office系列软件在快速开发应用程 序时更加容易,且可以完成特殊而复杂的操 作,极大的扩展了Office的性能。在Access 中,用VBA语言编写的代码保存在模块里, 通过启动这个模块实现相应的功能。
程序基本结构
• 什么是流程控制
– 我们一天的生活
• • • • • • • • 早上起床 刷牙洗脸 吃早饭 上午上四节课 午餐 午休 下午上四节课 ……
过程1
过程2
过程3
– 程序也和日常生活一样,是按照顺序执行 的,这就是流程
程序基本结构
– 实际的流程并非完全是按顺序的,它可能会 因为一些原因发生变化。 – 日常生活的例子
– 符号常量
Const 常量 [AS 类型] = 常量表达式 例如:Const PI = 3.14159 阅读程序: Dim sngCircle As Single Const PI = 3.14159 sngCircle = 2 * PI * 25
– 系统常量
是Visual BASIC系统预先定义好的,用户可直接引用。 例如: vbRed vbOK vbYes
开始编写程序
• 声明变量
– 命名变量
(a)变量名必须以英文字母开头,可以包含字母、数字或下划 线字符―_‖。 (b)变量名不能包含空格、句点等字符。 (c)变量名的长度不能超过255个字符,且变量名不区分大小 写。 (d)不能在某一范围内的相同层次中使用重复的变量名。
(e)变量的名字不能是VBA的关键字。
思考
text1
text2
要求:单击【交换】按钮,数据1与数据2的内容交换。 提示:文本框赋值方法:text1=某个值
开始编写程序
• 变量:程序运行过程期间取值可以变化 的量
– 使用变量有三个步骤:
• 声明变量:告诉程序要使用的变量的名称和数据 类型 • 变量赋值:赋予变量一个要保存的值 • 使用变量:检索变量中保存的值,并在程Then msgbox “在家看电视” Else msgbox “去爬山” End if
程序基本结构-单分支
– IF语句
① 单路分支: 格式一:
If <表达式> Then <语句序列> End If
F
条件表达式 T 语句块
格式二: If <表达式> Then <语句>
程序基本结构-双分支
程序基本结构-顺序
• 顺序结构
– 根据程序中语句的书写顺序依次执行的语句 序列 – 流程图:
程序基本结构-分支
• 分支结构
– 分支结构最常用到的就是 if 语句, 它就如同日常 生活中常使用的如果…就… 是一样的意思。比 方說如果明天没下雨, 就去爬山以图形来表示就 是:
没有下雨
天是否下雨? 下雨 在家看电视 爬山
开始编写程序
• Msgbox
– 有时,仅仅给用户一个提示框,不需要返回值,可 以这样用: msgbox "保存成功!",vbInformation ,"提示―
– 第一个参数必须,后两个参数可选 msgbox "保存成功!"
开始编写程序
• InputBox
– 格式:InputBox(Prompt[, Title] [, Default] [, XPos, YPos] [, Helpfile, Context]) – 功能:提示用户输入一个字符串或数值。 – 例如:stuName=inputbox ("请输入学生姓名: ","ACCESS","王梅")
② 双路分支
格式一:
If <表达式> Then <语句序列1> Else <语句序列2> End If
格式二: If <表达式> Then <语句1> Else <语句2>
程序基本结构-双分支示例
又到月底了
Dim intReturen As Integer intReturen = MsgBox(―有钱没,借点?", vbQuestion + vbYesNo, "提问") If intReturen = vbYes Then msgbox "借我一些吧!" Else msgbox "我也没有钱哪!" End If 有钱没,借 点? ?
• 顺序结构 • 条件判断
– 判断条件的真假,然后程序根据真假选择不同过程执行 – If语句和Select Case语句
• 循环控制 – 程序依指定的条件做判断, 若条件成立则进入循环执 行循环內的动作。每执行完一次循环內动作,便再回 头做一次条件判断, 直到条件不成立后才结束循环。 – For语句和While语句
– 第一个参数必须,其他参数可选
练习
要求:求数据1、数据2和数据3中的最大值,结果显示在第4 个文本框,文本框名称依次:text1,text2,text3,text4
练习
text1 text2
Private Sub cmdJH_Click() If Text1 >= 60 Then Text2 = "及格了" Text2.ForeColor = vbGreen Else Text2 = "惨哦" Text2.ForeColor = vbRed End If End Sub
程序基本结构-循环
• 循环结构
– 重复相同的操作以完成计算,如1+2+3…+n, 重复―+‖运算,1*2*…*n ,重复―*‖运算。 – 需要通过计算机反复多次测试值,如鸡兔同 笼、百钱买百鸡等问题。 – 在数据库中,对表/查询数据的遍历。 – 不同写法:
• For…Next • Do…Loop • While…Wend
text1 text2
cmdJH
开始编写程序
• 程序书写规则
– 通常每条语句占一行,一行最多允许255个 字符 – 一行书写多条语句,语句之间用冒号―:‖隔开
intA = 3200:intB = 760
– 语句一行写不完,可用连接符空格和下划线 ―_‖
开始编写程序
• 注释语句
注释语句是非执行语句,用来提高程序的可读性,不被 解释和编译。注释语句显示为绿色。 格式1:rem 注释内容 说明:用rem引导的注释语句,如果放在其他语句后面, 之间用冒号分隔。 格式2: ' 注释内容 说明:用单引号引导的注释语句,放在其他语句后面时 无需使用冒号分隔
例如:strName= "Tom" intCount=300*4 dateBirthday=#1998-3-4# intAge=year(date)-year(dateBirthday)
开始编写程序
• 常量
– 直接常量:即常数,其类型和值由书写形式确定
例如:1.23 、 "12ABC" 、True、#2001/3/10#
程序基本结构-多分支
• 多分支
期末数据库考试
• • • • 90分以上出国游 80分买笔记本电脑 60-79分逛街 不及格吃一个月馒 头
多分支语句和此例类 似,表示多种可能
使用SELECT CASE 语句
程序基本结构-多分支
– Select Case语句,根据多个表达式列表的值, 选择多个操作中的一个对应执行 格式:
开始编写程序
• Msgbox
– 格式:msgbox(显示信息,按钮数目+图标类型,标题栏字 符串) – 功能:在对话框中显示消息,等待用户单击按钮,返回一个 整数,该值代表用户单击了哪个按钮。 – 例如:intSelect=MsgBox (―选择正确吗?‖,vbQuestion + vbOKCancel + vbDefaultButtion1, ―项目选择‖)
开始编写程序
• 变量赋值
– 使用―=‖ – 说明:
• 格式中的等号称为赋值号,与数学中等号意义不同,如表达式 a=a+1在数学上不成立,在赋值语句中经常使用 • 赋值号左边只能是变量名,不能是常量或表达式 • 赋值语句有计算和赋值双重功能,将赋值号右边的计算结果赋 给左边的变量
– 赋值号两边要类型匹配
• • • • • 早上起床 刷牙洗脸(没有牙膏、停水) 吃早饭 上午上课(老师生病) ……
– 程序的执行,也会因情况不同,执行过程产 生一些变化。
程序基本结构
– 程序执行的顺序因为情况的变化而选择不同的执行 过程,称之为流程控制(flow control)。 – 流程控制是计算机程序的灵魂,我们将会学到:
Select Case <测试表达式>
Case <表达式值列表1> <语句序列1> Case <表达式值列表2> <语句序列2> …… Case <表达式值列表n> <语句序列n> [Case Else <语句序列n+1>] End Select
程序基本结构-多分支示例
Private Sub cmdJH_Click() Select Case Text1 Case 90 To 100 Text2 = "尽情玩吧" Case 80 To 89 Text2 = "买IPHONE" Case 60 To 79 Text2 = "逛逛街吧" Case 0 To 50 Text2 = "吃一个月馒头" Case Else MsgBox "成绩有误,请输入0~100的数据!" End Select End Sub