第8章VBA程序设计

上传人:re****.1 文档编号:592159114 上传时间:2024-09-19 格式:PPT 页数:25 大小:750.03KB
返回 下载 相关 举报
第8章VBA程序设计_第1页
第1页 / 共25页
第8章VBA程序设计_第2页
第2页 / 共25页
第8章VBA程序设计_第3页
第3页 / 共25页
第8章VBA程序设计_第4页
第4页 / 共25页
第8章VBA程序设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第8章VBA程序设计》由会员分享,可在线阅读,更多相关《第8章VBA程序设计(25页珍藏版)》请在金锄头文库上搜索。

1、第第8 8章章 VBAVBA程序设计程序设计VBAVBA(Visual Basic Applications)是)是Microsoft公司公司Office系列软件中内置的用系列软件中内置的用来开发应用系统的编程语言。来开发应用系统的编程语言。VBA和宏都可以实现和宏都可以实现Access操作的自动操作的自动化。宏本身是一种控制方式简单的程序,它化。宏本身是一种控制方式简单的程序,它由由Access提供的命令实现;而提供的命令实现;而VBA程序则程序则需要用户自行编写。需要用户自行编写。 2 28.1 基基 本本 概概 念念1、程序:、程序:计算机程序(通常简称程序)是指计算机程序(通常简称程序

2、)是指一组指示计算机每一步动作的指令,通常用一组指示计算机每一步动作的指令,通常用某种程序设计语言编写。某种程序设计语言编写。2、模块就是存储在一个单元中的命令和过程、模块就是存储在一个单元中的命令和过程的集合。模块是基于的集合。模块是基于VB程序设计语言而创程序设计语言而创建的。建的。 3 3模块由过程组成,每一个过程都由一个函模块由过程组成,每一个过程都由一个函数或一个子程序所组成。数或一个子程序所组成。过程过程(Procedure):是由:是由VB代码组成的。代码组成的。包含一系列执行操作或计算数值的语句和包含一系列执行操作或计算数值的语句和调用对象方法的语句。调用对象方法的语句。4 4

3、子程序子程序子程序:也称为子程序:也称为子程序:也称为子程序:也称为SubSub过程。是执行一项操作或一系过程。是执行一项操作或一系过程。是执行一项操作或一系过程。是执行一项操作或一系列操作的过程。列操作的过程。列操作的过程。列操作的过程。子程序以关键字子程序以关键字子程序以关键字子程序以关键字“ “Sub”Sub”开始,并以开始,并以开始,并以开始,并以“ “End Sub”End Sub”语语语语句结束。句结束。句结束。句结束。语句格式:语句格式:语句格式:语句格式:SubSub ( ( ) ) End SubEnd Sub5 5一个简单的一个简单的Sub过程过程【例例例例1 1】 创建一

4、个创建一个创建一个创建一个SubSub过程,自动弹出一个系统信息过程,自动弹出一个系统信息过程,自动弹出一个系统信息过程,自动弹出一个系统信息框,并打开框,并打开框,并打开框,并打开“ “文物查询系统文物查询系统文物查询系统文物查询系统” ”。 Private Sub Command0_Click()Private Sub Command0_Click() MsgBoxMsgBox ( (欢迎进入广州博物馆!欢迎进入广州博物馆!欢迎进入广州博物馆!欢迎进入广州博物馆!) DoCmd.openformDoCmd.openform“ “文物管理封面文物管理封面文物管理封面文物管理封面 End Su

5、b End SubSub结尾Sub开头6 6事件驱动:事件驱动:事件驱动:事件驱动: 与宏一样,我们可以在窗体或报表的与宏一样,我们可以在窗体或报表的与宏一样,我们可以在窗体或报表的与宏一样,我们可以在窗体或报表的“ “事件事件事件事件” ”中编制事件驱动程序,当事件发生时,模块中中编制事件驱动程序,当事件发生时,模块中中编制事件驱动程序,当事件发生时,模块中中编制事件驱动程序,当事件发生时,模块中相应的过程自动执行。相应的过程自动执行。相应的过程自动执行。相应的过程自动执行。7 7一、常用的一、常用的VBA命令命令 变量声明变量声明打开操作打开操作关闭操作关闭操作 输出操作输出操作 8 81

6、 1、变量声明:、变量声明:、变量声明:、变量声明: 在引用变量之前应首先定义变量的数据类型。在引用变量之前应首先定义变量的数据类型。在引用变量之前应首先定义变量的数据类型。在引用变量之前应首先定义变量的数据类型。语句格式:语句格式:Dim As 例:例: Dim a As string Dim x,y As Integer(若不声明变量类型,该变量可存放任意类型的数据)(若不声明变量类型,该变量可存放任意类型的数据)(若不声明变量类型,该变量可存放任意类型的数据)(若不声明变量类型,该变量可存放任意类型的数据) 例例: Dim a, nameDim a, name a=5 a=5 name=

7、“ name=“王康王康王康王康”a字符型变量字符型变量X,y为整型变量为整型变量给变量赋值的语句给变量赋值的语句9 92、打开操作、打开操作 打开窗体命令格式如下:打开窗体命令格式如下:打开窗体命令格式如下:打开窗体命令格式如下: DoCmd.OpenFormDoCmd.OpenForm formnameformname打开报表命令:打开报表命令:打开报表命令:打开报表命令:DoCmd.OpenReportDoCmd.OpenReport ReportnameReportname例:打开例:打开例:打开例:打开“ “教师信息教师信息教师信息教师信息” ”窗体。窗体。窗体。窗体。DoCmd.O

8、penFormDoCmd.OpenForm ” ”教师信息教师信息教师信息教师信息” ”10103、关闭操作、关闭操作 其命令格式如下:其命令格式如下:DoCmd.Close objecttype,objectname例:关闭例:关闭“成绩统计成绩统计”报表。报表。DoCmd.Close acReport “成绩统计成绩统计”11114、输出操作、输出操作消息框消息框消息框消息框 (MsgBoxMsgBox 函数)函数)函数)函数)其命令格式如下:其命令格式如下:其命令格式如下:其命令格式如下:MsgBoxMsgBox( (信息内容信息内容信息内容信息内容 ,对话框类型,对话框类型,对话框类型

9、,对话框类型+ +图标类型图标类型图标类型图标类型 ,对话框,对话框,对话框,对话框标题标题标题标题) ) 例:例:例:例:MsgBoxMsgBox(输入密码错!输入密码错!输入密码错!输入密码错!, 5 + 48, , 5 + 48, 验证密码验证密码验证密码验证密码)MsgBox使用说明使用说明121213135、记录操作、记录操作 第一个:第一个:第一个:第一个: DoCmd.GoToRecord , , acFirst 下一个:下一个:下一个:下一个: DoCmd.GoToRecord , , acNext 上一个:上一个:上一个:上一个: DoCmd.GoToRecord , , a

10、cPrevious 最后一个:最后一个:最后一个:最后一个: DoCmd.GoToRecord , , acLast14148.2 VBA的基本程序结构的基本程序结构 结构化程序设计方法有三种基本的程序控制结构结构化程序设计方法有三种基本的程序控制结构结构化程序设计方法有三种基本的程序控制结构结构化程序设计方法有三种基本的程序控制结构: :顺序结构顺序结构顺序结构顺序结构分支(选择)结构分支(选择)结构分支(选择)结构分支(选择)结构循环结构。循环结构。循环结构。循环结构。 15151、顺序结构:、顺序结构:功能:语句由上至下顺序执行。功能:语句由上至下顺序执行。语句语句1语句语句2语句语句3

11、例:例:Private Sub Command0_Click()MsgBox (“欢迎进入文物查询系统!欢迎进入文物查询系统!)DoCmd.OpenForm “文物管理封面文物管理封面End Sub16162、分支(选择)结构、分支(选择)结构 VBA提供了如下两种常用的选择语句提供了如下两种常用的选择语句If 语句语句 -分支结构分支结构Case语句语句-多分支结构多分支结构1717 IF 条件语句条件语句 语句格式:语句格式:语句格式:语句格式:IF IF ThenThen 1ElseElse 2End IFEnd IF功能:功能:若满足条件执行若满足条件执行THEN后面后面 1,否,否则

12、执行则执行ElseElse后的后的后的后的 2语句序列语句序列1条件语句序列语句序列2YESNO 1818【实例实例2】验证密码验证密码 设计一个验证密码窗体,单击设计一个验证密码窗体,单击设计一个验证密码窗体,单击设计一个验证密码窗体,单击“ “确定确定确定确定” ”时,使用过程验证密码时,使用过程验证密码时,使用过程验证密码时,使用过程验证密码正确与否;正确与否;正确与否;正确与否; 如果错误,提示如果错误,提示如果错误,提示如果错误,提示“ “密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!” ”,单击,单击,单击,单击“ “重试重试重试重试” ”

13、按钮时,将密码清空,焦点落在文本框;按钮时,将密码清空,焦点落在文本框;按钮时,将密码清空,焦点落在文本框;按钮时,将密码清空,焦点落在文本框; 若输入正确,打开若输入正确,打开若输入正确,打开若输入正确,打开“ “学籍管理系统学籍管理系统学籍管理系统学籍管理系统 ,并关闭当前(验证密码),并关闭当前(验证密码),并关闭当前(验证密码),并关闭当前(验证密码)窗体。窗体。窗体。窗体。进入进入“ “学籍管理系统学籍管理系统学籍管理系统学籍管理系统 密码正确?弹出信息框弹出信息框YESNO 1919事件驱动程序代码事件驱动程序代码事件驱动程序代码事件驱动程序代码Private Sub Privat

14、e Sub 确定确定确定确定_Click()_Click()Dim aDim aIF Forms!IF Forms!验证密码验证密码验证密码验证密码!Text1 = “123456 Then!Text1 = “123456 Then DoCmd.CloseDoCmd.Close DoCmd.OpenFormDoCmd.OpenForm 文物管理封面文物管理封面文物管理封面文物管理封面 ElseElse a = a = MsgBoxMsgBox(密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!, 5 + 48 + 0, , 5 + 48 + 0, 验证验证

15、验证验证) IF a 4 Then IF a 4 Then Quit Quit Else Else Text1 = Text1 = Text1.SetFocus Text1.SetFocus End If End IfEnd IfEnd IfEnd SubEnd Sub 进入进入“ “学籍管理系统学籍管理系统学籍管理系统学籍管理系统 密码正确?弹出信息框弹出信息框YESNO 2020【实例实例2】若登录时需要用户名和密码的情况若登录时需要用户名和密码的情况2121Dim aDim aText1.SetFocusText1.SetFocusIF Forms!IF Forms!登录登录!Text1

16、 = !Text1 = adminadmin And Forms! And Forms!登录登录!Text2 = !Text2 = 123456123456 Then Then DoCmd.CloseDoCmd.Close DoCmd.OpenFormDoCmd.OpenForm “ “文物管理封面文物管理封面文物管理封面文物管理封面 ElseElse a = a = MsgBoxMsgBox( ( 密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!密码错误,请重新输入!, 5 + 48 + 0, , 5 + 48 + 0, 验证验证验证验证) IF a 4 Then IF a

17、 4 Then Quit Quit Else Else Text1 = Text1 = Text2 = Text2 = Text1.SetFocus Text1.SetFocus End If End IfEnd IfEnd If密码用户名进入主控面板进入主控面板密码正确?弹出信息框弹出信息框YESN 22222323 IF条件的应用举例条件的应用举例 条件查询条件查询条件查询条件查询 例:文物信息管理系统中按文物类别、年代查询。例:文物信息管理系统中按文物类别、年代查询。例:文物信息管理系统中按文物类别、年代查询。例:文物信息管理系统中按文物类别、年代查询。2424Private Sub C

18、ommand14_Click()Private Sub Command14_Click() Dim Dim strWstrW As String As String 定义条件字符串变量定义条件字符串变量定义条件字符串变量定义条件字符串变量strWstrW 存放条件存放条件存放条件存放条件 strWstrW = = 设变量初始值为空字符串设变量初始值为空字符串设变量初始值为空字符串设变量初始值为空字符串 Me.Combo0.SetFocus Me.Combo0.SetFocus 焦点放在焦点放在焦点放在焦点放在combo0combo0上上上上 IF Not IsNull(Me.Combo0) T

19、hen IF Not IsNull(Me.Combo0) Then 判断判断判断判断【类别类别类别类别】条件是否有输入的值条件是否有输入的值条件是否有输入的值条件是否有输入的值 strWstrW = = strWstrW & ( & (分类分类分类分类. .名称名称名称名称 like & Me.Combo0 & ) AND like & Me.Combo0 & ) AND 有输入值有输入值有输入值有输入值 End IFEnd IF IF Not IsNull(Me.Combo2) Then IF Not IsNull(Me.Combo2) Then 判断判断判断判断【年代年代年代年代】条件是否

20、有输入的值条件是否有输入的值条件是否有输入的值条件是否有输入的值 strWstrW = = strWstrW & ( & (年代年代年代年代 like & Me.Combo2 & ) AND like & Me.Combo2 & ) AND 有输入值有输入值有输入值有输入值 End IFEnd IF IF IF Len(strWLen(strW) 0 Then ) 0 Then 有输入条件有输入条件有输入条件有输入条件 strWstrW = = Left(strWLeft(strW, , Len(strWLen(strW) - 5) ) - 5) 用用用用LEFTLEFT函数截掉这函数截掉这函

21、数截掉这函数截掉这 and and 这这这这5 5个字符个字符个字符个字符 ElseElse MsgBoxMsgBox 请选择查询条件!请选择查询条件!请选择查询条件!请选择查询条件!, , , , 提示提示提示提示 End IFEnd IF Me.FilterMe.Filter = = strWstrW 在窗体中显示查询结果在窗体中显示查询结果在窗体中显示查询结果在窗体中显示查询结果 Me.FilterOnMe.FilterOn = True = True IF IF Me.Recordset.RecordCountMe.Recordset.RecordCount = 0 Then = 0 Then 用统计查询到满足条件的记录数来判断用统计查询到满足条件的记录数来判断用统计查询到满足条件的记录数来判断用统计查询到满足条件的记录数来判断无符合条件的信息无符合条件的信息无符合条件的信息无符合条件的信息 MsgBoxMsgBox 暂无符合条件的信息暂无符合条件的信息暂无符合条件的信息暂无符合条件的信息!, , !, , 提示提示提示提示 End IF End IFEnd SubEnd Sub2525

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号