《第8章VBA程序设计.ppt》由会员分享,可在线阅读,更多相关《第8章VBA程序设计.ppt(25页珍藏版)》请在三一办公上搜索。
1、第8章 VBA程序设计,2,VBA,VBA(Visual Basic Applications)是Microsoft公司Office系列软件中内置的用来开发应用系统的编程语言。VBA和宏都可以实现Access操作的自动化。宏本身是一种控制方式简单的程序,它由Access提供的命令实现;而VBA程序则需要用户自行编写。,3,8.1 基 本 概 念,1、程序:计算机程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写。2、模块就是存储在一个单元中的命令和过程的集合。模块是基于VB程序设计语言而创建的。,4,模块由过程组成,每一个过程都由一个函数或一个子程序所组成。过程
2、(Procedure):是由VB代码组成的。包含一系列执行操作或计算数值的语句和调用对象方法的语句。,5,子程序,子程序:也称为Sub过程。是执行一项操作或一系列操作的过程。子程序以关键字“Sub”开始,并以“End Sub”语句结束。语句格式:Sub()End Sub,6,一个简单的Sub过程,【例1】创建一个Sub过程,自动弹出一个系统信息框,并打开“文物查询系统”。Private Sub Command0_Click()MsgBox(欢迎进入广州博物馆!)DoCmd.openform“文物管理封面 End Sub,Sub结尾,Sub开头,7,事件驱动:与宏一样,我们可以在窗体或报表的“事
3、件”中编制事件驱动程序,当事件发生时,模块中相应的过程自动执行。,8,一、常用的VBA命令,变量声明打开操作关闭操作 输出操作,9,1、变量声明:在引用变量之前应首先定义变量的数据类型。,语句格式:Dim As 例:Dim a As string Dim x,y As Integer(若不声明变量类型,该变量可存放任意类型的数据)例:Dim a,name a=5 name=“王康”,a字符型变量,X,y为整型变量,给变量赋值的语句,10,2、打开操作,打开窗体命令格式如下:DoCmd.OpenForm formname打开报表命令:DoCmd.OpenReport Reportname例:打开
4、“教师信息”窗体。DoCmd.OpenForm”教师信息”,11,3、关闭操作,其命令格式如下:DoCmd.Close objecttype,objectname例:关闭“成绩统计”报表。DoCmd.Close acReport“成绩统计”,12,4、输出操作,消息框(MsgBox 函数)其命令格式如下:MsgBox(信息内容,对话框类型+图标类型,对话框标题)例:MsgBox(输入密码错!,5+48,验证密码),MsgBox使用说明,13,14,5、记录操作,第一个:DoCmd.GoToRecord,acFirst下一个:DoCmd.GoToRecord,acNext上一个:DoCmd.Go
5、ToRecord,acPrevious最后一个:DoCmd.GoToRecord,acLast,15,8.2 VBA的基本程序结构,结构化程序设计方法有三种基本的程序控制结构:顺序结构分支(选择)结构循环结构。,16,1、顺序结构:,功能:语句由上至下顺序执行。,例:Private Sub Command0_Click()MsgBox(“欢迎进入文物查询系统!)DoCmd.OpenForm“文物管理封面End Sub,17,2、分支(选择)结构,VBA提供了如下两种常用的选择语句If 语句-分支结构Case语句-多分支结构,18,IF 条件语句,语句格式:IF ThenElse End IF,
6、功能:若满足条件执行THEN后面,否则执行Else后的,19,【实例2】验证密码,设计一个验证密码窗体,单击“确定”时,使用过程验证密码正确与否;如果错误,提示“密码错误,请重新输入!”,单击“重试”按钮时,将密码清空,焦点落在文本框;若输入正确,打开“学籍管理系统,并关闭当前(验证密码)窗体。,20,事件驱动程序代码,Private Sub 确定_Click()Dim aIF Forms!验证密码!Text1=“123456 Then DoCmd.Close DoCmd.OpenForm 文物管理封面Else a=MsgBox(密码错误,请重新输入!,5+48+0,验证)IF a 4 The
7、n Quit Else Text1=Text1.SetFocus End IfEnd IfEnd Sub,21,【实例2】若登录时需要用户名和密码的情况,22,Dim aText1.SetFocusIF Forms!登录!Text1=admin And Forms!登录!Text2=123456 Then DoCmd.Close DoCmd.OpenForm“文物管理封面Else a=MsgBox(密码错误,请重新输入!,5+48+0,验证)IF a 4 Then Quit Else Text1=Text2=Text1.SetFocus End IfEnd If,密码,用户名,23,24,IF
8、条件的应用举例,条件查询 例:文物信息管理系统中按文物类别、年代查询。,25,Private Sub Command14_Click()Dim strW As String 定义条件字符串变量strW 存放条件 strW=设变量初始值为空字符串 Me.Combo0.SetFocus 焦点放在combo0上 IF Not IsNull(Me.Combo0)Then 判断【类别】条件是否有输入的值 strW=strW&(分类.名称 like&Me.Combo0&)AND 有输入值 End IF IF Not IsNull(Me.Combo2)Then 判断【年代】条件是否有输入的值 strW=strW&(年代 like&Me.Combo2&)AND 有输入值 End IF IF Len(strW)0 Then 有输入条件 strW=Left(strW,Len(strW)-5)用LEFT函数截掉这 and 这5个字符 Else MsgBox 请选择查询条件!,提示 End IF Me.Filter=strW 在窗体中显示查询结果 Me.FilterOn=True IF Me.Recordset.RecordCount=0 Then 用统计查询到满足条件的记录数来判断无符合条件的信息 MsgBox 暂无符合条件的信息!,提示 End IFEnd Sub,