Download presentation
Presentation is loading. Please wait.
1
第8章 Access编程基础
2
知识网络图
3
窗体结构
4
窗体类型 图8.3纵栏式窗体
5
窗体类型
6
窗体类型 图8.5 主/子窗体
7
窗体类型 图8.6 图表窗体
8
窗体类型 图8.7数据透视表窗体
9
8.2 创建窗体
10
8.2.1使用向导创建窗体 【例8.1】创建一个纵栏式窗体,窗体名为“学生基本信息”,窗体视图如图8.3所示,窗体上显示学号、姓名、性别、所在学院、照片五个字段。
11
8.2.1使用向导创建窗体 【例8.1】创建一个纵栏式窗体,窗体名为“学生基本信息” 1、单击“使用向导创建窗体”,选择数据源和字段
12
8.2.1使用向导创建窗体 2、选择一种窗体布局“纵栏表”
13
8.2.1使用向导创建窗体 3、选择一种样式“标准”
14
8.2.1使用向导创建窗体 4、输入窗体标题“学生基本信息”, 。
15
8.2.1使用向导创建窗体 窗体的设计视图
16
8.2.2使用设计视图创建窗体 【例8.2】采用“使用设计视图创建窗体”方式完成【例8.1】。 1、单击“使用设计视图创建窗体”,
17
8.2.2使用设计视图创建窗体 2、选择数据源:鼠标右击窗体主体节以外的灰色区域,弹出如图8.14所示快捷菜单 鼠标点击这里
18
8.2.2使用设计视图创建窗体 保存窗体
19
8.3 设计窗体 8.3.1常用控件
20
8.3 设计窗体 【例8.3】在【例8.1】的基础上,向窗体添加5个命令按钮“上一学生”、“下一学生”、“添加学生”、“删除学生”、“关闭窗体”,且按钮具有相应功能,增加一个标签“学生基本信息管理”。其运行界面如图8.18。
21
8.3 设计窗体 先确认“控件向导”处在开启状态,选定工具栏上“命令按钮”,然后在窗体相应位置上单击,出现如图8.19窗口
22
8.3 设计窗体 选择按钮风格
23
8.3 设计窗体 为命令按钮命名,每一个按钮的名字在一个窗体中是唯一的
24
8.3 设计窗体 8.3.3控件的属性 图8.22 “关闭窗体”按钮的属性窗口 图8.23 “关闭窗体”按钮的事件属性
25
名称 属性 说明 窗 体 标题 运行时显示在窗体标题栏上的文字。 图片 可以将一幅图片作为窗体的背景。 记录源 用来选择窗体要管理的数据来源的表或查询。 文 本 标 签 文本对象的名字,代码中使用名称来引用一个对象,如t1 显示出来的文本内容,代码中使用caption表示,在程序中可以通过修改caption的属性来修改显示出来的文字。如一个文本标签的名字为t1,则t1.caption表示文本标签的标题属性。t1.caption="北京奥运" 将该文本标签显示的文字改为了“北京奥运”。 字体大小 代码表示:名称.fontsize 如设定字体大小为12 代码表示t1.fontsize=12 字体颜色 代码表示:名称.forecolor 如设定字体为红色,代码表示t1.forecolor=255 文本框 含义同文本标签,如score。 控件来源 将该文本框同记录源中的某个字段绑定,用来显示或修改该字段的内容 默认值 文本框里的初始值。代码表示:名称.value。如score.value=80表示将名称为score的文本框里的值赋值为80。 按钮 使用向导生成的按钮或已经编写事件过程的命令按纽,名称不能随意改变,如果要改名称,必须在生成的代码里要做相应改变。 显示在命令按钮上的文字。 命令按钮的外观可以使用图片代替。
26
8.3.4控件的事件:所谓事件是一个控件可以辨认的动作,
图8.23 “关闭窗体”按钮的事件属性
27
8.4 模块 标准模块 类模块
28
8.5 VBA编程基础 8.5.1VBA注释 在VBA程序中,注释可以通过以下两种方式实现: 使用Rem语句 :Rem 注释语句 用“'”号
'注释语句 【例8.4】 Dim MyStr1,MyStr2 MyStr1 = "Hello" :Rem 注释在语句之后要用冒号隔开。 MyStr2 = "Goodbye" '这也是一条注释;无需使用冒号。
29
8.5.2 VBA数据类型 数据类型 存储空间 说明 Boolean(布尔) 2字节 True或false Byte(字节) 1字节
用于存储二进制数,范围:0~255(0~28) Integer(整型) 整数,最高位是符号位,类型符“%”,如10、-10、10% Long(长整型) 4字节 整数,最高位是符号位,类型符“&”,如10&,123456& Single(单精度) 浮点数,精确度7位,类型符“!”,如10.5!、10.5 Double(双精度) 8字节 浮点数,精确度16位,类型符“#”,如10.5# Currency(货币) Decimal(小数) 14字节 存储从 -10^28-1 到 10^28-1 范围的数字 Date(日期) 日期文字须以数字符号“#”扩起来,例如,#January 1, 2006# String(字符) 字符长度 对应表中文本数据类型,定界符为“"”,如"123","welcome" Object(对象) 储存对象地址来引用对象 Variant(变体) 根据需要 可以表示上述任何一种类型
30
8.5.3 变量 使用Dim语句声明变量格式: Dim 变量名 A s 数据类型 【例8.6】 声明一个名为MyName的字符串变量。
Dim MyName As String 给变量赋值: MyName="姚明" 改变变量的值: MyName="小巨人"
31
/:除法运算。用来进行两个数的除法运算并返回一个 浮点数。
8.5.4 表达式 1.数学运算 +:加法运算,也适合于字符串的之间的连接运算。 -:加法运算。 * :乘法运算。 /:除法运算。用来进行两个数的除法运算并返回一个 浮点数。 \:整除运算。返回两数相除后的整数部分。 Mod:求余运算。例如:21 Mod 2表示21被1整除以后 的余数,结果为1。 ^:幂运算。例如:3^2 表示以3为底的2次方,结果为9。
32
关系运算也称比较运算,它表示不等式的真或假,主要用于数值、日期等之间的比较。VB共提供六种运算符,分别是:
2.关系运算 关系运算也称比较运算,它表示不等式的真或假,主要用于数值、日期等之间的比较。VB共提供六种运算符,分别是: =(等于),>(大于),<(小于),>=(大于等于),<=(小于等于)和<>(不等于)。 3.逻辑运算 A B Not A非 And与 Or或 T F 4.连接运算 连接运算符作用是将两个字符串连接起来,包含“+”和“&”。 “+”只能连接两个字符串,“&”可以将两个不同类型的表达式强制连接。
33
8.5.2 VBA数据类型 在VBE窗口,运行菜单【视图】【立即窗口】命令,弹出如图8.26立即窗口,输入“?”号,在问号后输入表达式,回车后即可显示表达式结果 图8.26 立即窗口
34
8.5.5 系统函数 按功能来分,常用的可分为数学函数、字符函数、转换函数、日期函数、测试函数等。 函数的使用格式:函数名(参数列表)
函数格式 说明 应用举例 CStr(表达式) 将表达式转换为字符串。其他类型转化函数有:CBool、CByte、CCur、 CDate、 CDbl、CDec、CInt、 CLng、CSng、CStr、CVar、 CInt( ) 结果:2345 CStr( ) 结果:" " "北京"+cstr(2008)相当于"北京"+"2008" Val(字符串) 将字符串转化为数值型 Val("16 8th Street.") 结果:168 Int(数值) 返回小于数值的整数部分 Int(99.8) 结果:99 Int(-99.8) 结果:-100。 Len(字符串) 返回字符串长度 len("北京奥运") 结果:4
35
函数格式 说明 应用举例 Right(字符串,n) 字符串右取n个字符 right("北京奥运",2) 结果:奥运 Left(字符串,n) 字符串左取n个字符 left("北京奥运",2) 结果:北京 Mid(字符串,n, m) 字符串从n位置起取m个字符,无m则取后面所有字符 mid("北京奥运",3 ,2) 结果:奥运 mid("北京奥运",3) 结果:奥运 ucase(字符串) 将字符串转化为大写 ucase("hello") 结果:HELLO lcase(字符串) 将字符串转化为小写 lcase("HELLO") 结果:hello Date() 返回当前日期 Date() 结果: (若系统日期为 ) Day(日期) 返回某个日期中的日,类似函数:year(日期)、month(日期) Day(Date()) 结果:20 Year(Date()) 结果: Month(Date()) 结果:12 iif(条件,表达式1,表达式2) 条件为真,返回表达式1,否则返回表达式2 Score=80 iif(score>=60,"及格","不及格") 结果:及格
36
8.6 VBA程序流程控制语句 选择结构 B A 条件 N Y 循环结构图 A 条件 Y N A B 顺序结构
37
8.6.1 顺序结构 【例8.8】创建一个窗体名为“计算圆面积和周长”,功能是能接受用户输入一个圆的半径,根据用户输入的半径进行计算圆的面积和周长,窗体设计视图如图8.28(a),窗体运行图如图8.28(b),在第一个文本框输入半径后,单击“计算”按钮,将计算出来的圆的面积和周长分别显示在相应的文本框中,单击“关闭”按钮,可以关闭窗体
38
属性 控件名称 标题 说明 半径 该标签在程序运行时仅仅作为提示,名称可采用默认或随意 周长 同上 面积 bj
文本框,用来输入半径,文本框无标题属性 zc 文本框,用来显示周长 mj 文本框,用来显示面积 Command1 计算 采用非向导方式生成,该名称可采取默认,但一旦编写相应事件过程后,名称不宜随便修改。 关闭 采用向导方式生成,选择“类别”为窗体操作,“操作”为关闭窗体,名称可采用默认或随意命名,一旦创建后,不要随意改变其名称。
39
创建事件过程,单击选定“计算”按钮,单击鼠标右键,执行快捷菜单中“属性”项,在属性窗口中选择“事件”页面,在“单击”项后选择“事件过程”,单击“…”,进入VBA界面,系统自动生成如下代码:
Private Sub Command1_Click() End Sub (4)编写代码,在两行代码中间输入如下命令序列 zc.Value = 3.14 * bj.Value * 2 mj.Value = 3.14 * bj.Value ^2
40
条件语句 ——if语句 格式1: if <条件> then <语句序列1> end if 格式2:
else <语句序列2> end if 格式3: If <条件1> Then <语句序列1> ElseIf <条件2> Then <语句序列2> Else <语句序列3> End If
41
【例8. 9】创建一个窗体名为“判断成绩”,功能是能接受用户输入一个成绩,根据用户输入的成绩进行判断成绩是否及格,窗体运行图如8
【例8.9】创建一个窗体名为“判断成绩”,功能是能接受用户输入一个成绩,根据用户输入的成绩进行判断成绩是否及格,窗体运行图如8.29(a),输入成绩后,单击“判断成绩是否及格”按钮,弹出图8.29(b)对话框,若成绩大于等于60,对话框里提示“成绩及格”,若成绩小于60,对话框提示“成绩不及格”。
42
属性设置 控件名称 标题 说明 标签1 成绩 该标签在程序运行时仅仅作为提示,名称可随意 score 文本框,用来输入成绩,文本框无标题属性
Command1 判断成绩是否及格 采用非向导方式生成,该名称可采取默认,但一旦编写相应事件过程后,名称不宜随便修改。
43
(3)单击选定“判断成绩是否及格”按钮,单击鼠标右键,执行快捷菜单中“属性”项,在属性窗口中选择“事件”页面,在“单击”项后选择“事件过程”,单击“…”,进入VBA界面,系统自动生成如下代码:
Private Sub Command1_Click() End Sub (4)在两行代码中间输入如下命令序列 If score.Value >= 60 Then MsgBox "成绩及格" Else MsgBox "成绩不及格" End If
44
条件语句 —— Select Case语句 格式: Select Case <检验表达式> Case <比较列表1>
<语句序列1> Case <比较列表2> <语句序列2> …… [Case Else] <语句序列n> End Select 说明: 1、<比较列表>可以是如下几种形式: (1)表达式(如60,2*x)。 (2)表达式1 to 表达式2(表示在表达式1和表达式2之间)。 (3)is 关系运算符(如is <=100)。 (4)表达式1,表达式2,……。 2、如果有一个以上的Case子句与<检验表达式>匹配,则VBA只执行第一个匹配的Case字句后面的语句组。 3、如果前面的Case子句与<检验表达式>都不匹配,则可在Case Else子句后面的语句块。
45
【例8. 10】创建一个窗体“成绩绩点计算”,功能是能接受用户输入成绩,根据用户输入的成绩按照表8-6进行计算成绩绩点,窗体设计视图如图8
【例8.10】创建一个窗体“成绩绩点计算”,功能是能接受用户输入成绩,根据用户输入的成绩按照表8-6进行计算成绩绩点,窗体设计视图如图8.30 (a),窗体运行图如图8.30 (b),在第一个文本框输入成绩后,单击“计算”按钮,将计算出来的绩点分别显示在相应的文本框中。 表8-6 成绩绩点转换表 绩 点 1.3 1.7 2.0 2.3 2.7 3.0 3.3 3.7 4 百分制 <60 61 62~65 66~70 71~74 75~77 78~81 82~84 85~89 ≥90
46
控件名称 标题 说明 成绩 该标签在程序运行时仅仅作为提示,名称可随意 绩点 同上 score 文本框,用来输入成绩,文本框无标题属性 scorepoint 文本框,用来显示绩点。 Command1 计算 采用非向导方式生成,该名称可采取默认,但一旦编写相应事件过程后,名称不宜随便修改。
47
Private Sub Command1_Click()
Select Case score.Value Case Is < 60 scorepoint.Value = 0 Case Is = 60 scorepoint.Value = 1 Case Is = 61 scorepoint.Value = 1.3 Case 62 To 65 scorepoint.Value = 1.7 Case 66 To 70 scorepoint.Value = 2 Case 71 To 74 scorepoint.Value = 2.3 Case 75 To 77 scorepoint.Value = 2.7 Case 78 To 81 scorepoint.Value = 3 Case 82 To 84 scorepoint.Value = 3.3 Case 85 To 89 scorepoint.Value = 3.7 Case 90 To 100 scorepoint.Value = 4 End Select End Sub
48
循环——for……next语句 格式: For <循环变量>=初值To 末值 [Step 步长] [<语句序列1>]
[Exit For] [<语句序列2>] Next <循环变量> 说明: 执行过程如图8.13所示。 循环变量必须是数值型。 步长默认为1。 一般初值小于末值,如果初值大于末值,步长要为负数。
49
【例8. 11】创建一个窗体“计算1到10的累加和”,窗体设计视图和运行图分别见图8. 31和8
【例8.11】创建一个窗体“计算1到10的累加和”,窗体设计视图和运行图分别见图8.31和8.32,要求单击“开始计算”按钮,将计算结果显示在文本框中。 图8.33求1到10累加和流程图 Sum=sum+i i<=10 Y N Sum=0 i=1 i=i+1 显示sum
50
Private Sub Command1_Click() Dim sum As Integer sum = 0
表8-8 “计算1到10的累加和”窗体控件属性 控件名称 标题 说明 1+2+……10= 名称可随意 total 文本框,用来显示结果 Private Sub Command1_Click() Dim sum As Integer sum = 0 For i = 1 To 10 Step 1 sum = sum + i Next i total.Value = sum End Sub
51
注释: Dim sum As Integer声明一个整型变量sum,用来存放和。 Sum=0,在计算之前先初始化为0。 For i = 1 To 10 Step 1这里step 1可以省略。 Sum=sum+i表示将i的值累加到sum中。 Total.value=sum表示将计算的结果赋值给total,即显示在文本框中。
52
循环—— do ……loop语句 格式1: Do [while | until 条件表达式] [<语句序列1>]
[Exit Do] [<语句序列2>] Loop 格式2: Do Loop [while | until 条件表达式] 说明: 图8.15、图8.16分别是格式1、格式2的执行过程 格式1先判断后执行,格式2先执行后判断,循环体内的语句至少执行一次。 While指明条件为真是执行循环体内的语句,until则相反,条件为假时执行循环体语句。 如果没有while或until,循环体中一定要有exit do,否则循环无法结束。
54
【例8.12】采用do while…Loop语句完成【例8.11】要求,界面和控件属性完全同【例8.11】。
Private Sub Command1_Click() Dim sum As Integer sum = 0 i=1 Do While i<=10 sum = sum + i i=i+1 Loop total.Value = sum End Sub
Similar presentations