大学数据库原理及应用(ACCESS 2003)-陈光军-大学教学资料课件PPT
收藏
资源目录
压缩包内文档预览:
编号:21835933
类型:共享资源
大小:2.25MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学数据库原理及应用(ACCESS
2003)-陈光军-大学教学资料课件PPT
大学
数据库
原理
应用
利用
运用
access
陈光军
教学
资料
课件
ppt
- 资源描述:
-
大学数据库原理及应用(ACCESS 2003)-陈光军-大学教学资料课件PPT,大学数据库原理及应用(ACCESS,2003)-陈光军-大学教学资料课件PPT,大学,数据库,原理,应用,利用,运用,access,陈光军,教学,资料,课件,ppt
- 内容简介:
-
第4章Access数据库的设计学习目标 l 数据库设计的一般方法l 打开Access2003数据库l 创建Access2003数据库l 创建Access2003数据表l 建立表间关系l 修改数据表的结构l Access不同数据库版本的转换第4章Access数据库的设计 教学内容 4.1数据库设计的一般方法 4.2建立数据库 4.3数据表的建立 4.4打开数据库 4.5修改数据表的结构 4.6数据表关联 4.7 数据库的转换 本章小结返回总目录4.1数据库设计的一般方法返回目录Access数据库的设计可按以下步骤进行: (1)需求分析。 (2)确定存储对象。 (3)建立表结构。(4)输入数据。(5)系统维护。 4.2建立数据库 4.2.1使用向导创建数据库在Access2003中,创建数据库最为实用和快速的方式是使用“数据库向导”,它会按照用户的选择来创建表、查询、报表以及数据库数据的显示风格。这对于没有接触过数据库的用户来说是创建数据库的捷径。 4.2.2创建空白数据库 创建空白数据库有两种方法 返回目录4.3数据表的建立表是Access2003数据库的对象之一,是用来存储数据的地方。其他的数据库对象,如查询、窗体和报表等都是在表的基础上建立并使用的。因此,表的结构是否合理,可以说是整个数据库的关键所在。Access2003根据用户的不同需要,提供多种创建表的方法:(1)使用向导创建表,(2)通过输入数据创建表,(3)使用“设计视图”创建表 这3种创建表的方式各有各的优点,适用于不同的场合。返回目录4.3数据表的建立4.3.1建立和命名字段4.3.2指定字段的数据类型4.3.3设置字段的属性4.3.4字段说明4.3.5定义主关键字4.3.6 建立索引4.3.7排序 4.3.8筛选记录返回目录4.4打开数据库4.4.1打开数据库文件1打开最近使用过的文件2使用“打开”命令打开文件3以只读方式和独占方式打开数据库文件4.4.2 Access默认设置选项(1)“视图”选项(2)“常规”选项(3)“高级”选项返回目录 4.5修改数据表的结构4.5.1添加、删除、重命名字段和移动字段的位置1添加字段2删除字段3重命名字段4移动字段的位置4.5.2修改字段的数据类型4.5.3 修改字段的属性返回目录4.6数据表关联 4.6.1表间关系的类型表间关系有四种可能的类型 4.6.2 创建表间关系 在首次使用表向导创建表时,向导会提供创建表间关系的机会,另外也可以在设计视图中创建和修改表间关系。 返回目录4.7 数据库的转换4.7.1 在Access 2003中使用旧版本的数据库4.7.2 将Access2003数据库转换为Access 97格式4.7.3将旧版本的Access数据库转换为Access 2003数据库返回目录本章小结首先学习了在Access2003中设计数据库的基本方法和基本概念。然后讲解了如何采用不同方法创建数据库、如何在数据库添加新的表对象、如何修改已有的表结构、如何在表中录入数据、如何操作表中的数据。返回目录返回目录第9章 数据访问页 学习目标 l在Access 2003中如何使用数据页 设计向导 l 如何自动创建数据页l 使用设计视图创建数据页l创建包含图表的数据页。第9章 数据访问页 教学内容 9.1概述 9.2使用向导创建数据访问页 9.3使用设计器创建和修改数据访问页 9.4自动创建数据访问页 本章小结 返回总目录9.1概述返回目录数据访问页是Access 2003的一项重要功能。数据访问页是特殊的Web页,方便用户通过Internet或Intranet访问保存在Microsoft Access数据库或Microsoft SQL Server数据库中的数据。数据访问页也可能包含来自其它源的数据,例如Microsoft Excel。数据访问页是一个独立于数据库之外的文件(.htm),在Access数据库窗口中建立了数据访问页的快捷方式。9.1概述使用Access 2003提供的数据访问页设计工具,可以快速创建用于访问数据库的数据访问页。 (1)打开数据库“页”浏览窗口。(2)单击“新建”按钮 返回目录9.2使用向导创建数据访问页 Access2003提供了Web页向导,它通过对话的方式,让用户提出一定的要求,然后由Access2003根据用户要求创建Web页。 返回目录9.3使用设计器创建和修改数据访问页 9.3.1使用设计器创建数据访问页9.3.2编辑数据访问页 1在“设计”视图中选择元素 2数据访问页工具箱 3在数据访问页中应用主题 4 设置数据访问页的背景 5为数据访问页设置背景图片 返回目录9.4自动创建数据访问页 返回目录Access 2003为用户提供了自动创建数据页功能,使用该功能可以快速完成数据页的创建。 本章小结使用Access2003提供的数据页设计工具可以快速创建基于数据库的数据页,然后再使用Web设计工具对创建的数据页进行修改,便可以设计出功能完善的数据库应用Web页。返回目录2.1 计算机网络概述 网络协议 网络协议:为实现计算机之间的信息传输而设立的一套通信规则。IPX/SPX(网际包交换/顺序包交换) 是Novell公司开发的通信协议集,具有较强的路由功能。 NetBEUI 是IBM公司开发的为小型局域网设计的协议,不具备路由功能。 TCP/IP 是Internet上广泛使用的协议,由一系列协议组成,可实现路由功能,支持异种网络互联。返回目录2.2 Internet概述与应用 Internet是一个范围遍及全球的超大型计算机互联网,采用TCP/IP协议进行通信。 Internet上的主机都有一个惟一的32位IP地址。 接入Internet的方法:拨号、ISDN 、ADSL等 Internet应用万维网(WWW)。电子邮件服务(E-mail)。文件传输服务(FTP)。远程登录服务(Telnet)。返回目录2.3 多媒体概述 多媒体:文字、图形、图像、动画、音频和视频影像等各种媒体的组合。多媒体技术:以数字化处理为主的计算机应用技术,可交互、综合地处理相互之间有联系的多媒体信息。多媒体技术的特点:集成性、数字化、实时性和交互性。 多媒体个人计算机(MPC):能够处理多媒体信息的个人计算机,具有媒体的采集、处理和编辑等功能,并可以播放多媒体文件。 返回目录2.3 多媒体概述 图形与图像1. 颜色的表示 三基色:RGB 编码。色度和灰度。 2. 位图与矢量图矢量图:用直线或曲线来描述图形,并附加颜色及位置属性。位图:在网格内用带有颜色的点(像素)来描述图形。返回目录矢量图位图2.3 多媒体概述 图形与图像3. 像素深度:表示像素的二进制数位数。像素的大小和密度直接影响位图的质量。像素深度决定像素所能具有的颜色数目。 4. 图像分辨率:数字化图像时,一幅图像的像素数目5. 图像文件的格式位图文件:BMP、GIF、JPG、PNG、TIF、PCX、TGA等 。矢量图文件:WMF、CDR、DXF等。返回目录2.3 多媒体概述 声音 1. 声音 声波:声音通过空气传播的一种连续的波,由许 多频率不同的信号组成。带宽:声音信号的频率范围。话音信号的带宽:3003 000 Hz 。返回目录2.3 多媒体概述 声音 2. 声音的模数(A/D)和数模(D/A)转换A/D:采样率 对模拟信号采样的次数/秒。 位宽 采样后量化声音信号的二进制数位数。 声道 单声道、立体声 。返回目录D/A:转换的质量取决于当初的采样率、位宽和声道数。 2.3 多媒体概述 声音 3. 声音文件的格式 WAV:波形文件,文件容量一般较大。 MID:音质一般,但文件压缩比很高。不能通过 录音生成。 MP3:压缩比很高,音质也不错。 RM、RAM、RA:“流媒体”音频格式。 4. 声卡音乐合成发音。 混音和数字声音效果处理。A/D和D/A转换。 返回目录2.3 多媒体概述 视频 1. 视频(Video):将足够多的画面(帧)连续播放的一种活动影像,20帧/秒以上。2. 视频文件的格式 AVI:动态图像格式,可用Media Player播放。MPEG:采用动态图像压缩技术,压缩比高。MOV:原先是为Macintosh开发的。RM:“流”格式,压缩比非常高,适合网上播放。3. 视频卡:多媒体计算机中处理活动图像的适配器,分为视频叠加卡、视频捕获卡、电视编码卡、电视选台卡和压缩/解压卡等。 返回目录2.3 多媒体概述 动画 1. 动画一种由人工创造出来的连续图形组合而成的动态影像,20帧/秒以上。有二维动画和三维动画之分。 2. 动画文件的格式GIF(.gif):文件较小,支持交错显示模式。但是,只支持256种颜色,难以表现丰富的色彩效果。Flash(.fla、.swf):支持全彩色(32位颜色);制作的是矢量图形,可以不失真地任意放大和缩小;文件不大,非常适宜在网页中使用。3DS:三维动画。 返回目录2.4 多媒体技术应用 1. 图像的制作与处理专业软件:Photoshop、Fireworks等 。Windows附件:“画图”。 2. 音频处理音频信号的采集(录音)、音频文件的编辑与播放、MIDI创作、语音识别、语音合成等。Windows附带的软件:录音机、 Windows Media Player。声卡附带的音频处理软件。返回目录2.4 多媒体技术应用 3. 视频处理视频信号的采集、剪辑和合成。专业视频编辑软件:Lumiere Suit、Premiere。 Windows附件:Windows Movie Maker 。4. 多媒体技术在网络上的应用RealPlayer:播放音乐、收听在线广播或观看在线电视和电影。召开电话会议、应用可视电话等。返回目录本 章 小 结计算机网络网络按连接结构划分,可分为客户机/服务器型、对等型及主从式网络;按覆盖范围划分,可分为局域网、城域网及广域网。 拓扑结构常见的是星型、环型及总线结构。组建计算机网络,除了计算机外,还需要配置用于通信和连接的硬件设备,如传输媒介、网卡、集线器和路由器等。网络协议用于制定网络的通信规则。其中TCP/IP协议是目前应用最为广泛的协议,是Internet上使用的通信协议。 返回目录本 章 小 结Internet应用:www、E-mail、FTP、Telnet 等 。 多媒体概述图像分为位图和矢量图两种。声音是以波的形式存在,计算机中处理的是数字化的声音。声卡可完成声音的A/D和D/A转换。视频和动画都是通过播放连续的画面来形成活动影像,20帧/秒以上。所不同的是,视频影像一般用于记录生活上所发生的事件,而动画通常指由人工创造出来的动态影像。多媒体技术应用:图像处理、音频处理、视频处理以及在网络上的应用等 返回目录第10章 宏操作 学习目标 掌握宏的概念 掌握宏的创建 熟悉常用的宏操作 掌握宏的调用 第10章 宏操作 教学内容 10.1 宏的概念 10.2 宏的分类 10.3 宏操作 10.4-10.6 创建宏,向宏中添加操作和宏组 10.7 宏的条件表达式 10.8-10.9 执行与调试宏 本章小结 返回总目录10.1 宏的概念 返回目录宏是Access数据库对象之一,分为宏、宏组和条件操作宏 ,其中宏是操作序列的集合,而宏组是宏的集合,条件操作宏是带有条件的操作序列。从另一角度来看,宏是一种特殊的代码,是以动作为单位的,它由一连串的动作组成,每个动作在运行宏时被由前到后地依次执行。Access中定义了很多的宏动作 。 10.1 宏的概念 宏的定义 宏是指一个或多个操作的集合。其中每个操作实现特定的功能。 宏可以是包含操作序列的一个宏,也可以是某个宏组,使用条件表达式可以决定在有些情况下运行宏时某个操作是否进行。如果有许许多多的宏,那么把相关宏进行分组,有助于方便的对数据库进行管理与维护,这样的组就是一个宏组。 返回目录10.1 宏的概念 宏的定义为了在宏组中执行某个宏,可以使用“宏组名.宏名”的格式进行调用。 宏的定义 宏名 返回目录10.1 宏的概念 消息循环与消息映射 消息循环与消息映射.在Windows中程序的执行是靠消息来驱动的.消息处理函数是通过消息映射和消息联系起来的,在Access中每个窗体、命令按钮、菜单等都有自己的消息循环和消息映射。 消息映射是通过窗体和控件的属性来实现的,在事件属性中填写一个模块就等价于在该事件对应的消息与填写的模块之间建立了消息映射,一旦窗口检查到该消息的发生,就会自动在事件属性中编写代码模块。 返回目录10.1 宏的概念 消息循环与消息映射Access中的事件可以分为七类:(1)(窗体、报表、控件)事件。(2)数据事件。(3)焦点事件。(4)键盘事件。(5)鼠标事件。(6)打印事件。(7)出错和定时事件。返回目录10.1 宏的概念 窗体的事件属性 返回目录成为当前插入前/后更新前/后 删除-打开加载-卸载关闭获得焦点-失去焦点键按下-键释放计时器间隔数据集更改时 建立宏来响应这些窗体事件,当事件由用户触发或者由某个控件触发,或者由于一些操作而自动触发。10.1 宏的概念 报表的事件属性 打开(On Open)关闭(On Close)激活(On Active)停用(On Deactive)无数据(On No Data)打印页前(On Print) 出错(On Error)返回目录10.1 宏的概念 控件的事件属性1命令按钮的事件属性 :返回目录单击(On Click):当按钮被按下时发生。获得焦点(On Got Focus):当按钮获得焦点时发生。失去焦点(On Lost Focus):当按钮失去焦点时发生。 10.1 宏的概念 控件的事件属性文本框的事件属性 返回目录更新前(Before Update)进入(On Enter)退出(On Exit)获得焦点(On Got Focus)失去焦点(On Lost Focus)键按下:On Key Down) 键释放(On Key Up)10.1 宏的概念 控件的事件属性选项按钮事件属性 组合框事件属性 返回目录10.2宏的分类 宏是可以包含操作序列的一个宏,也可以某个宏组,还可以使用条件表达式来决定在什么情况下运行宏,以及在运行宏时某项操作是否进行。根据以上的三种情况,宏可以分为:操作序列、宏组和包含条件操作的宏。 操作序列 :每次运行该宏时,Access都将执行这些操作。 宏组 :为了执行宏组中的宏,可以使用以下的格式调用宏:宏组名“句点(.)”宏名 条件操作 :如果指定的条件成立,Access将继续执行一个或多个操作;如果指定的条件不成立,Access将跳过该条件所指定的操作。 返回目录10.3宏操作 根据宏操作的对象的不同,可分为五大类:操作数据类、执行命令类、导入/导出类、操作数据库对象类及其他类型。 10.3.1操作数据的宏操作 10.3.2执行命令的宏操作 10.3.3实现导入/导出功能的宏操作 10.3.4操纵数据库对象的宏操作 10.3.5其他类型的宏操作 返回目录10.3宏操作-操作数据的宏操作 操作数据宏是Access中用于操作窗体和报表数据的宏操作.此类宏操作又可分为两种,一种是过滤操作,一种是记录定位操作。过滤操作只有一个ApplyFilter,而记录定位操作有FindNext、FindRecord、GoToControl、GoToPage和Go ToRecord。 返回目录10.3宏操作-执行命令的宏操作 此类宏操作主要用来运行命令、宏、查询和其他应用程序。通过在宏中使用此类宏操作可以增强宏的功能,方便用户通过宏来控制系统的运行,提高系统的自动化程度,从而使利用Access设计的管理系统使用起来非常方便。 此类宏操作包括RunCommand(运行命令)、Quit(退出Access 2003)、OpenQuery(打开查询)、RunCode(运行VBA程序)、RunMacro(运行宏)、RunSQL(运行SQL语句)、RunApp(运行另一个应用程序)、CancelEvent(终止事件)、StopAllMacros(停止所有宏的执行)、StopMacro(停止指定宏的执行)。 返回目录10.3宏操作-实现导入/导出功能的宏操作 使用此类宏操作可以实现Access 2003与其他应用程序之间的数据共享,不过此共享是静态的数据共享,因为它只是将Access 2003数据转换成其他应用程序所要求的文件格式,或者将其他应用程序数据文件格式转换为Access 2003的文件格式。在导入之前和导出之后,Access 2003与其他应用程序毫无关系。Access 2003所能导入或导出的文件类型取决于所安装的数据转换驱动程序。 返回目录10.3宏操作-操纵数据库对象的宏操作 作用此类操作要以实现数据库对象操作的自动化。其具体操作及功能如下:CopyObject, Rename, Save, DeleteObject , Maximize, Minimize, Restore, Close, OpenForm, OpenModule, OpenReport, OpenTable ,OpenDataAccessPage, OpenDiagram, OpenStoreProcedure, OpenView, PrintOut, SelectObject, SetValue, RepaintObject, Requery, ShowAllRecords.返回目录10.3宏操作-其他类型的宏操作 此类操作主要用于维护Access 2003界面,包括菜单栏、工具栏、快捷菜单和快捷键的添加、修改和删除,错误信息的提示方式及响铃警告等。充分利用此类宏操作可以改善用户界面,使用户使用起来更加方便。 AddMenu:使用AddMenu操作可以创建下列内容:窗体或报表的自定义菜单栏。自定义快捷菜单。全局菜单栏。全局快捷菜单。 返回目录10.3宏操作-其他类型的宏操作SetMenuItem:使用SetMenuItem操作可以设置活动窗口的自定义菜单栏或全局菜单栏上的菜单项状态。 Echo:使用该操作可以隐藏或显示宏执行时的结果。 Hourglass:可以使鼠标指针在宏执行时变成沙漏形状。MsgBox:可以显示包含警告信息或其他信息的消息框。 SetWarning:可以打开或关闭系统信息的显示。 SendKeys:可以把按键信息直接传送到Access 2003或别的Windows应用程序。 ShowToolbar:可显示或隐藏内置工具栏或自定义工具栏。 Beep:可以通过计算机的扬声器发出嘟嘟声。 返回目录10.4创建宏 创建宏对象是通过宏编辑器来实现的,在数据库窗口中选择“宏”对象的“新建”命令,就可以打开宏的编辑窗口。 下面就来使用“宏”窗口来创建一个宏,以固定资产管理系统数据库为例,宏要做的事情很简单:打开“信息查询”窗体的时候,最小化固定资产管理系统数据库,这里把它分成两个动作,一个个的进行讲解。 返回目录10.4创建宏 设计宏的第1个动作先为宏指定第一个动作:Minimize,其方法如下:(1)先打开“固定资产管理系统数据库”。(2)在数据库窗口中,单击“宏”按钮,再单击工具栏上的“新建”按钮,打开“宏”窗口。(3)在“宏”对话框中单击“操作”列的第一列。此时在该行的右边出现一个下拉箭头。单击该下拉箭头,打开下拉列表。在下拉列表中选择Minimize选项,该动作是把当前激活的窗口最小化。返回目录10.4创建宏设计宏的第2个动作接下来就为宏指定第2个动作:OpenForm。这个动作实现最小化后显示“固定资产信息查询”窗体的功能,操作步骤如下:(1)单击Minimize行的下一行,这时该行右侧出现下拉箭头,并列出了各个操作。(2)在下拉列表中选择OpenForm选项。如图 “创建宏”此时在“宏”窗口的下部出现OpenForm返回目录(3)然后单击工具栏上的“保存”按钮,此时会弹出要求输入宏名称的对话框。(4)在该对话框中输入宏名称“显示出借资产”,然后单击“确定”按钮,就建立了一个简单的宏。小技巧 MsgBox()函数是一个功能十分强大的函数,它能在一个对话框中显示消息、等待用户的响应,然后再根据用户的选择返回一个值,返回值可以是1(OK)、2(Cancel)、3(Abort)、4(Retry)、5(Ignore)、6(Yes)、7(No)。如果对话框中显示出来了Cancel按钮,那么按Esc键和选中Cancel键的效果是相同的。 10.4创建宏返回目录10.5向宏中添加操作 向宏中添加操作的方法如下:(1)在“数据库”窗口中,单击“宏”对象。(2)单击要打开的宏名,然后单击“设计”按钮。(3)如果要在两个操作行之间插入一个操作,则单击插入行下面的操作行上的行选定器。如果要在末尾添加一个操作,则用鼠标单击第一个空白行。(4)然后单击工具栏中的“插入行”按钮。(5)单击“操作”列右边的向下箭头,在列表中选择要使用的操作。(6)接下来可以为操作指定操作参数以及条件等。(7)单击工具栏中的“保存”按钮,保存所做的修改。 返回目录10.6 创建宏组 宏组是指在同一个“宏”窗口中包含的一个或多个宏的集合。宏组中的每个宏都单独运行,互不相关。如果要创建宏组,可以按照下述步骤进行:(1)在“数据库”窗口中,单击“宏”对象。(2)单击“新建”按钮,打开“宏”窗口。(3)单击“宏设计”工具栏中的“宏名”按钮,在宏设计窗口中显示出“宏名”列。(4)在“宏名”列内,键入宏组中的第一个宏的名字。(5)单击“操作”列右边的向下键头,从列表中选择要执行的操作。在一个宏中可以只包含一项操作,也可以包含多项操作。(6)重复执行步骤4和5,在宏组中包含其他宏。(7)单击工具栏中的“保存”按钮,在弹出的“另存为”对话框中,输入宏组的名称,然后单击“确定”按钮。这个名称也是显示在“数据库”窗口中的宏和宏组列表的名称。要引用宏组中的宏,其语法格式是:宏组名.宏名返回目录10.7 宏的条件表达式 我们对数据进行处理时,可以根据设定的条件来控制宏的流程。宏中使用的条件通常都是逻辑表达式,它将根据条件结果是真或假而沿着不同的路径执行。在输入表达式的过程中,经常要引用某个控制的值,表达式中的控件必须符合以下的格式:Forms!窗体名!控件名Reports!报表名!控件名如果当前宏所引用的控件来自启动该宏的窗体或报表,则可以将控件引用简写为:控件名。 返回目录10.7 宏的条件表达式在宏中添加条件的操作方法如下:(1)在“宏”窗口中,单击“宏设计”工具栏中的“条件”按钮,或者选择“视图”菜单中的“条件”命令,以便在“宏”窗口中显示“条件”列。如图10-11条件宏。(2)在“条件”列中输入所需的条件表达式。(3)在“操作”列内,输入当表达式值为真时Access执行的操作。_ (4)如果在条件为真时,要执行多项操作,则在接下来的行内输入所需的操作,并在对应的条件列内输入省略号“”。返回目录10.8 执行宏对于一个宏,可以按照以下的方法运行它: 在Access窗口中运行宏 在“数据库”窗口中运行宏 在“宏”窗口中运行宏下面分别介绍在不同环境下运行宏的方法。 返回目录10.8 执行宏 在Access窗口中运行宏如果要在Access窗口中运行宏,可以按照下述步骤进行: (1)选择“工具”菜单中的“宏”命令,从出现的级联菜单中选择“执行宏”命令,出现如图10-12所示的“执行宏”对话框。 (2)在“执行宏”对话框的“宏名”框内输入需要执行的宏,或者单击“宏名”框右边的向下箭头,从列表中选择宏名。(3)单击“确定”按钮,Access开始运行指定的宏。出借资产运行结果如图10-13显示出借资产窗体。 返回目录10.8 执行宏 在“数据库”窗口中运行宏(1)在“数据库”窗口中,单击“宏”对象。(2)单击所要运行的宏。(3)单击“运行”按钮,Access开始运行指定的宏。在“宏”窗口中运行宏(1)在“数据库”窗口中,单击“宏”对象。(2)单击某个宏名,然后单击“设计”按钮,打开“宏”窗口。(3)选择“运行”菜单中的“运行”命令,或单击工具栏中的“运行”按钮。 图10-13 执行宏 “显示出借资产”窗体 返回目录10.9 调试宏 对于比较复杂的宏,经常会出现一些错误,只有经过调试后宏才能正确的运行。单步执行是一次只执行一个操作的调试的技术。使用单步执行宏,可以观察宏的流程和每一个操作的结果,因而可以很容易分析出错的原因,排除导致错误的结果的操作。用单步执行来调试宏的操作方法如下:(1)在“数据库”窗口中,单击“宏”对象。(2)单击要打开的宏,然后单击“设计”按钮。(3)单击工具栏中的“单步”按钮,或者选择“运行”菜单中的“单步”命令。(4)单击工具栏中的“运行”按钮,出现 “单步执行宏”对话框。返回目录本章小结宏的概念: 宏是操作序列的集合,是一种特殊的代码,以动作为单位,由一连串的动作组成,每个动作在运行宏时被由前到后地依次执行。消息循环与消息映射 窗体的事件属性 报表的事件属性 控件的事件属性返回目录本章小结宏的分类 : 操作序列,宏组,条件操作宏操作: 操作数据类、执行命令类、导入/导出类、操作数据库对象类及其他类型创建宏: 通过宏编辑器来实现向宏中添加操作创建宏组: 要引用宏组中的宏,其语法格式是: 宏组名.宏名宏的条件表达式:对数据进行处理时,可以根据设定的条件来控制宏的流程。执行与调试宏: 使用单步执行来排除复杂宏中的错误,再运行宏。运行宏有三种方式:在Access窗口中运行宏,在“数据库”窗口中运行宏,在“宏”窗口中运行宏。返回目录第5章 数据查询 学习目标 认识Access2003中的查询 利用向导进行查询的创建 手工进行查询的创建 第5章 数据查询 教学内容 5.1 认识查询 5.2 建立查询的方式 5.3 创建选择查询 5.4 创建交叉表查询 5.5 创建参数查询 5.6 创建操作查询 5.7 创建其它类型的查询 5.8 保存查询 本章小结 返回总目录5.1 认识查询查询的目的返回目录使用数据查询,能够非常容易地达到如下目的:选择合适的字段。限制记录。可以找出用户想得到的记录。给数据表中的记录排序。可以从多个数据表中查询数据。可以利用查询的结果生成窗体和报表。利用查询的结果可以创建图表。总之,利用查询可以允许用户查看指定的字段,显示特定条件的记录。如果需要,可以将查询的结果保存起来,也可以将其作为窗体或报表的数据来源。5.1 认识查询查询的种类 在Access2003数据库中,可以使用下列几种类型的查询:1选择查询 选择查询是最常见的查询类型。选择查询是从个或多个数据表中检索符合条件的数据,并且以结果集的形式显示查询结果。2参数查询 参数查询是在选择查询中增加了可变化的条件,即“参数”。参数查询增加了总计或产生总计的功能,它在执行时显示自己的对话框以提示用户输入信息。返回目录5.1 认识查询查询的种类返回目录3动作查询 动作查询是一种可以更改记录的查询。动作查询包括四种类型:删除查询、更新查询、追加查询和生成表查询。用户可以利用动作查询来更新数据表或者更改现有数据表中的数据。生成查询是从一个或多个表中的全部或部分数据创建一张新表。4交叉表查询 交叉查询显示来源于表中的某个字段的统计值并将它们分组。5.1 认识查询查询条件 条件是查询或高级筛选中用来识别所需特定记录的限制条件。可以对相同的字段或不同的字段输入附加的条件。也可以指定条件来更改计算的结果。返回目录5.2 建立查询的方式 使用Access数据库提供的“查询向导”,用户可以创建大部分类型的查询。使用“SQL查询”,可以创建任何类型的查询。如果要方便地创建单独执行的查询,或作为多个窗体和报表的基础的查询,可以使用“查询向导”。创建查询的另一种方式是使用“按窗体筛选”从所创建的筛选中创建查询,用户可以将筛选作为查向来保存。如果这些方法都不能满足需要,用户可以在查询“设计”视图中创建查询。返回目录5.3 创建选择查询 使用向导 “简单查询向导” 只能生成一些小的选择查询。以下是“简单查询向导”的基本特征: 不能添加选择条件或者指定查询的排序次序。 不能改变查询中字段的次序,字段将一直以向第一个向导对话框中添加它们时的顺序出现。 如果所选的字段中有一个或者多个数字字段,该向导允许放置一个汇总查询,显示数字字段的总计值、平均值、最小值或者最大值。在查询结果集中还可以包含一个记录数量的计数。 如果所选的一个或者多个字段为“日期/时间”数据类型,则可以指定按日期范围分组的汇总查询天、月、季或者年。返回目录5.3 创建选择查询 利用设计器 “简单查询向导”的使用有很大的局限,所以最好的方法是在Access的图形化“查询设计”窗口中从头开始设计查询。“查询设计”窗口是Access最为强大的功能特征之一。例如我们可以设计一个简单的查询,为在04年1月1日之前归还资产的借出信息进行查询。返回目录显示条件和排序次序所产生的结果5.4 创建交叉表查询 交叉表查询既可以在表的基础上创建,也可以在另一个查询的基础上创建。利用交叉表查询可以对数据进行总和、求平均值、计数或其他的计算。这些数据通过两种信息进行分组:一组显示在表的左部,另一组显示在表的顶部,从而增加了数据的可视性。返回目录5.4 创建交叉表查询使用向导 Access 的交叉表查询向导可以从一个单一的表或查询生成交叉表查询。如果你必须包含多个表才能得到你从向导得到的结果,则必须设计你自己的交叉表查询。要显示2003年每季度每种资产的购买情况,首先创建一个查询,然后使用交叉表查询向导生成一个结果集。返回目录5.4 创建交叉表查询利用设计器 手工设计交叉表查询的时候,可以绕过查询向导所需要的源查询步骤。比如,在“查询设计”视图中创建一个典型的交叉表查询,按行显示产品,在每列中显示相应的该产品的月销售额。返回目录5.5 创建参数查询 参数查询可以在运行查询的过程中自动修改查询的规则,用户在执行参数查询时会显示一个输入对话框以提示用户输入信息,这种查询叫做参数查询。 当需要对某个字段进行参数查询时,首先切换到这个查询的设计视图,然后在作为参数使用的字段下的“条件”单元格中,在方括号内键入相应的提示文本。此查询运行时,Access将显示该提示。输入完毕后,将查询切换到数据表视图,这时在屏幕中就会出现一个对话框,提问你需要限制哪个参数。此时输入一定的条件就可以看到查出的满足条件的记录。Access 的参数查询是建立在选择查询或交叉查询的基础之上的,是在运行选择查询或交叉查询之前,为用户提供了一个设置条件的参数对话框,可以很方便地更改查询的限制或对象。当然不仅仅可以建立单个参数的查询,还可以同时为其他字段建立条件提示的查询。返回目录5.6 创建操作查询 操作查询用于创建新表或者修改现有表中的数据。Access提供的操作查询有以下几种类型: 生成表查询从包含在查询结果集中的数据创建新表。生成表查询最为常见的应用之一便是创建可以导出到其他应用的表或者从其他表中汇总数据。生成表查询提供了一种将一个表复制到其他表的便利方法。在有些情况下,也可以使用生成表查询来加速基于一个单一而复杂的查询生成多个窗体和报表的过程。 追加查询可以从查询的结果集向表中添加新的记录。 删除查询用于从表中删除与查询结果集中的行相对应的记录。 更新查询根据查询结果集中的行改变表中现有记录的相应字段的值。返回目录5.6 创建操作查询生成表查询 在这一节中,我们将学习如何使用生成表查询为使用期限不少于5年的资产创建一个新的资产信息表。这个过程将使得在资产信息表中使用期限小于5年的记录能够被删除。返回目录图527 使用期限不少于5年的资产信息表5.6 创建操作查询删除查询 有时你必须从一个表中删除记录。例如,你或许想删除已作废资产的记录。用删除查询从表中删除记录的过程与追加记录的过程相反。你创建一个包含所有字段的选择查询(使用*号从字段列表中选择),然后添加指定条件确定删除哪些记录的个别字段。如果你不指定任何条件,当你将选择查询转换为删除查询且针对该表运行它的时候,Access将会删除所有的表记录。我们以删除报废资产的记录为例建立删除查询。这个删除查询以“资产信息”表提供源数据。返回目录5.6 创建操作查询追加查询 生成表查询从构成查询基础的记录结构中创建新表结构。只有出现在查询中的记录字段才会被添加到新表的结构中。追加查询可以将新增记录添加到现存的一个或多个表中,追加查询中的数据一般来源于Access表或查询。追加查询和生成表查询不同,因为追加查询可以比查询要向之追加记录的表具有的字段少。否则,创建和追加过程便基本相同了。前面我们使用生成表查询生成了“使用期限不少于5年的资产信息”表。下面我们对这个表进行追加记录,将使用期限不少于3年的记录追加到这个表中。返回目录5.6 创建操作查询更新查询 更新查询可以改变表中记录的数据值。当你必须用相同表达式更新许多记录的字段值时,这种查询是很有用的。例如,你或许需要按固定的比率增加或者降低所有产品或某一类特定产品的单位价格。下面我们以“资产信息”表为例创建更新查询。在“资产信息”表中,“资产状态”字段为报废的记录的“可行操作”字段都没有填写,如图5-38所示。我们使用更新查询来将这些字段值填写完整。返回目录5.6 创建操作查询更新查询未填写报废资产“可行操作”字段的资产信息表返回目录运行更新查询后“资产信息”表的结果5.7 创建其它类型的查询1 创建查找重复项查询在Access中,可能需要对数据表中某些具有相同的值的记录进行检索、分类。利用系统提供的“查找重复查询向导”可以快速地完成一个“查找重复项”查询。2 利用查询向导查找表之间不匹配的查询 在Access中,可能需要对数据表中的记录进行检索,查看它们是否与其他记录相关,是否真正具有实际意义。利用“查找不匹配查询向导”可以快速地完成。返回目录5.8 保存查询 该做的差不多都做完了,我们需要把新建的查询保存起来。在主菜单上单击“文件”菜单中的“保存”命令。如果在完成的时候忘了保存直接退出了,不用担心,在Access中,为了防止出现没有保存而直接退出的事情发生,会在退出查询窗口的时候自动弹出一个对话框,提示你是否保存刚才所做的工作,这时应该单击“是”按钮保存查询。如果不想保存刚才的工作,就单击“否”按钮。本 章 小 结1. 认识查询 2 .建立查询的方式 3 .创建查询 创建选择查询 创建交叉表查询 创建参数查询创建操作查询 创建其它类型的查询 4 .保存查询 返回目录第11章 面向对象程序设计语言VBA 学习目标 VBA的基础知识 在VBA中各种变量的定义及用法 程序设计中的流程控制方法 第11章 面向对象程序设计语言VBA 教学内容 11.1 VBA概述 11.2 模块、函数及程序 11.3 Visual Basic的数据类型与数据库对象 11.4 变量 11.5 将数据库对象命名为VBA程序代码中的变量11.6变量命名的法则 11.7 符号常量 返回总目录第11章 面向对象程序设计语言VBA返回目录 教学内容 11.8 Access系统定义的常量 11.9 Access固有常量 11.10 程序控制流程 11.11 处理执行时的错误 11.12 控制模块窗体 本章小结 11.1 VBA概述由于宏具有这些局限性,所以在给数据库设计一些特殊的功能时,需要用到“模块”对象来实现,而这些“模块”都是由一种叫做“VBA”的语言来实现的。 例如:可以用ACCESS的宏语言来使ACCESS自动化,使用WORD BASIC使WORD自动化等等。微软决定让它开发出来的应用程序共享一种通用的自动化语言Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集。实际上VBA是“寄生于”VB应用程序的版本。 返回目录11.1 VBA概述“模块”和“宏”的使用是差不多的。其实Access中的“宏”也可以存成“模块”,这样运行起来的速度还会更快呢。“宏”的每个基本操作在“VBA”中都有相应的等效语句,使用这些语句就可以实现所有单独“宏”命令,所以“VBA”的功能是非常强大的。11.1.2 VBA简介返回目录VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。VBA(Visual Basic for Application)是MicroSoft公司Office系列软件中内置的用来开发应用系统编程语言。它与Visual Studio系列中的Visual Basic开发工具很相似(只是相似),包括各种主要的语法结构、函数命令等等,但是二者又有本质区别。VBA主要是面向Office办公软件进行的系统开发工具(增强Word、Excel等软件的自动化能力),提供了很多VB中没有的函数和对象,这些函数、对象都是针对Office应用的。开发此相关项目效率极高。 VBA的开发环境(一) 对象框过程框代码模块区VBA工程窗口属性窗口监视窗口立即窗口本地窗口代码窗口属性窗口工程资源管理器窗口VBA的开发环境(二) 11.1.3 VBA与xBase和Visual Basic的比较 VBA和VB的区别包括如下几个方面: (1)VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(ACCESS等)自动化。(2)VB具有自己的开发环境,而VBA必须寄生于已有的应用程序(OFFICE)。(3) 要运行VB开发的应用程序用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的“父”应用程序,例如ACCESS。 11.1.3 VBA与xBase和Visual Basic的比较 xBASE是专门用数据库开发的数据库管理系统。它提供的数据子语言分为3类 (1)数据定义语言。(2)数据操作语言。(3)数据控制语言。在数据库操纵方面,xBASE具有强大的功能(1)数据组织定义功能。(2)数据操作与查询优化功能。(3)数据控制及数据维护功能。(4)数据管理功能。(5)数据库的多种接口功能。 11.1.4 如何使用Visual Basic 程序代码 利用模块可以创建自己的函数、子过程以及事件过程等,来完成复杂的计算功能。使用模块可以代替宏,并可以执行标准宏所不能执行的功能。在Access中可以创建标准模块、类模块和过程,选择数据库窗口中的“模块”选项卡,单击数据库窗口工具栏上的“新建”按钮,系统会打开Microsoft Visual Vasic窗口,选择“插入”菜单中的“过程”、“模块”和“类模块”命令,即可添加相应的模块。 11.1.4 如何使用Visual Basic 程序代码VBA中的代码必须编译才能通过执行,在Access中有两种编译代码的方法:一次性全部编译和每次只编译执行部分。一次性编译即在系统一开始的时候花一段时间进行VBA代码的全部编译,如果代码较多,就会在系统启动时造成延迟,使用户感觉系统的执行速度变慢的错觉,而有些代码在这次打开数据库时并不需要,所以Access的默认编译方式是请求时编译,即在使用该段代码时才载入并进行编译。编译设置方式为,在Microsoft Visual Basic窗口中选择“工具”菜单中的“选项”命令,系统会弹出编译方式设置对话框(如图11-3),在“编译”一栏中如果选中“请求时编译”则编译方式采用请求进编译方式,如果取消该选项,则采用一次性编译方式。 11.1.4 如何使用Visual Basic 程序代码编译类型图11-3 VBA中选项对话框 11.2 模块、函数及程序 模块是将VBA代码声明、语句和过程作为一个单元进行保存的集合,是基本语句的一种数据库对象,数据库中的所有对象都可以在模块中进行引用。 11.2.1模块的一些概念 在Access2002中模块可以分为两大类:类模块和标准模块。模块的每一个过程都可以是一个函数过程或子过程。类模块:是一种包含对象的模块,当创建一个新的事物时即在程序中创建一个新的对象,模块中定义的过程都会转变为对象的属性和方法。窗体和报表模块都属于类模块,而且它们各自与某一个窗体报表相关联。窗体和报表模块通常都含有事件过程,该过程用来响应窗体和报表中的事件。标准模块:只含有子过程和函数过程,以便在数据库中的其他过程中进行调用的模块。标准模块通常包含了通用过程和常用的过程,并不与任何对象相关联。 11.2.1模块的一些概念过程是包含VBA代码的基本单位,由一系列可以完成某项指定的操作或计算的语句和方法组成,通常分为:Sub过程、Function过程和Property过程。Sub过程以关键词Sub开始,以End Sub结束,可以传送参数和使用参数来调用它,便不返回任何值。当录制完宏查看代码时,所看到的就是子程序。宏只能录制子程序,而不能录制函数过程。一个子程序的例子如清单11-1所示。 11.2.1模块的一些概念程序清单11-1 子程序的例子 Private Sub login_ok_Click()Dim userID As Integer If IsNull(com用户) = False Then If DLookup(密码, 系统用户, 用户名= & com用户 & ) = txt密码 Then userID = DLookup(id, 系统用户, 用户名= & com用户 & ) DoCmd.Close DoCmd.OpenForm 主窗口 Form_主窗口.user = userID Else txt密码 = txt密码.SetFocus MsgBox 密码错误!, vbCritical End If End If End Sub 11.2.1模块的一些概念上面列出的过程实际上是一个“固定资产管理系统”的用户登录操作过程。通过它的名字,就可以知道这是一个单击事件过程。这个过程的名字是由一个对象的名字login_ok和一个事件的名字Click组成的,两者之间用下划线分开。如果还不明白,可以告诉你,login_ok 是一个命令按钮的名字。也就是说,当单击这个命令按钮时,就会运行这个事件过程。 11.2.1模块的一些概念Function过程也可以称为函数,由Function和End Function包含起来。它和Sub过程很类似,但它通常都具有返回值,在代码中可以一次或多次的为函数名称赋于一个值来作为函数的返回值。这个数值通常是计算的结果或是测试的结果,例如False 或True.正如前面所说,可以用VBA创建自定义函数。实际上可以在工作表上使用你创建的函数。程序清单11-2是一个计算价格的10%为运费的简单例子。 11.2.1模块的一些概念程序清单11-2 简单的用户定义函数示例。 Public Function Shipping(Price)Shipping = Price * 0.1End Function 请注意,这个函数使用一个参数(Price),子程序和函数都可以使用参数。不论Price的值是多少,它都将决定运费额。Price可以是数字的引用,函数返回计算出来的运费。 Dim P as integer P=100 Shipping =shipping(p) 11.2.1模块的一些概念Property过程可以用为窗体、标准模块以及类模块创建只读属性,可被用来在代码中代替Public变量。当创建一个Property过程,它就会变成当前模块的一个属性,与Public变量不同是的在对象浏览器窗口中Property过程会有一些帮助字符串。Access中有3种类型的Property过程:Property Let(设置属性值的过程)、Property Get (返回属性值的过程)、Property Set (设置对对象引用的过程) 11.3 Visual Basic的数据类型与数据库对象 11.3.1 VBA中基本数据类型 使用变量的第一步是了解变量的数据类型.变量的数据类型控制变量允许保存何种类型的数据。表11-3-1列出了VBA支持的数据类型,还列出了各种类型的变量所需要的存储空间和能够存储的数值范围。11.3.1 VBA中基本数据类型(1)字符串型(String)字符串是一个字符序列,由ASCII字符组成,包括标准的ASCII字符和扩展ASCII字符及汉字等。字符串是放在双引号内的若干个字符,长度为0的字符串称为空字符串。VB中的字符串分为两种,即变长字符串和定长字符串。变长字符串的长度是不确定的,最大长度不超过;定长字符串的长度是固定的,最大长度不超过。11.3.1 VBA中基本数据类型(2)整数(integer)整数是不带小数点和指数符号的数,在机器内以二进制补码形式表示。整型(Integer):整型以两个字节的二进制码表示和参加运算,取值范围为-3276832767。长整型(Long):长整型以四个字节的二进制码表示和参加运算,取值范围为-21474836482147483647。 11.3.1 VBA中基本数据类型(3)浮点数(single)浮点数也称实型数或实数,是带有小数部分的数值。它由三部分组成:符号、指数和尾数。单精度型(Single):以4个字节存储,符号1位,指数8位,尾数23位,1位隐含位。用E来表示指数。双精度型(Double):以8个字节存储,符号1位,指数11位,尾数52位,1位隐含位。用D来表示指数。 11.3.1 VBA中基本数据类型(4)货币型(Currency)货币数据类型是为表示钱款而设置的。该类型数据以8个字节存储,精确到小数点后四位,小数点前有15位,小数点后4位以后的数字将被舍去。浮点数中的小数点是“浮动”的,而货币类型数据的小数点是固定的。 11.3.1 VBA中基本数据类型(5)变体型(Variant)变体数据类型是一种可变的数据类型,可以表示任何值,包括数值、字符串及日期等。(6)字节型(Byte)字节型是一种数值类型,以一个字节的无符号二进制数存储,取值范围为0255。(7)布尔型(Boolean)布尔型是一个逻辑值,用两个字节存储,它只有两种值,即True或False。 (8)对象型(Object)对象型数据用来表示图形或OLE对象或其他对象,用4个字节存储。 11.3.1 VBA中基本数据类型(9)日期型(Date)日期型数据用来表示日期信息,格式为mm/dd/yyyy或mm-dd-yyyy。表示范围:100年1月1日到9999年12月31日。任何可辨认的文本日期都可以赋值给日期变量。日期文字必须用符号#括起来,如#April 1,2002#。当前版本的VB中,输出年份通常只输出后两位。如“1999”输出时为“99”,2000年后的年份其输出为“01”、“02”等。在输出2000年后的年份时应适当处理。 11.3.1 VBA中基本数据类型11.3.1 VBA中基本数据类型11.3.2 VBA中数据库对象 数据库对象,如:数据库、表彰和查询以及应用程序对象(窗体和报表)在VBA中都 有对应的数据类型,这些对象数据类型由对象库引用所定义,所有常用的VBA对象数据类型和对象库中所包括的对象在数据库对象中列出 11.3.2 VBA中数据库对象表11-2 VBA支持的最常用的数据对象和数据类型 11.4 变量 VBA也是使用变量来临时存储数据。变量有名字(用来引用该变量所含的值的名词)和数据类型(确定变量可以存储的数据的种类)。变量是内存单元的映射,变量名即为内存单元地址的映射。一个有名称的内存位置叫变量。变量的三要素:变量名、变量类型、变量的值。变量的命名规则(1)变量名只能由字母、数字、汉字和下划线组成(2)必须以字母开头,大小写等价 (3)长度不超过255(4)作用域内唯一 (5)不能和VBA保留字重名 (6)不能含有标点符号,类型说明符只能出现在名称的最后 11.4.1 隐含型变量 隐式声明在使用一个变量之前并不必先声明这个变量即可在程序中引用。这个变量只在当前过程中有效,是局部变量。用户可以通过给变量名指定值来创建变量,如下所示:NewVar = 1234 11.4.2 显式的变量 比较好的编程习惯是在声明变量时,在变量赋值之前为变量指定类型。声明变量的一般方法是用Dim.AsDataType结构,其中As指定数据类型。这样声明显式变量,如下例:Dim intNewVar As Integer如果不加入As Integer关键字,intNewVar默认的设置为Variant数据类型。 11.4.2 显式的变量当在模块声明部分增加Option Explicit语句时,所有的变量都将声明成显式类型。显式声明变量有三个作用,一是指定变量的数据类型,二是指定变量的适用范围(应用程序中可以引用变量的作用域),三是可以预先排除一些因为变量名书写不正确而带来的错误。 11.4.2 显式的变量声明一个变量要用Dim关键字。声明一个变量系统将完成对该变量内存空间的分配。例如:Dim MyName As String Dim Married As Boolean Dim Age As Integer声明完变量后就可对其进行赋值,并进行相应运算。例如:MyName=”张毅” Married=False Age=27注意:如果声明如下Dim I,j,k As integer,则只有k是integer型I与j都是Variant型。 11.4.3 变量的作用域与生命周期 变量的应用范围有三种:过程内部、整个模块和所有模块。过程内部使用的变量这种变量称为过程级变量,又称局部变量,除了用前面说过的Dim语句来声明之外,还可以用Static语句来声明。例如:Dim intPrice As Integer或者是Static intQuality As integer这两个语句定义的变量的区别在于存活期不同。 11.4.3 变量的作用域与生命周期局部变量比较适合于临时的计算。例如许多过程中可以同时定义一个intPrice的局部变量,每一个变量只对自己的过程有效,相互之间互不影响。模块内部的变量这种变量又称为模块级变量。在模块的声明定义的变量,如果不特别声明都只对该模块有效,其他模块不能访问该变量,模块内部变量扔声明可以用下面两个语句:Dim intPrice As Integer或者是Private intPrice As integer11.4.3 变量的作用域与生命周期所有模块使用的变量又称为公用变量。这种变量的声明也是在模块的声明段中。和模块内部变量的不同在于,这种变量用Public语句声明,例如:Public intPrice As integer现在声明的变量对所有的模块都有效,就是说,所有的模块可以对这个变量进行访问。 注意:在过程中不能声明这种公用变量。 11.4.4 用户定义的数据类型 创建自定义的数据类型的语句是Type,这个语句只能在标准模块的声明部分出现,如果出现然类模块的声明部分,在前面必须加上关键字Private。Type语句的基本语句形式是:Private | Public Type 变量名元素1 As type元素2 As typeEnd Type 11.4.4 用户定义的数据类型如果自定义的数据类型中包含数组,可以在”元素”后加上括号,注明上界和下界,默认的下界是0。例如:Type StateData CityCode(1 to 100) As integer 声明一个数组 Count As String *30End TypeDim Washington(1 to 100) As StateData如果你在一个模块中用Type语句定义了一个数据类型,那么你可以在模块中的任何部分定义一个这种类型的变量,还是通过Dim、Private、Public、Static或者是Redim语句。在标准模块和类模块中,Type语句的第一个方括号默认值是Public,当然也可以用Private关键字来改变。 11.4.4 用户定义的数据类型一个完整的用户自定义数据类型例子:Type EmployeeRecord 创建自定义数据类型ID As Integer 定义元素的数据类型Name As String *20Address As String *30Phone As longHireDate As DateEnd Type 11.4.5 Visual Basic数组 数组的概念在任何一种语言程序中几乎都是必需的。由于数组在存在,我们可以用相同的变量名引用多个变量,并且用数字索引它们。数组的作用是简化程序,通过索引值设计的循环来提高程序的效率。数组有其上界和下界,其中的元素在上下界内是连续的。数组内的所有元素的数据类型是相同的,特殊的是Variant类型的变量,您可以在这种类型的数组中,对其中的变量赋予任何基本类型的数据。由于VBA对数组中的每一个索引值都分配空间,所以要根据需要声明大小合适的数组,不要声明用不着的数组。 11.4.5 Visual Basic数组数组有两种类型:固定大小的数组和动态数组。前者总保持同样的大小,而后者则在运行中根据需要动态地改变数组的大小。1固定大小的数组(1)声明固定大小的数组数组的声明和变量的声明基本上是相同的,可以用Dim、Private、Public、Static来声明。数组也有其有效范围:a)建立局部数组,在过程中用Dim或Static语句声明。b)建立模块级数组,在模块的声明段中用Dim或Private语句来声明。c)建立公用数组,在模块的声明段中用Public语句声明。 11.4.5 Visual Basic数组 (2)设置上下界和变量声明有点区别的是,在声明数组时,数组名后面的括号中要设置一个上界,例如,可以在模块的声明估模段中声明:Dim Count(9) As IntegerDim Total(30) As Double括号中的数字为上界,默认为0,就是说,所建立第一个数组Count中共有10个元素,其索引号为0-9;第二个数组Total中共有31个元素,其索引号为0-39。数组的上界不能超过Long数据类型的范围,即-21474836482147483647。直接用Public 取代Dim,可把这两个数组声明为公用数组:Public Count(9) As IntegerPublic Total(30) As Double 11.4.5 Visual Basic数组一般来说,我们习惯用1做数组的下界,可以在其声明中在括号里加上上界:Dim Count(1 to 10) As IntegerDim Total(10 to 40) As Double这样声明的两个数组,其中元素的数量和原来都一样,只不过,Count的索引号变成了110,而Total的索引号变成了1040。也可以用Option Base的语句来设置数组的下界:Option Base 1这个语句的默认形式是:Option Base 0所以数组的默认下界都是0 11.4.5 Visual Basic数组 (3)多维数组最常见的多维数组,比方说,点的坐标,平面的坐标是二维的,而窨中的点的坐标则是三维的。下面的语句定义了一个55的二维数组。Static count(4,4) As Integer类似的声明也可以用在二维以上的数组中,例如:Dim MultiArray(4,1 to6,0 to 6) As Long这个声明建立了一个三维数组,大小为567。其中元素的总数应该是三个维数的乘积,为210。多维数组对存储空间的要求更大,一方面占据空间,另一方面影响运行速度,所以对多维数组要慎用。尤其是以Variant数据类型的数组,因为它们需要更大的存储空间。 11.4.5 Visual Basic数组2动态数组很多情况下,我们并能明确知道数组中应该有多少元素,就是说,数组应该有多大,这种情况下,我们要用到动态数组。动态数组中元素的个数是不定的,在程序运行中是可以改变其大小。但是,动态数组会浪费更多的内存空间,降低程序的运行速度,所以,尽可能不要彩这种方法。动态数组的优势在于灵活、方便,可随时改变大小,有助于对内存管理,用完后要释放内存,以提高运行速度 11.4.5 Visual Basic数组(1)动态数组的声明声明方法和前面类似,仍然是利用Dim、Static、Public和Private来声明。当然由于是动态数组,所以,括号中就没有上下界了,要保持内为空。例如:Dim MyArray( )此时的数组还不能直接使用,因为系统并未给其分配内存,必须用Redim语句给其分配实际的元素个数之后,才能够使用。下面是一个关于Redim的例子:用Redim语句来分配动态数组的存储空间,默认下界为1。Dim MyArray( ) As Integer声明动态数组Redim Myarray(5)分配5个元素For I=1 to 5MyArray(i)=INext I 11.4.5 Visual Basic数组下面的语句调整了数组的大小,但并没有抹去其中元素的值。Redim Preserve MyArray(15)重新设置为15个元素Redim 只能出现在过程中,它是一个可执行语句,这一点和Dim、Static、Public及Private语句不同,由于这一语句,应用程序在运行时执行一个操作。Redim语句只能改变数组的大小和上下界,不能改变数组的维数。Redim YouArray(11 t o20) As String设置上下界为20和11也可用变量设置动态数组的边界:Redim HerArray(X,Y) As String每次执行Redim语句时,数组中所在存储的数据就会全部丢失。 11.4.5 Visual Basic数组 VBA的这种功能,对于节省内存无疑是很有用的,但有时我们并不希望其中的数据丢失,也许我们要做的只是改变数组的大小。可以用带有Preserve关键字的Redim语句来完成这个任务。使用Preserve关键字时,可以改变数组中最后一维的边界,但不能改变这一维中的数据。例如,如果你的数组只有一维,那你就可以重新设置它的大小,因为这一维是最后而且是唯一的一维,改变了数组的大小却仍然保留了数组的索引。下面的例子展示了怎样增大数组中最后一维的大小,而不会抹掉数组中已经存在的任何数据索引。 11.5 将数据库对象命名为VBA程序代码中的变量 11.5.1 理解对象、属性、方法和事件一个对象是一个应用元素,例如一个工作表、一个表、一个窗体或一个报表。在你应用一个对象的方法或者是改变它的某一个属性之前必须确定对象类型。对象集合是一个包含其他几种对象的对象的对象,这几中对象通常但不总是同一种类型的。例如在Microsoft Excel中,工作簿集合包含所有打开的工作簿对象,而在Visual Basic中,窗体集合则包含所有应用窗体对象。对象集合中的对象可以通过名字和数值来索引。 11.5.1 理解对象、属性、方法和事件例如,下面的过程中,Workbooks(1)对第一个打开的对象进行识别和操作。Sub CloseFirst()Workbooks(1).closeEnd sub下面的过程用一个指定的字符串名识别一个窗体控件:sub CloseForm()forms(“myform.frm”).closeend sub如果集合中每一个对象都具有公共的方法,那你也可以对这个集合进行操作。例如Sub CloseAll()Forms.closeEnd sub11.5.1 理解对象、属性、方法和事件方法是能够对对象进行的操作。例如,Add是组合框的一个方法,因为它能够在组合框中增加一个新的项目。下面的过程用Add方法在组合框中新加一个项目。Sub Addentry(newentry as string)Combol1.Add newentryEnd sub 11.5.1 理解对象、属性、方法和事件属性是能够表明一个对象的特征的数据,例如size(尺寸)、color(颜色)等等。通过改变属性值,可以改变对象的特征。可能过由一个属性名和一个”=”加上一个表属性值组成的字段来改变对象的属性。例如下例改变窗体标题:myForm.Caption=”欢迎您使用本系统” 11.5.1 理解对象、属性、方法和事件事件是可以被对象识别的操作,例如单击鼠标、按下一个按键,可以编写代码作为对象的响应。事件通常是用户操作或程序代码运行的结果,也可以被系统所触发 11.5.2 创建对象变量你可以把对象变量理解为和它所指的对象是一样。可以设置或返回它的属性值,也可以使用它的方法。创建一个对象变量,要完成下面两个步骤:(1)声明对象变量(2)把对象赋予对象变量 11.5.2 创建对象变量1声明对象变量和声明其他的变量类型一样,可以用Dim语句或其他的语句(Public、Privte或Static)来声明。所声明的变量必须是一个变量、对象或者是一个特定的对象。例如,下面的声明是合法的: 声明myobject为变体数据类型Dim myobject 声明myobject为对象数据类型Dim myobject As Object 声明myobject为字体类型Dim myobject As Font 11.5.2 创建对象变量注意:a)如果你使用一个对象变量而没有首先声明它,那么,它默认的数据类型为变体数据类型。b)如果我在程序运行之前,不知道特定的对象类型的话,可以把它声明为对象数据类型。对象数据类型是一个可以指向任何对象的通用数据类型。c)如果你已经知道了要声明的特定对象类型,那么你应该把它声明成这种特定的数据类型。例如,如果应用程序中包含一个Sample数据类型,那么你可用下面的两个语句中的任何一个把对象变量声明成这种数据类型。 11.5.2 创建对象变量2给对象变量赋值使用Set语句来给对象变量赋予对象。你可以给对象变量赋予一个对象表达式或Nothing。例如,下面给对象变量的赋值是合法的:Set myobject=YourObject指定引用对象Set myObject=Nothing中止对象的引用可以用带New关键字的Set语句使得在声明一个对象变量的同时,给它赋予对象变量。例如:Set myObject=New Object创建并且赋值 11.6变量命名的法则 对一个优秀软件来说,变量的命名规范性也是非常重要的,软件的开发初期对变量的起名工作是要求不高的,可以随时改变。但是对一项工程的整体来说变量命名的规范性是至关重要的,在VBA中主要体现以下几个方面:首先,命名的规范性易于阅读。如XM与Name相比,虽然都想表示姓名但是后者明显比前者易于理解。其次,通过规范性前缀可以清楚的判断出变量的数据类型,据此可以进行有针对性的数据操作。最后,变量的命名要尽量反映出其用途,使用驼峰命名法,即每个单词的首字母大写。如intAge,curSalary。 11.6变量命名的法则表11-3 变量命名的法则11.7 符号常量 在使用代码编程时,经常会用到一些数字,这些数字比较难记并且没有什么明确的意义。解决的方法就是利用常量,可以大幅度地改进代码的可读性和可维护性。常量是用来取代永远不变的数值和字符串的。使用常量的一个很重要的原则就是命名一定要有明确的含义,否则就谈不上代码的可读性。常量在某些地方和变量有些类似,不同的一点是:常量一经定义,用户在代码中就不能对其进行修改,也不能像变量那样赋一个新值给它。 11.7 符号常量声明常量的语法是:Public | Private Const 常量名As type=表达式方括号中的项是可选的。参数 “常量名” 是必须的,其命名规则和变量的命名规则一样,表达式可以是一个数值、字符串或者是与运算符的组合,但是要注意在表达式中不能使用函数调用。和变量一样,常量也有自己的应用范围,其规则也和变量一样 11.7 符号常量Const可以表示字符串常量,如:Public Const Cname=”张三”Const Ccountry=”China”也可以表示数值或日期/时间值,如:Private Const Pi=3.1415926Const Cdate=”12/08/2004”注意:这几个常量的定义都没有使用As Type来声明数据类型,遇到这种情况,VBA会选择最适合 “表达式”的数据类型。Const Cnum As integer=156561一行中定义多个变量Const Ccountry=”USA”,cDate=”12/13/2005”Const Cexp1=3/7+585可以用运算表达式 Const Cexp2=Cexp1 * 2用前面定义的常量表达式 11.8 Access系统定义的常量 在Microsoft Access的任何地方都要使用系统定义的常量:True、False、Yes、No、On、Off、NULL。它们由VBA和Accesss类库声明生成。在这七处常量中,用户可以使用True、False和Null,在VBA代码中它们由VBA库声明。剩下的四个常量由Access类型库声明,除程序块之外的所有数据库对象均可合法使用它们。Form!Employees.Visible=True当窗体Visible属性为True时,执行相应的程序体。 11.9 Access固有常量 Microsoft Access2002自动定义了许多固有常量,并且提供了许多固有常量,并且提供了对Visual Basic for Application常量和Data Access Objcts(DAO)常量的访问。所有的固有常量都可在宏或Visual Basic中使用,任何时候这些常量都是可用的。在函数、方法和属性的帮助主题中对用于其中的特定内置常量都有描述。你也可以用对象浏览器来查看所有可通知对象库中固有常量列表。 11.9 Access固有常量固有常量的两个字母前缀指明了定义该常量的对象库。来自Microsoft Access库的常量以”ac”打头;来自DAO库的常量以”db”打头;而来自VBA库的常量则以”vb”打头,例如: (1)dbAppendOnly(2)vbCurrency注意:因为固有常量所代表的值在Microsoft Access的今后版本中可有改变,所以应使用常量而不是常量的实际值。可以通过在对象浏览器中选择常量或在”调试”窗口中键入”?”来显示常量的值。 11.9 Access固有常量可以在任何允许使用符号常量或用户定义常量的地方,包括表达式中,使用固有常量。下面的例子说明了如何使用固有常量vbCurrency来确定varnum变量是否为Variant类型,对于该类型Vartype函数将返回6Dim varnum As VariantIf vartype(varnum)=vbCurrency ThenDebug.Print“varnum contains Currency data”ElseDebug.Print “varnum doesnt contain Currency data”End if 11.10 程序控制流程 11.10.1 以GoTo转移程序控制 VBA的GOTO语句可以跳过一些代码块,并且可以继续执行。它的语法格式为:GOTO 标号从当前位置,程序跳到相应的标号位置。GOTO语句为程序的代码设计提供一个极大的灵活方式,但是在程序设计过程中我们还是要尽量的避免使用GOTO语句,主要原因就是GOTO语句的这种不加条件的任意跳转会程序变得异常难读,一旦程序出现错误这样的结果将导致程序难以调试。11.10.2 条件语句Visual Basic 能够测试条件式,然后根据不同的结果选择不同的操作。主要的条件语句有:l IfThenElsel Select Case1 IfThenElse根据表达式的值,有条件地执行一组语句。语法为:单语句形式:if 条件 then 语句1 Else 语句2 11.10.2 条件语句块语句形式:If 条件1 Then语句块1ElseIf 条件2 Then语句块2Elseif 条件3.Elseelse语句块 End if 11.10.2 条件语句IfThenElse语句的语法具有以下几个部分:条件表达式:必要参数。一个或多个具有下面两种类型的表达式:(1)数值表达式或字符串表达式,其运算结果为True或False。如果条件表达式为NULL,则条件表达式会视为False(2)形式为objectname is objecttype形式的表达式。其中的objectname是任何对象的引用,而objecttype则是任何有效的对象类型。如果objectname是objecttype所指定的一种对象类型,则表达式为True,否则为False。语句块:一条或多条语句ElseIf:当前面的条件表达式为False时,判断此条件是否为真,为真执行下面的语句块。Else:当前面所有条件表式值为False时,执行此语句块 11.10.2 条件语句2多分支语句Select Case根据表达式的值来决定执行几组语句之一。语法为:Select Case 条件表达式Case 值1语句块1Case 值2语句块2Case Case ElseElse语句块End Select 11.10.2 条件语句注意:a)如果条件表达式的值满足某个case值,则执行相应的语句块,如果当前case值不满足,则进行下一个case语句的判断直至遇到满足条件的Case语句或Case Else或End select。b)如果条件表达式满足n个Case语句,则只有第一个Case语句执行。c)Case Else子句用于当所有Case语句都不满足时,执行此子句d)可以在每个Case子句中使用多重表达式或使用范围,例如,下面的语句是正确的:Case 1 to 5,7,8,10,is20 11.10.2 条件语句e)也可以针对字符串指定范围和多重表达式。在下面的例子中,Case所匹配的字符串为:等于everything、按英文字线顺序落入从nuts到soup之间的字符串、以及Testitem所代表的当前值。Case “everything”,”nuts” to “soup”,Testitem f)Select Case 语句也可以嵌套的。但每个嵌套的 Select Case 语句必须要有相应的End Selet语句 11.10.3 循环通过循环结构可以重复执行一个或多个语句。也可以定义一个条件,使得循环语句的执行变得有条件。1DoLoop当条件为True时,或直到条件变为True之前,重复执行一个语句块中的命令。语法为:Do While | Until condition statementsExit Do statementsLoop 11.10.3 循环或者也可以使用下面的语法:DostatementsExit DostatementsLoop While | Until condition11.10.3 循环Do Loop 语句的语法有以下几个部分:(1)condition:可选参数。数值表达式或字符表达式,其值为True或False。如果condition是NULL,则condition会被当作False(2)statements:一条或多条命令,它们将被重复当或直到condition为True。 11.10.3 循环注意:a)在DoLoop中可以在任何位置放置任意个数的
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。