编 辑器中的代码窗口 能移动活动窗口或调整其大小 将已最大化或最小化的窗口恢复为原来大小 通过计算机的扬声器发出嘟嘟声 指定是否打开回响,例如宏执行时显示其运行结果,或宏执行完才显示运行结果。 此处还可设置状态栏显示文本 使鼠标指针在宏执行时变成沙漏形式 显示包含警告信息或其他信息的消息框 打开或关闭系统消息 将指定的对象复制到不同的Access数据库,或复制到具有新名称的相同数据库。使 用此操作可以快速创建相同的对象,或将对象复制到其他数据库中 删除指定对象;未指定对象时,删除数据库窗口中指定对象
窗口
重命名 保存 Rename Save Close
重命名当前数据库中指定的对象 保存一个指定的Access对象,或保存当前活动对象 关闭指定的表、查询、窗体、报表、宏等窗口或活动窗口,还可以决定关闭时是否 要保存更改 退出Access,效果与文件菜单中的退出命令相同 将指定的数据库对象中的数据以某种格式输出 效果与文件菜单中的发送命令一样,该操作的参数对应于“发送”对话框的设置, 但“发送”命令仅应用于活动对象,而SendObject操作可以指定要发送的对象 在当前数据库(.mdb)与其他数据库之间导入或导出数据 在当前数据库(.mdb)与电子表格文件之间导入或导出数据 在当前数据库(.mdb)与文本文件之间导入或导出文本
关闭 Quit OutputTo SendObject 导入导出 TransferDatabase TransferSpreadsheet TransferText
11.4 调试宏 11.
在宏的设计过程中,可以对宏进行调试。宏调试的目的,就是要找出宏的 错误原因和出错位置,以便使设计的宏操作能达到预期的效果。 11.5 事件 11.
事件是一种特定的操作,在某个对象上发生或对某个对象发生。Microsoft 事件是一种特定的操作,在某个对象上发生或对某个对象发生。Microsoft Access可以响应多种类型的事件:单击、数据更改、窗体打开或关闭以及许多 Access可以响应多种类型的事件:单击、数据更改、窗体打开或关闭以及许多 其他类型的事件。事件的发生通常是用户操作的结果。通过使用事件过程,可 以为在窗体、报表或控件上发生的事件添加自定义的事件响应。 第12章 VBA编程 12章 VBA编程
虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应 用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序 设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包 设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包 含Visual Basic for Application(VBA),VBA具有与Visual Basic相同的语言功能,它 Application(VBA),VBA具有与Visual Basic相同的语言功能,它 为Access提供了无模式用户窗体以及支持附加Active X控件等功能。本章将简要 Access提供了无模式用户窗体以及支持附加Active X控件等功能。本章将简要 介绍VBA的编程。 介绍VBA的编程。
教学重点与难点
VBA的编程环境 VBA的编程环境 常量、 常量、变量和数组 程序流程控制 创建VBA模块 创建VBA模块
12.1 VBA编程环境 12.1 VBA编程环境
Access利用Visual Basic编辑器(VBE)来编写过程代码,它以微软的Visual Access利用Visual Basic编辑器(VBE)来编写过程代码,它以微软的Visual Basic 编程环境的布局
为基础,实际上是一个集编辑、调试、编译等功能于一体的编 程环境。所有的Office应用程序都支持Visual Basic编程环境,而且其编程接口都 程环境。所有的Office应用程序都支持Visual Basic编程环境,而且其编程接口都 是相同的。使用该编辑器可以创建过程,也可以编辑已有的过程。 帮助输入 显示提示信息 形成良好的程序设计风格 使用书签 调试手段
下图为一个VBE窗口,窗口中的各个部分已经给出了相应标识。 下图为一个VBE窗口,窗口中的各个部分已经给出了相应标识。
过程组合框 工程资源管 理器窗口 对象组合框 工 程 资 源管 理 器 属性窗口 过程视图按钮 代码窗口 全模块视图按钮
12.2 VBA程序设计基础 12. VBA程序设计基础
VBA(Visual Basic for Application)是Visual Basic语言的一个子集,集成了整个 Application)是 Basic语言的一个子集,集成了整个 Office产品套件中的开发语言和开发环境。作为Office产品系列的一个重要组成 Office产品套件中的开发语言和开发环境。作为Office产品系列的一个重要组成 部分,Microsoft Access也是使用VBA语言作为其代码设计的开发语言。本节将 部分,Microsoft Access也是使用VBA语言作为其代码设计的开发语言。本节将 简要介绍VBA语言的基本结构和语法。 简要介绍VBA语言的基本结构和语法。 常量、变量和数组 数据类型
12.2.1 常量、变量和数组 12. 常量、
在VBA中,程序是由过程组成的,过程又由根据VBA规则书写的指令组成。 VBA中,程序是由过程组成的,过程又由根据VBA规则书写的指令组成。 一个程序包括常量、变量、运算符、语句、函数、数据库对象和事件等基本要 素。 常量 变量 数组
12.2.2 数据类型 12.
VBA语言的数据类型包括布尔型(Boolean)、日期型(Date)、字符串(String)、 VBA语言的数据类型包括布尔型(Boolean)、日期型(Date)、字符串(String)、 货币型(Currency)、字节型(Byte)、整数型(Integer)、长整型(Long)、单精度型 货币型(Currency)、字节型(Byte)、整数型(Integer)、长整型(Long)、单精度型 (Single)、双精度型(Double)以及变体型(Variant)和用户自定义型。 (Single)、双精度型(Double)以及变体型(Variant)和用户自定义型。
12.3 程序流程控制 12.
与传统的程序设计语言一样,Visual Basic也具有结构化程序设计的3 与传统的程序设计语言一样,Visual Basic也具有结构化程序设计的3种结构: 顺序结构、选择(分支) 顺序结构、选择(分支)结构和循环结构,下面重点介绍选择结构和循环结构。 选择结构 循环结构
12.3.1 选择结构 12.
选择结构有If语句和Select Case语句两种。 选择结构有If语句和Select Case语句两种。 If语句是一类比较简单的条件控制语句,可以通过紧跟在If后面的表达式的 If语句是一类比较简单的条件控制语句,可以通过紧跟在If后面的表达式的 值,判断出在其影响范围下的语句是否被执行。 如果在If语句中,一个表达式有多个可选值,并且需要为这些可选值建立 如果在If语句中,一个表达式有多个可选值,并且需要为这些可选值建立 不同的执行语句,例如选项组控件可以通过不同的值来判断选项组中到底是按 下哪个按钮,这样的语句设计通过If语句不方便实现,这时就需要使用Select 下哪个按钮,这样的语句设计通过If语句不方便实现,这时就需要使用Select Case语句。 Case语句。 12.3.2 循环结构 12.
编程中经常要需要重复执行某些操作,这时就需要通过循环语句来判断并 执行这些循环
操作。VBA提供了多种循环控制语句,其中常用的包括Do?Loop 执行这些循环操作。VBA提供了多种循环控制语句,其中常用的包括Do?Loop 语句、For?Next语句以及While?Wend语句等。 语句、For?Next语句以及While?Wend语句等。 Do?Loop语句 Do?Loop语句 For?Next语句 For?Next语句 While?Wend语句 While?Wend语句 GoTo语句 GoTo语句 12.4 Access对象模型 12. Access对象模型
Access提供的对象模型可以将数据库功能与自定义的解决方案集成起来。 Access提供的对象模型可以将数据库功能与自定义的解决方案集成起来。 通过使用Access对象模型,可以实现对事件编程、创建Access窗体和报表以及 通过使用Access对象模型,可以实现对事件编程、创建Access窗体和报表以及 设置引用等。对象模型提供了一些对象,Access内部应用程序可以使用这些对 设置引用等。对象模型提供了一些对象,Access内部应用程序可以使用这些对 象。 对象 对象集合 对象模型 12.4.1 对象 12.
VBA与传统语言的重要区别之一就是它是面向对象的。对象是Visual Basic程 VBA与传统语言的重要区别之一就是它是面向对象的。对象是Visual Basic程 序设计的核心。事实上,窗体和控件都是对象,数据库也是对象,对象到处都 存在。一旦理解如何引用应用程序对象模型中的对象,就能够使用对象及其特 性来建立自己的解决方案。当然,也可以将对象理解为封装数据和代码的客体, 它是代码和数据的集合。 属性 方法 事件 12.4.2 对象集合 12.
对象集合是一个包含几个其他对象的对象,而这些对象可具有不同的类型, 并且对象的位置均可改变。Access窗体具有以下3 并且对象的位置均可改变。Access窗体具有以下3种集合,如下图所示,其中 填充色为灰色的表示集合。
Microsoft Forms UserForm Controls Font Multipage Pages(Page) Tabstrip Tabs(Tab) Dataobject
12.4.3 对象模型 12.
对象模型实际上给出了基于对象程序的结构,通过定义程序中所使用对象 之间的关系,对象模型能够以一种比编程更容易的方式来组织对象。 Access中的窗体模型包括的对象类型有:控件、集合和集合中的对象。 Access中的窗体模型包括的对象类型有:控件、集合和集合中的对象。 窗体对象模型的每个元素都具有一系列的属性、方法和事件,可以利用方 法使应用程序按照要求进行工作。在VBA中,各个对象之间也不是孤立的,而 法使应用程序按照要求进行工作。在VBA中,各个对象之间也不是孤立的,而 是彼此之间存在着包含与被包含的关系。
12.5 创建VBA模块 12. 创建VBA模块
模块是将VBA代码的声明、语句和过程作为一个单元进行保存的集合,是 模块是将VBA代码的声明、语句和过程作为一个单元进行保存的集合,是 基本语言的一种数据库对象,数据库中的所有对象都可以在模块中进行引用。 利用模块可以创建自定义函数、子程序以及事件过程等,以便完成复杂的计算 功能。模块可以代替宏,并可以执行标准宏所不能执行的功能。 模块的定义和创建 过程的创建 过程的调用
12.5.1 模块的定义和创建 12.
Access模块有两种基本类型:类模块和标准模块。模块中的每一个过程都 Access模块有两种基本类型:类模块和标准模块。模块中的每一个过程都 可以是一个Function过程或一个Sub过程。 可以是一个Function过程或一个Sub过程。 类模块 标准模块
12.5.2 过程的创建 12.
过程是包含VBA代码的基本单位,可以完成一系列指定的操作。过程由计 过程是包含VBA代码的基本单位,可以完成一系列指定的操作。过程由计 算的语句和方法组成,通常分
为Sub过程、Function过程和Property过程。其中, 算的语句和方法组成,通常分为Sub过程、Function过程和Property过程。其中, Sub过程是最常用的过程类型,也称为命令宏,可以传送参数和使用参数来调 Sub过程是最常用的过程类型,也称为命令宏,可以传送参数和使用参数来调 用它,但不返回任何值;Function过程也称为自定义函数过程,其运行方式和 用它,但不返回任何值;Function过程也称为自定义函数过程,其运行方式和 使用程序的内置函数一样,即通过调用Function过程获得函数的返回值; 使用程序的内置函数一样,即通过调用Function过程获得函数的返回值; Property过程能够处理对象的属性。 Property过程能够处理对象的属性。 12.5.3 过程的调用 12.
Call语句用来调用过程,也可调用Visual Basic的函数和自定义函数,两者均 Call语句用来调用过程,也可调用Visual Basic的函数和自定义函数,两者均 采用如下的格式: [Call] name [argumentlist]
其中name表示被调用过程的名称,argumentlist表示参数列表,各参数间 其中name表示被调用过程的名称,argumentlist表示参数列表,各参数间 必须以逗号隔开。 在窗体过程(例如事件过程) 在窗体过程(例如事件过程)中可以直接调用标准模块中的过程,但也可通 过标准模块的名称来调用。在标准模块的过程中调用窗体模块中的过程时,必 须以Visual Basic格式指出窗体名,例如“Form_员工信息.name”。 须以Visual Basic格式指出窗体名,例如“Form_员工信息.name”。
12.6 VBA代码的保护 12. VBA代码的保护
在开发数据库产品以后,为了防止其他人查看或更改VBA代码,需要对该 在开发数据库产品以后,为了防止其他人查看或更改VBA代码,需要对该 数据库的VBA代码进行保护。保护VBA代码的措施主要有两种:对VBA代码设置 数据库的VBA代码进行保护。保护VBA代码的措施主要有两种:对VBA代码设置 密码保护或生成MDE文件保护。 密码保护或生成MDE文件保护。 设置密码保护Visual Basic代码 设置密码保护Visual Basic代码 生成ACCDE文件 生成ACCDE文件
12.6.1 设置密码保护Visual Basic代码 12. 设置密码保护Visual Basic代码
用户可以通过对VBA代码设置密码来防止其他非法用户查看或编辑数据库 用户可以通过对VBA代码设置密码来防止其他非法用户查看或编辑数据库 中的程序代码。 12.6.2 生成ACCDE文件 12. 生成ACCDE文件 除了使用密码保护VBA代码以外,还可以通过创建ACCDE文件保护程序代 除了使用密码保护VBA代码以外,还可以通过创建ACCDE文件保护程序代 码。ACCDE文件是旧版本Access中的.mde 文件的Access 2007版本。 码。ACCDE文件是旧版本Access中的.mde 文件的Access 2007版本。
第13章 数据库安全 13章
随着计算机网络的发展,越来越多的数据库网络应用已经成为数据库发展 的必然趋势。在这种环境下,做好对数据库的管理和安全保护工作显得尤为重 要。本章主要介绍Access所提供的数据库安全措施,用户级安全的新增功能和 要。本章主要介绍Access所提供的数据库安全措施,用户级安全的新增功能和 体系结构,以及如何安全管理Access数据库等内容。 体系结构,以及如何安全管理Access数据库等内容。
教学重点与难点
设置数据库访问密码 隐藏数据库对象 压缩和修复数据库 Access 2007中用户级安全 2007中用户级安全 更改注册表项
13.1数据库的安全策略 13.1数据库的安全策略
数据库系统的安全主要是指防止非法用户使用或访问系统中的应用程序和 数据。为避免
应用程序及其数据遭到意外破坏,Access提供了一系列保护措施, 数据。为避免应用程序及其数据遭到意外破坏,Access提供了一系列保护措施, 包括设置访问密码,对数据进行加密等多种方法。 数据库访问密码 隐藏数据库对象 13.1.1 数据库访问密码 13.
数据库访问密码是指为打开数据库而设置的密码,它是一种保护Access数 数据库访问密码是指为打开数据库而设置的密码,它是一种保护Access数 据库的简便方法。设置密码后,打开数据库时将显示要求输入密码的对话框, 只有正确输入密码的用户才能打开数据库。 设置数据库访问密码 撤消访问密码 13.1.2 隐藏数据库对象 13.
要隐藏数据库对象,用户可以在导航窗格中选中该对象,然后按下 Alt+Enter组合键打开如下图所示的“透视表窗体 Alt+Enter组合键打开如下图所示的“透视表窗体 属性”对话框,在对话框中选 中“隐藏”复选框即可。
13.2 压缩和修复数据库 13.
数据库在不断增删数据库对象的过程中会出现碎片,而压缩数据库文件实 际上是重新组织文件在磁盘上的存储方式,从而除去碎片,重新安排数据,回 收磁盘空间,达到优化数据库的目的。在对数据库进行压缩之前,Access会对 收磁盘空间,达到优化数据库的目的。在对数据库进行压缩之前,Access会对 文件进行错误检查,一旦检测到数据库损坏,就会要求修复数据库。修复数据 库可以修复数据库中的表、窗体、报表或模块的损坏,以及打开特定窗体、报 表或模块所需的信息。
13.3 用户级安全 13.
对于以新文件格式(.accdb和.accde文件)创建的数据库,Office 对于以新文件格式(.accdb和.accde文件)创建的数据库,Office Access 2007 不提供用户级安全。但是,如果在Office 不提供用户级安全。但是,如果在Office Access 2007中打开早期版本的Access 2007中打开早期版本的Access 数据库,并且该数据库应用了用户级安全,那么这些设置仍然有效。 Access 2007安全性的新增功能 2007安全性的新增功能 Access 2007的安全体系结构 2007的安全体系结构 打包、签名和分发Access数据库 打包、签名和分发Access数据库
13.3.1 Access 2007安全性的新增功能 13. 2007安全性的新增功能 Access 2007提供了经过改进的安全模型,该模型有助于简化将安全配置应 2007提供了经过改进的安全模型,该模型有助于简化将安全配置应 用于数据库以及打开已启用安全性的数据库的过程。 更高的易用性 信任中心 更少的警告消息
13.3.2 Access 2007的安全体系结构 13. 2007的安全体系结构
Access数据库与Excel 2007工作簿或Word 2007文档是不同意义的文件。 Access数据库与Excel 2007工作簿或Word 2007文档是不同意义的文件。 Access数据库是一组对象(表、窗体、查询、宏、报表等),这些对象通常必 Access数据库是一组对象(表、窗体、查询、宏、报表等),这些对象通常必 须相互配合才能发挥功用。例如,当创建数据输入窗体时,如果不将窗体中的 控件绑定(链接)到表,就无法使用该窗体输入或存储数据。
13.3.3 打包、签名和分发Access数据库 13. 打包、签名和分发Access数据库
Access 2007可以使用户更方便快捷地签名和分发数据库。创建.accdb文件 2007可以使用户更方便快捷地签名和分发数据库。创建.accdb文件 或.accde文件时,可以将文件打包,再将数字签名应用于该包,然后将签名的 .accde文件时,可以将文件打包,再将数字签名应用于该包,然后将签名的 包分发给其他用户。 创建自签名证书 创建签名的包 提取和使用签名包
13.4 更改注册表项 13.
要允许不安全的表达式在计算机上的所有用户的所有Access中运行,可以 要允许不安全的表达式在计算机上的所有用户的所有Access中运行,可以 对注册表项进行更改。