1、第8章 Access编程基础,知识网络图,窗体结构,窗体类型,图8.3纵栏式窗体,窗体类型,窗体类型,图8.5 主/子窗体,窗体类型,图8.6 图表窗体,窗体类型,图8.7数据透视表窗体,82 创建窗体,8.2.1使用向导创建窗体,【例8.1】创建一个纵栏式窗体,窗体名为“学生基本信息”,窗体视图如图8.3所示,窗体上显示学号、姓名、性别、所在学院、照片五个字段。,8.2.1使用向导创建窗体,【例8.1】创建一个纵栏式窗体,窗体名为“学生基本信息” 1、单击“使用向导创建窗体”,选择数据源和字段,8.2.1使用向导创建窗体,2、选择一种窗体布局“纵栏表”,8.2.1使用向导创建窗体,3、选择一
2、种样式“标准”,8.2.1使用向导创建窗体,4、输入窗体标题“学生基本信息”, 。,8.2.1使用向导创建窗体,窗体的设计视图,8.2.2使用设计视图创建窗体,【例8.2】采用“使用设计视图创建窗体”方式完成【例8.1】。,1、单击“使用设计视图创建窗体”,,8.2.2使用设计视图创建窗体,2、选择数据源:鼠标右击窗体主体节以外的灰色区域,弹出如图8.14所示快捷菜单,鼠标点击这里,8.2.2使用设计视图创建窗体,保存窗体,83 设计窗体,8.3.1常用控件,83 设计窗体,【例8.3】在【例8.1】的基础上,向窗体添加5个命令按钮“上一学生”、“下一学生”、“添加学生”、“删除学生”、“关闭
3、窗体”,且按钮具有相应功能,增加一个标签“学生基本信息管理”。其运行界面如图8.18。,83 设计窗体,先确认“控件向导”处在开启状态,选定工具栏上“命令按钮”,然后在窗体相应位置上单击,出现如图8.19窗口,83 设计窗体,选择按钮风格,83 设计窗体,为命令按钮命名,每一个按钮的名字在一个窗体中是唯一的,83 设计窗体,8.3.3控件的属性,图8.22 “关闭窗体”按钮的属性窗口,图8.23 “关闭窗体”按钮的事件属性,8.3.4控件的事件:所谓事件是一个控件可以辨认的动作,,图8.23 “关闭窗体”按钮的事件属性,84 模块,类模块,标准模块,85 VBA编程基础,8.5.1VBA注释,
4、在VBA程序中,注释可以通过以下两种方式实现:使用Rem语句:Rem 注释语句用“”号注释语句 【例8.4】 Dim MyStr1,MyStr2 MyStr1 = “Hello“ :Rem 注释在语句之后要用冒号隔开。 MyStr2 = “Goodbye“ 这也是一条注释;无需使用冒号。,8.5.2 VBA数据类型,8.5.3 变量,使用Dim语句声明变量格式:Dim 变量名 A s 数据类型 【例8.6】 声明一个名为MyName的字符串变量。Dim MyName As String 给变量赋值:MyName=“姚明“ 改变变量的值:MyName=“小巨人“,8.5.4 表达式,1数学运算
5、:加法运算,也适合于字符串的之间的连接运算。:加法运算。* :乘法运算。/:除法运算。用来进行两个数的除法运算并返回一个 浮点数。:整除运算。返回两数相除后的整数部分。Mod:求余运算。例如:21 Mod 2表示21被1整除以后 的余数,结果为1。 :幂运算。例如:32 表示以3为底的2次方,结果为9。,关系运算也称比较运算,它表示不等式的真或假,主要用于数值、日期等之间的比较。VB共提供六种运算符,分别是:=(等于),(大于),=(大于等于),(不等于)。,3逻辑运算,2关系运算,4连接运算,连接运算符作用是将两个字符串连接起来,包含“+”和“&”。 “+”只能连接两个字符串,“&”可以将两
6、个不同类型的表达式强制连接。,8.5.2 VBA数据类型,图8.26 立即窗口,在VBE窗口,运行菜单【视图】【立即窗口】命令,弹出如图8.26立即窗口,输入“?”号,在问号后输入表达式,回车后即可显示表达式结果,8.5.5 系统函数,按功能来分,常用的可分为数学函数、字符函数、转换函数、日期函数、测试函数等。 函数的使用格式:函数名(参数列表),86 VBA程序流程控制语句,8.6.1 顺序结构,【例8.8】创建一个窗体名为“计算圆面积和周长”,功能是能接受用户输入一个圆的半径,根据用户输入的半径进行计算圆的面积和周长,窗体设计视图如图8.28(a),窗体运行图如图8.28(b),在第一个文
7、本框输入半径后,单击“计算”按钮,将计算出来的圆的面积和周长分别显示在相应的文本框中,单击“关闭”按钮,可以关闭窗体,属性,创建事件过程,单击选定“计算”按钮,单击鼠标右键,执行快捷菜单中“属性”项,在属性窗口中选择“事件”页面,在“单击”项后选择“事件过程”,单击“”,进入VBA界面,系统自动生成如下代码:Private Sub Command1_Click()End Sub (4)编写代码,在两行代码中间输入如下命令序列zc.Value = 3.14 * bj.Value * 2mj.Value = 3.14 * bj.Value 2,条件语句 if语句,格式1: if thenend i
8、f,格式2: if thenelseend if,格式3: If ThenElseIf ThenElseEnd If,【例8.9】创建一个窗体名为“判断成绩”,功能是能接受用户输入一个成绩,根据用户输入的成绩进行判断成绩是否及格,窗体运行图如8.29(a),输入成绩后,单击“判断成绩是否及格”按钮,弹出图8.29(b)对话框,若成绩大于等于60,对话框里提示“成绩及格”,若成绩小于60,对话框提示“成绩不及格”。,属性设置,(3)单击选定“判断成绩是否及格”按钮,单击鼠标右键,执行快捷菜单中“属性”项,在属性窗口中选择“事件”页面,在“单击”项后选择“事件过程”,单击“”,进入VBA界面,系统
9、自动生成如下代码:Private Sub Command1_Click()End Sub (4)在两行代码中间输入如下命令序列If score.Value = 60 ThenMsgBox “成绩及格“ElseMsgBox “成绩不及格“End If,条件语句 Select Case语句,格式: Select Case Case Case Case ElseEnd Select,说明: 1、可以是如下几种形式: (1)表达式(如60,2*x)。 (2)表达式1 to 表达式2(表示在表达式1和表达式2之间)。 (3)is 关系运算符(如is 匹配,则VBA只执行第一个匹配的Case字句后面的语句
10、组。 3、如果前面的Case子句与都不匹配,则可在Case Else子句后面的语句块。,【例8.10】创建一个窗体“成绩绩点计算”,功能是能接受用户输入成绩,根据用户输入的成绩按照表8-6进行计算成绩绩点,窗体设计视图如图8.30 (a),窗体运行图如图8.30 (b),在第一个文本框输入成绩后,单击“计算”按钮,将计算出来的绩点分别显示在相应的文本框中。,表8-6 成绩绩点转换表,Private Sub Command1_Click() Select Case score.Value Case Is 60scorepoint.Value = 0 Case Is = 60scorepoint.
11、Value = 1 Case Is = 61scorepoint.Value = 1.3 Case 62 To 65scorepoint.Value = 1.7 Case 66 To 70scorepoint.Value = 2 Case 71 To 74,scorepoint.Value = 2.3 Case 75 To 77scorepoint.Value = 2.7 Case 78 To 81scorepoint.Value = 3 Case 82 To 84scorepoint.Value = 3.3 Case 85 To 89scorepoint.Value = 3.7 Case 9
12、0 To 100scorepoint.Value = 4 End Select End Sub,格式: For =初值To 末值 Step 步长Exit For Next 说明: 执行过程如图8.13所示。 循环变量必须是数值型。 步长默认为1。 一般初值小于末值,如果初值大于末值,步长要为负数。,【例8.11】创建一个窗体“计算1到10的累加和”,窗体设计视图和运行图分别见图8.31和8.32,要求单击“开始计算”按钮,将计算结果显示在文本框中。,Private Sub Command1_Click()Dim sum As Integersum = 0For i = 1 To 10 Step
13、 1sum = sum + iNext itotal.Value = sum End Sub,表8-8 “计算1到10的累加和”窗体控件属性,注释: 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,即显示在文本框中。,循环 do loop语句,格式1: Do while | until 条件表达式 Exit Do Loop 格式2: Do Exit
14、Do Loop while | until 条件表达式,说明: 图8.15、图8.16分别是格式1、格式2的执行过程 格式1先判断后执行,格式2先执行后判断,循环体内的语句至少执行一次。 While指明条件为真是执行循环体内的语句,until则相反,条件为假时执行循环体语句。 如果没有while或until,循环体中一定要有exit do,否则循环无法结束。,【例8.12】采用do whileLoop语句完成【例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,