为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义

计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义

2018-07-24 50页 doc 605KB 6阅读

用户头像

is_574951

暂无简介

举报
计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义 计算机二级ACCESS 2012考试大纲及讲义 复习方法及近年真 题,独家编辑, 1 (收录) 本人的计算机成绩并不算好,但由于考前一个月临阵磨枪复习得法,在今年9月的考试中取得了笔试和机试双优的成绩。下现我将个人的经验拿出来和大家分享。 正确的复习方法 其实计算机二级并不难, 大多为记忆性的知识,需要灵活运用的很少。所以,备考二级不宜太早,以考前一个半月开始准备为宜。 所谓万变不离其宗,因此教材应至少通读两遍,把该记住(如变量、函数等)的都...
计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义
计算机二级ACCESS_2012考试大纲及复习方法+历年真+讲义 计算机二级ACCESS 2012考试大纲及讲义 复习方法及近年真 题,独家编辑, 1 (收录) 本人的计算机成绩并不算好,但由于考前一个月临阵磨枪复习得法,在今年9月的考试中取得了笔试和机试双优的成绩。下现我将个人的经验拿出来和大家分享。 正确的复习方法 其实计算机二级并不难, 大多为记忆性的知识,需要灵活运用的很少。所以,备考二级不宜太早,以考前一个半月开始准备为宜。 所谓万变不离其宗,因此教材应至少通读两遍,把该记住(如变量、函数等)的都记牢,并不断复习巩固。参考资料则不宜过多过杂,题海战术不是最有效的,可根据考试大纲,对所做题型进行适当分类整理。比如在二级考笔试中,一般有四大类,每一大类又有若干小类,包括计算机硬件和软件系统的常识,一些基础概念、数制、各种外设的常识、主机常识等,以及计算机最新发展的一些基本常识,如互联网、多媒体等;二是,,,操作系统的知识,如目录、路径,文件等知识;三是某一语种的基本知识,如命令函数的功能和用法;四是该语种的程序阅读和理解,一般是给一段小程序,要求考生理解其意义,或选择或填空。 笔试 做笔试题最好在电脑上实验。如果是程序题,把程序输进电脑进行运行,看得出什么结果。若是命令和函数,也可在电脑上测试,这样你会发现许多有趣的技巧或别的东西,记忆深刻。 一般说来,笔试部分只需五套模拟试题外加两套历年真题便可搞掂。但做这些套题时不能走马观花,要反复练习,认真,加以总结。“北大飞腾”的系列参考书非常具有代表性,解题技巧和复习重点一目了然,最重要的是价钱还不贵。 机试 机试相对较难,二级没过的人80,栽到机试上。 机试部分除了多练习别无他法。上机的编程题分数较多,如果只是纸上谈兵,没有实际的编程经验,很难应付考试。对二级考生,为准备上机编程,应熟练地掌握30,50个左右的程序例子。上机题一般都有输出结果,而要产生输出结果,必须运行程序,运用程序调试方法。在运行中调试程序,是一项重要的技能。“华东理工大学上海捷成系统工程部”的一套软件就很好,如果能做好这套软件里面的三十套全真模拟机试题,考出优秀绝对没有问题(今年所考的机试题竟有90,与那套光盘内容相同)。 考场上 考前应提前30分钟到侯考室,并带好准考证和身份证,为避免丢失,最好用一透明塑料袋封装好。进入界面后应仔细核对准考证号和身分证号,以避免不必要的麻烦。要一字不漏地细心审题,如要求所生成的表单或菜单等存入指定目录 应回到此目录下检查 不仅要看内容是否符合题意 还要注意大小写。如是程序编写或改错 应该运行一遍 确保万无一失。考完按下“交卷”后最好不要马上离开,等监考人员确认交卷正常并同意离开时再走。万一不幸死机,千万别惊慌,擅自关机重启,而应举手报告监考人员。 由于机试是分批抽题考试,每次考完一批,都可询问考完同学的一些题目,运气好的话有可能抽到相同的题。当然,考完之后最重要的是记得存盘,否则就前功尽弃了。 备忘录 全国计算机等级考试每年开考两次。 上半年开考一、二、三级,下半年开考一、二(除fortran外)、三、四级。由考点具体安排。上半年考试开始时间为4月的第一个星期六,下半年考试时间为9月倒数第二个星期六。第一天上午考笔试,上机考试从笔试的当天下午开 2 始~报名时间:一般来说,上半年5月25日开始,下半年12月1日开始。 2012二级Access考试大纲 Access数据库程序设计 1. 具有数据库系统的基础知识。 2. 基本了解面向对象的概念。 3. 掌握关系数据库的基本原理。 4. 掌握数据库程序设计方法。 5. 能使用Access建立一个小型数据库应用系统。 考试内容 一、数据库基础知识 1. 基本概念:数据库,数据模型,数据库管理系统,类和对象,事件。 2. 关系数据库基本概念:关系模型(实体的完整性,参照的完整性,用户定义的完整性),关系模式,关系,元组,属性,字段,域,值,主关键字等。 3. 关系运算基本概念:选择运算,投影运算,连接运算。 4. SQL基本命令:查询命令,操作命令。 5. Access系统简介: (1) Access系统的基本特点。 (2) 基本对象:表,查询,窗体,报表,页,宏,模块。 二、数据库和表的基本操作 1. 创建数据库: (1) 创建空数据库。 (2) 使用向导创建数据库。 2. 表的建立: (1) 建立表结构:使用向导,使用表设计器,使用数据表。 (2) 设置字段属性。 (3) 输入数据:直接输入数据,获取外部数据。 3 3. 表间关系的建立与修改: (1) 表间关系的概念:一对一,一对多。 (2) 建立表间关系。 (3) 设置参照完整性。 4. 表的维护: (1) 修改表结构:添加字段,修改字段,删除字段,重新设置主关键字。 (2) 编辑表内容:添加记录,修改记录,删除记录,复制记录。 (3) 调整表外观。 5. 表的其他操作: (1) 查找数据。 (2) 替换数据。 (3) 排序记录。 (4) 筛选记录。 三、查询的基本操作 1. 查询分类: (1) 选择查询。 (2) 参数查询。 (3) 交叉表查询。 (4) 操作查询。 (5) SQL查询。 2. 查询准则: (1) 运算符。 (2) 函数。 (3) 表达式。 3. 创建查询: (1) 使用向导创建查询。 (2) 使用设计器创建查询。 (3) 在查询中计算。 4. 操作已创建的查询: (1) 运行已创建的查询。 (2) 编辑查询中的字段。 (3) 编辑查询中的数据源。 (4) 排序查询的结果。 四、窗体的基本操作 1. 窗体分类: (1) 纵栏式窗体。 4 (2) 表格式窗体。 (3) 主/子窗体。 (4) 数据表窗体。 (5) 图表窗体。 (6) 数据透视表窗体。 2. 创建窗体: (1) 使用向导创建窗体。 (2) 使用设计器创建窗体:控件的含义及种类,在窗体中添加和修改控件,设置控 件的常见属性。 五、报表的基本操作 1. 报表分类: (1) 纵栏式报表; (2) 表格式报表。 (3) 图表报表。 (4) 标签报表。 2. 使用向导创建报表。 3. 使用设计器编辑报表。 4. 在报表中计算和汇总。 六、页的基本操作 1. 数据访问页的概念。 2. 创建数据访问页: (1) 自动创建数据访问页。 (2) 使用向导数据访问页。 七、宏 1. 宏的基本概念。 2. 宏的基本操作: (1) 创建宏:创建一个宏,创建宏组。 (2) 运行宏。 (3) 在宏中使用条件。 (4) 设置宏操作参数。 (5) 常用的宏操作。 八、模块 5 1. 模块的基本概念: (1) 类模块。 (2) 标准模块。 (3) 将宏转换为模块。 2. 创建模块: (1) 创建VBA模块:在模块中加入过程,在模块中执行宏。 (2) 编写事件过程:键盘事件,鼠标事件,窗口事件,操作事件和其他事件。 3. 调用和参数传递。 4. VBA程序设计基础: (1) 面向对象程序设计的基本概念。 (2) VBA编程环境:进入VBE,VBE界面。 (3) VBA编程基础:常量,变量,表达式。 (4) VBA程序流程控制:顺序控制,选择控制,循环控制。 (5) VBA程序的调试:设置断点,单步跟踪,设置监视点。 考试方式 1. 笔试:90分钟,满分100分,其中含公共基础知识部分的30分。 2. 上机操作:90分钟,满分100分。 上机操作包括: (1) 基本操作。 (2) 简单应用。 (3) 综合应用。 全国计算机等级考试二级Access讲义 第1章 数据库基础知识 1.1 数据库基础知识 1.1.1 计算机数据管理的发展 数据(Data) 数据是描述现实世界事物的符号记录,是用物理符号记录的可以鉴别的信息。包括文字、图形、声音等,他们都是用来描述事物特性的。 数据处理 数据处理是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。包括:收集原始数据、编码转换、数据输入、数据处理、数据输出等。 数据处理的中心问题是数据管理 。 数据管理技术的发展,与计算机硬件(主要是外部存储器)、系统软件及计算机应用的范围有着密切的联系。数据管理技术的发展经历了以下几个阶段:人工管理阶段、文件系统阶 6 段、数据库系统阶段、分布式数据库系统阶段和对象数据库系统阶段。 1(人工管理阶段 这一阶段是指20世纪50年代中期以前,计算机主要用于科学计算,当时的计算机硬件状况是:外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;软件状况是:没有操作系统,没有管理数据的软件,数据处理方式是批处理。 人工管理阶段的特点是:数据不保存、数据无专门软件进行管理(数据冗余)、数据不共享、数据不具有独立性、数据无结构。 2(文件系统阶段 这一阶段从20世纪50年代后期到60年代中期,计算机硬件和软件都有了一定的发展。计算机不仅用于科学计算,还大量用于管理。这时硬件方面已经有了磁盘、磁鼓等直接存取的存储设备。在软件方面,操作系统中已经有了数据管理软件,一般称为文件系统。处理方式上不仅有了文件批处理,而且能够联机实时处理。 文件系统阶段的特点:数据管理由文件管理系统完成 ;数据共享性差、冗余度大 ;数据独立性差 ;数据可长期保存 。 3(数据库系统阶段 20世纪60年代末数据管理进入新时代——数据库系统阶段。数据库系统阶段出现了统一管理数据的专门软件系统,即数据库管理系统。数据库系统是一种较完善的高级数据管理方式,也是当今数据管理的主要方式,获得了广泛的应用。数据库系统阶段的特点:数据结构化 ;数据共享程度高;数据独立性强;数据冗余度小;加强对数据的保护 4(分布式数据库系统阶段 分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。 5(面向对象数据库系统阶段 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。面向对象数据库吸收了面向对象程序设计方法的核心概念和基本思想,采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等 。 1.1.2 数据库系统 1(数据 描述事物的物理符号序列称为数据(Data) 。 描述事物的物理符号可以是用来表示长度、体积、重量之类的数字数值,也可以是人名或地名、图形、图像、动画、影像、声音等非数值数据。 2(数据库 数据库(DataBase,DB),顾名思义,是存放数据的仓库。是长期存放在计算机内,有组织的、大量的、可共享的数据集合 。 数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户、多个应用程序共享。 3(数据库应用系统 数据库应用系统是为特定应用开发的数据库应用软件系统。 数据库管理系统为数据的定义、存储、查询和修改提供支持,而数据库应用系统是对数据库中的数据进行处理和加工的软件,它面向特定应用。 7 一般在不引起混淆的情况下常常把数据库系统简称为数据库. 4(数据库管理系统 数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统(OS)之间的数据管理软件,是数据库系统的核心软件。其主要功能包括以下几个方面(P5页) (1)数据定义 (2)数据操纵 (3)数据库的运行管理 (4)数据的组织、存储和管理 (5)数据库的建立和维护 (6)数据通信接口 5(数据库系统 数据库系统(DataBase System,DBS)是指拥有数据库技术支持的计算机系统。它可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。数据库系统由硬件系统、数据库、数据库管理系统及相关软件、数据库管理员( DataBase Administrator ,DBA)和用户组成。 数据库系统的特点: (1)实现数据共享,减少数据冗余 (2)采用特定的数据模型 (3)具有较高的数据独立性 (4)有统一的数据控制功能 1.1.3 数据模型 模型是现实世界特征的模拟和抽象。要将现实世界转变为机器能够识别的形式,必须经过两次抽象,即使用某种概念模型为客观事物建立概念级的模型,将现实世界抽象为信息世界,然后再把概念模型转变为计算机上某一DBMS支持的数据模型,将信息世界转变为机器世界。 1(实体的概念 (1)实体(Entity) 客观存在并可相互区别的事物称为实体。 (2)属性(Attribute) 实体所具有的某一特性称为属性。 (3)实体集和实体型 属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。同类型的实体的集合,称为实体集。 (4)联系(Relationship) 实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。 实体间的联系可分为以下三种类型 ? 一对一联系 例如,一个学生只能有一个学号,而一个学号只能指向一个学生,则学生与学号之间具有一对一联系。 ? 一对多联系 例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。 ? 多对多联系 例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。 3(数据模型 数据模型是按计算机系统的观点对数据建模,主要用于DBMS的实现, 8 在实现数据库管理的过程中,数据模型起着关键作用。整个数据库技术的发展就是沿着数据模型的主线展开的。现有的数据库都是基于某种数据模型的。 常用的数据模型有3种:层次模型、网状模型和关系模型。 层次模型 层次模型是数据库系统中最早出现的数据模型它用树形结构表示各实体以及实体间的联系。 若用图来表示,层次模型是一棵倒立的树。在数据库中,满足以下条件的数据模型称为层次模型: ? 有且仅有一个结点无父结点,这个结点称为根结点; ? 其他结点有且仅有一个父结点。 网状模型 在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构是很不直接的,网状模型则可以克服这一弊病。网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。 ? 允许一个以上的结点无父结点; ? 一个结点可以有多于一个的父结点。 1.2 关系数据库 1.2.1 关系模型 以二维表的形式表示实体与实体间联系的数据模型称为关系模型。 从模型的三要素角度看,关系模型的内容为: 数据结构:一张二维表格。 数据操作:数据表的定义,检索、维护、计算等。 数据约束条件:表中列的取值范围即域值的限制条件。 (1)关系 在关系模型中,一个关系就是一张二维表,每个关系都有一个关系名。在数据库中,一个关系存储为一个数据表。 (2)元组 表中的行称为元组,每一行是一个元组,对应数据表中的一个具体记录,元组的各分量分别对应于关系的各个属性。 (3)属性 表(关系)中的列称为属性,每一列有一个属性名,对应数据表中的一个字段。 (4)域 一个属性的取值范围是该属性的域。 (5)关键字 9 表中的一个属性(组),它的值可以唯一地标识一个元组。如:学号。 (6)外关键字 如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。 (7)候选码 表中的某一个属性,它的值可以唯一地标志一个元组。一个表中可能有多个候选码,选择一个作为主键,主键的属性称为主属性。 关系的特点: (1)关系必须化。规范化是指关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能在包含表。 (2)在同一个关系中不能出现相同的属性名。 (3)关系中不允许有完全相同的元组,即冗余。 (4)在一个关系中元组的次序无关紧要。 (5)在一个关系中列的次序无关紧要。 1.2.2 关系运算 在关系数据库中,关系的基本运算有两类:传统的集合运算和专门的关系运算。 一 传统的集合运算 1(并 设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为?。 2(差 设有两个关系R和S,它们具有相同的结构。R和S的差是由属于R但不属于S的元组组成的集合。运算符为,。 3.交 设有两个关系R和S,它们具有相同的结构。R和S的交是由既属于R又属于S的元组组成的集合,运算符为?。 10 二 传统的集合运算 1(选择 选择运算是在关系中选择满足某些条件的元组。也就是说,选择运算是在二维表中选择满足指定条件的行。 2(投影 投影运算是从关系模式中指定若干个属性组成新的关系。即在关系中选择某些属性列。 3(联接 联接运算将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。 1.3 数据库设计基础 11 1.3.1 数据库设计的原则 (1)关系数据库的设计应遵从概念单一化“一事一地”的原则 (2)避免在表之间出现重复字段 (3)表中的字段必须是原始数据和基本数据元素 (4)用外部关键字保证有关联的表之间的联系 1.3.2 数据库设计的步骤 1(需求分析 2(确定所需要的表 3(确定所需字段 4(确定联系 5(设计求精 1.4 Access数据管理系统概述 1.4.1 Access的发展简介 Access 是一种关系型的桌面数据库管理系统,是 Microsoft Office 套件产品之一。 1992年 11 月推出 Access 1.0 , Microsoft 先后推 出 2.0 , 7.0/95 , 8.0/97 , 9.0/2000 , 10.0/2002 ,直到 Access 2003 和Access 2007 。 本教程以Access 2003 版为教学背景。 Access的特点 1 (具有方便实用的强大功能。 2 (可以利用各种图例快速获取数据。 3 (可以利用报表设计工具,方便生成报表。 4 (能处理多种数据类型。 5 (采用 OLE 技术,能方便创建和编辑多媒体数据库。 6 (支持 ODBC 标准的 SQL 数据库的数据。 7 (设计过程自动化,大大提高了数据库的工作效率。 8 (具有较好的集成开发环境。 9 (提供了断点设置、单步执行等调试功能。 10 (与 Internet/Intranet 的集成。 11 (可以将数据库应用程序的建立移进用户环境,并最终使用户和应用程序开发者之间的关系淡化。 1.4.2 Access的系统结构 Access将数据库定义为一个扩展名为.mdb文件,由数据库对象和组两部分组成。其中对象分为 7 种:表、查询、窗体、报表、数据访问页、宏、模块。 表是数据库的核心与基础,存放中数据库中的全部数据。报表、查询和窗体都是从数据库中获取数据信息,以实现用户的某一特定的需要。 1、表是实现数据库管理的基础,是关于特定主题(例如:学生和课程)数据的集合,是数据库的核心与基础。表中的列在Access中称为字段,行在Access中称为记录。 2、查询是用来操作数据库中的记录对象,利用它可以按照一定的条件或准则从一个或多个表中筛选出需要操作的字段,并可以把它们集中起来,形成所谓的动态数据集,并显示在一个虚拟的数据表窗口中。 3、窗体:数据库与用户进行交互操作的界面。其数据源可以是表或查询。 4、报表可以按照指定的样式将多个表或查询中的数据显示(打印)出来。报表中包含了指定数据的详细列表。报表也可以进行统计计算,如求和、求最大值、求平均值等。报表与窗体类似,也是通过各种控件来显示数据的,报表的设计方法也与窗体大致相同。 5、页是一种特殊的 Web 页,用户可以在此 Web 页与 Access 数据库中的数据进行联接,查 12 看、修改 Access 数据库中的数据。数据访问页就是Internet网页,将数据库中的数据编辑成网页形式,可以发布到Internet上,提供给Internet上的用户共享。也就是说,网上用户可以通过浏览器来查询和编辑数据库的内容。 6、宏是若干个操作的组合,用来简化一些经常性的操作。用户可以设计一个宏来控制系统的操作,当执行这个宏时,就会按这个宏的定义依次执行相应的操作。宏可以打开并执行查询、打开表、打开窗体、打印、显示报表、修改数据及统计信息、修改记录、修改表中的数据、插入记录、删除记录、关闭表等操作。 7、模块是用VBA语言编写的程序段,它以Visual Basic为内置的数据库程序语言。对于数据库的一些较为复杂或高级的应用功能,需要使用VBA代码编程实现。通过在数据库中添加VBA代码,可以创建出自定义菜单、工具栏和具有其他功能的数据库应用系统。 1.4.3 Access的操作窗口 1(启动 Access 与其他Windows应用程序一样,启动Access可以通过单击“开始”菜单,然后在“程序”菜单中选择 图标,即可打开Access 。 2、关闭Access的4 种方法: (1)单击 Access 右上角的“关闭”按钮 (2)选择“文件”菜单中的“退出”命令 (3)使用 Alt+F4 快捷键 (4)使用 Alt+F+X 快捷键 第2章 数据库和表 2.1 数据库的创建 创建数据库方法有两种,一是先建立一个空数据库,然后向其中添加表、查询、窗体和报表等对象,这是创建数据库最灵活的方法;二是使用“数据库向导”,利用系统提供的模板进行一次操作来选择数据库类型,并创建所需的表、窗体和报表,这是操作最简单的方法。 2.1.1 创建空数据库 例2-1 建立“教学管理”空数据库,并将建好的数据库保存在C盘Access文件夹中。 注意:数据库创建好后,数据库容器中还不存在任何其他数据库对象,此时可以根据需要在该数据库容器中创建数据库对象。另外,在创建数据库之前,最好先建立用于保存该数据库文件的文件夹,以便今后的管理。 2.1.2 使用向导创建数据库 例2-2 在C盘“教学管理”文件夹下创建“教学管理”数据库。 利用“数据库向导”创建数据库对象,在所建的数据库对象容器中包含了表、查询、窗体、报表、宏和模块等Access对象。但是,由于“数据库向导”创建的表可能与需要的表不完全相同,表中包含的字段可能与需要的字段不完全一样。因此通常使用“数据库向导”创建数据库后,还需要对其进行补充和修改。 2.1.3 打开数据库 1(通过“开始工作”任务窗格打开 2(使用“打开”命令打开 例2-3 打开C盘“教学管理”文件夹中“教学管理”数据库。 2.1.4 关闭数据库 关闭数据库的方法有3种。 (1) 单击“数据库”窗口右上角“关闭”按钮 13 (2) 双击“数据库”窗口左上角“控制”菜单图标 (3) 单击“数据库”窗口左上角“控制”菜单图标,从弹出快捷菜单中选择“关闭”命令 2.2 建立表 2.2.1 表的组成 表是Access数据库中最基本的对象,是具有结构的某个相同主题的数据集合。 表由两部分构成:表结构和表内容。 1(字段名称 每个字段应具有唯一的名字,称为字段名称。 字段名称的命名规则为: (1)长度为1,64个字符。 (2)可以包含字母、汉字、数字、空格和其他字符,但不能以空格开头。 (3)不能包含句号(.)、惊叹号(!)、方括号([ ])和重音符号(?)。 (4)不能使用ASCII为0,32的ASCII字符。 2(数据类型 注意:“数字”、“日期,时间”、“货币”以及“是,否”,这些数据类型提供预先定义好的显示格式。可以从每一个数据类型可用的格式中选择所需的格式来设置“格式”属性。也可以为所有的数据类型创建自定义显示格式,但“OLE对象”数据类型除外。 2.2.2 建立表结构 1(使用“数据表”视图 “数据表”视图是按行和列显示表中数据的视图。在数据表视图中,可以进行字段的编辑、添加、删除和数据的查找等各种操作。 2(使用设计视图 表设计视图是创建表结构以及修改表结构最方便、最有效的窗口。 3(使用表向导 表设计视图是创建表结构以及修改表结构最方便、最有效的窗口。 4(定义主键 14 定义主键的方法有两种,一是在建立表结构过程中定义主键;二是在建立表结构后,重新打开设计视图定义主键。 主键也称为主关键字,是表中能够唯一标识记录的一个字段或多个字段的组合。 主键有三种,即自动编号、单字段和多字段。 自动编号主键的特点是,当向表中增加一个新记录时,主键字段值会自动加1,如果在保存新建表之前未设置主键,则Access会询问是否要创建主键,如果回答“是”,Access将创建自动编号类型的主键。 单字段主键是以某一个字段作为主键,来唯一标识记录,这类主键的值可由用户自行定义。 多字段主键是由两个或更多字段组合在一起来唯一标识表中记录。 2.2.3 设置字段属性 字段属性表示字段所具有的特性,它定义了字段数据的保存、处理或显示。 1(字段大小 , 字段大小属性用于限制输入到该字段的最大长度,当输入的数据超过该字段设置的 字段大小时,系统将拒绝接收。 , 字段大小属性只适用于文本、数字或自动编号类型的字段。 , 在设计视图的字段属性框的字段大小属性中选择字段大小的类型(数字)或输入字 段大小的字符个数(文本)。 , 如果文本字段中已经有数据,那么减小字段大小会造成数据丢失,Access将截去超 出新限制的字符。 , 如果在数字字段中包含小数,那么将字段大小属性设置为整数时,Access自动将小 数取整。 , 如果文本型字段的值是汉字,那么每个汉字占一位。 2(格式 , 格式属性影响数据的显示格式。 , 可确定数字、货币、日期等字段格式。 , 在设计视图的字段属性框的字段格式属性中选择字段格式的类型。 3(输入掩码 , 用于指定数据的输入格式。 , 可定义文本、数字、日期/时间、货币等数据类型的字段。 , 如果为某字段定义了输入掩码,同时又设置了它的格式属性,格式属性将在数据显 示时优先于输入掩码的设置。 , 只为文本型和日期/时间型字段提供向导。 , 可使用字符定义输入掩码属性。 , 输入掩码属性由字面字符(如空格、点、括号等)和决定输入数值的类型的特殊字 符组成。 15 4(默认值 , 设置默认值可以减少数据输入量。 , 在设计视图的字段属性框的默认值属性中输入默认的的值。 , 设置默认值属性时,必须与字段中所设的数据类型相匹配,否则会出现错误。 5(有效性规则 , 为防止数据的输入错误而设置。 , 有效性规则允许定义一条规则,限制可以接受的内容。 , 有效性规则的实质是一个限制条件,完成对数据输入的检测。 , 在设计视图的字段属性框的有效性规则属性中该字段的有效性规则。 6(有效性文本 , 当输入的数据违反了有效性规则时,显示的文本信息。 , 通常与有效性文本同时定义。 7(索引 , 索引能根据键值加速在表中查找和排序的速度,并且能对表中的记录实施唯一性。 , 在Access中,可以创建基于单个字段的索引,也可以创建基于多个字段的索引。 2.2.4 建立表之间的关系 1(定义关系的条件 , 表间关系分为一对一、一对多和多对多三种。 , 建立表间关系的条件: (1)如果仅有一个相关字段是主键或具有唯一索引,则创建一对多关系。 (2)如果两个相关字段都是主键或唯一索引,则创建一对一关系。 (3)多对多关系实际上是某两个表与第三个表的两个一对多关系,第三个表的主键包含两 16 个字段,分别是前两个表的外键。 ,(参照完整性 , 指数据的正确性、准确性和有效性。参照完整性是在输入或删除记录时,为维持表 之间已定义的关系而必须遵循的规则。 , 如果实施了参照完整性,那么当主表中没有相关记录时,就不能将记录添加到相关 表中,也不能在相关表中存在匹配的记录时删除主表中的记录,更不能在相关表中 有相关记录时,更改主表中的主键值。 3(建立表之间的关系 建立表间关系的方法包括:使用向导创建数据库同时创建表间关系;使用“关系”命令定义表间关系。 4(子数据表 , 子数据表是指在一个数据表视图中显示已与其建立关系的数据表视图。 , 在建有关系的主数据表视图上,每条记录左端都有一个关联标记“?”。在未显示子 数据表时,关联标记内为一个“+”号,此时单击某记录的关联标记,即可显示该记 录对应的子数据表记录数据,而该记录左端的关联标记内变为一个“?”号。若需展 开所有记录的子数据表,可选择“格式”?“子数据表”?“全部展开”命令;若需折叠 展开的子数据表,可选择“格式”?“子数据表”?“全部折叠”命令。 3.2.5 向表中输入数据 1(以数据表视图方式输入数据 2(创建查阅列表字段 3. 获取外部数据 (1)导入数据 导入数据是将其它系统的数据库数据导入到Access数据库中。 一般使用导入命令将外部数据导入至当前数据库中。 (2)链接数据 链接数据是指在自己的数据库中形成一个链接表对象,每次在Access数据库中操作数据时,都是即时从外部数据源获取数据。 2.3 维护表 为使数据库中表结构更合理,内容使用更有效,需要对表进行维护。 2.3.1 打开/关闭表 1(打开表 , 使用打开命令(改内容) , 使用设计命令(改结构) 2(关闭表 2.3.2 修改表结构 1(添加字段 2(修改字段 3(删除字段 4(重新设置主键 2.3.3 编辑表内容 1定位记录 数据表中有了数据后,修改是经常要做的操作,其中定位和选择记录是首要的任务。常用的记录定位方法有两种:一是用记录号定位,二是用快捷键定位。快捷键及其定位功能见下表。 17 2选择记录 选择记录是指选择用户所需要的记录。用户可以在“数据表”视图下使用鼠标或键盘两种方法选择数据范围。 3 .编辑表内容 (1)添加记录 在已经建立的表中,添加新的记录。 (2)删除记录 删除表中出现的不需要的记录。 (3)修改数据 在已建立的表中,修改出现错误的数据。 (6)复制数据 在输入或编辑数据时,有些数据可能相同或相似,这时可以使用复制和粘贴操作将某些字段中的部分或全部数据复制到另一个字段中。 2.3.4 调整表外观 调整表的结构和外观是为了使表看上去更清楚、美观。调整表外观的操作包括:改变字段次序、调整字段显示宽度和高度、隐藏列和显示列、冻结列、设置数据表格式、改变字体显示等。 2.4 操作表 2.4.1 查找数据 查找指定内容 在“数据表”视图中,使用编辑菜单中的查找命令 查找空值或空字符串 空值是字段中还没有值,可用Null值代替 空字符串是用双引号括起来的空字符串,即””,中间没有空格,长度为0 2.4.2 替换数据 在“数据表”视图中,使用编辑菜单中的替换命令。 1、替换指定内容 2、更改默认设置 2.4.3 排序记录 排序记录时,不同的字段类型,排序规则有所不同,具体规则如下: (1)英文按字母顺序排序,大小写视为相同,升序时按A到z排列,降序时按z到A排列。 18 (2)中文按拼音的顺序排序,升序时按A到z排列,降序时按z到A排列。 (3)数字按数字的大小排序,升序时从小到大排列,降序按从大到小排列。 (4)使用升序排序日期和时间,是指由较前的时间到较后的时间;使用降序排序时,则是指由较后的时间到较前的时间。 排序时,要注意的事项如下: (1)在“文本”字段中保存的数字将作为字符串而不是数值来排序。因此,如果要以数值的顺序来排序,必须在较短的数字前面加上零,使得全部文本字符串具有相同的长度。例如:要以升一序来排序以下的文本字符串“1”、“2”、“11”和“22”,其结果将是“1”、“11”、“2”、“22”。必须在仪有一位数的字符串前面加上零,才能正确地排序:“01”、“02”、“11”、“22”。对于不包含Null值的字段,另一个解决是使用V al函数来排序字符串的数值。例如:如果“年龄”列是包含数值的“文本”字段,在“字段”单元格指定V al([年龄]),并且在“排序”单元格指定排序次序后,才会以正确的顺序来放置记录。如果只在“文本”字段之中保存数字或日期,可以考虑将表的数据类型更改为数字、货币或日期,时间。这样在对此字段排序时,数字或日期将会以数值或日期的顺序来排序,而不需要加入前面的零。 (2)在以升序来排序字段时,任何含有空字段(包含Null值)的记录将列在列表中的第一条。如果字段中同时包含Null值和空字符串,包含Null值的字段将在第一条显示,紧接着是空字符串。 2.4.4 筛选记录 1(按选定内容筛选 , 筛选符合单值的记录 2(按窗体筛选 , 筛选符合两个以上值的记录 3(按筛选目标筛选 , 筛选符合某条件的记录 4(高级筛选 , 筛选满足复杂条件的记录 第3章 查 询 3.1 查询概述 查询是Access数据库中的一个重要对象,是使用者按照一定条件从Access数据库表或已建立的查询中检索需要数据的最主要方法。 3.1.1 查询的功能 1(选择字段 在查询中,选择表中的部分字段。 2(选择记录 根据指定的条件查找所需的记录,并显示找到的记 3(选择记录 利用查询添加、修改和删除表中记录。 4(实现计算 在建立查询时进行各种统计计算 。 5(建立新表 利用查询得到的结果建立新表。 6(为窗体、报表或数据访问页提供数据 查询对象不是数据的集合,而是操作的集合。查询的运行结果是一个数据集合,也称为动态集。它很像一张表,但并没有被存储在数据库中。创建查询后,保存的只是查询的操作,只有在运行查询时,Access 才会从查询数据源表的数据中抽取出来并创建它;只要关闭查询,查询的动态集就会自动消失。 3.1.2 查询的类型 19 在Access 中,查询分为5种,分别是选择查询、交叉表查询、参数查询、操作查询和SQL查询。5种查询的应用目标不同,对数据源的操作方式和操作结果也不同。 1(选择查询 , 选择查询是最常用的查询类型。顾名思义,它是根据指定条件,从一个或多个数据 源中获取数据并显示结果。也对记录进行分组,并且对分组的记录进行总计、计数、 平均以及其他类型的计算。 , 例如,查找1992年参加工作的男教师,统计各类职称的教师人数等。 2(交叉表查询 , 交叉表查询将来源于某个表或查询中的字段进行分组,一组列在数据表左侧,一组 列在数据表上部,然后在数据表行与列的交叉处显示数据源中某个字段统计值。 , 例如,统计每个系男女教师的人数,要求行标题显示系名,列标题显示性别,表的 交叉处显示统计的人数。 3(参数查询 , 参数查询是一种根据使用者输入的条件或参数来检索记录的查询。 , 例如,可以设计一个参数查询,提示输入两个成绩值,然后Access检索在这两个值 之间的所有记录。 4(操作查询 , 操作查询与选择查询相似,都需要指定查找记录的条件,但选择查询是检查符合特 定条件的一组记录,而操作查询是在一次查询操作中对所得结果进行编辑等操作。 , 操作查询有4种:生成表、删除、更新和追加。 5(SQL查询 , SQL查询是使用SQL语句来创建的一种查询。 , SQL查询有,种:包括联合查询、传递查询、数据定义查询和子查询等。 联合杳询是将一个或多个表、一个或多个查询的字段组合为查询结吴巾的一个字段,执行联合查询时,将返回所包含的表或查询中的对应字段记录; 传递查询是直接将命令发送到ODBC数据库,它使用服务器能接受的命令,利用它可以检索或更改记录; 数据定义查询可以创建、删除或更改表,或在当前的数据库中创建索引; 子查询是包含另一个选择或操作查询中的SQL SELECT语句,可以在查询设计网格的“字段”行输入这些语句来定义新字段,或在“准则”行来定义字段的准则。 3.1.3 查询的条件 1.运算符 运算符是构成查询条件的基本元素。Access提供了关系运算符,逻辑运算符和特殊运算符3种。 20 2.函数(简单介绍几个) Access提供了大量的标准函数,如数值函数、字符函数、日期时间函数和统计函数等。(详见附录) 3(使用数值作为查询条件 4(使用文本值作为查询条件 5(使用计算或处理日期结果作为查询条件 6(使用字段的部分值作为查询条件 7(使用空值或空字符串作为查询条件 注意: , 在条件中字段名必须用方括号括起来。 , 数据类型必须与对应字段定义的类型相符合。 3.2 创建选择查询 根据指定条件,从一个或多个数据源中获取数据的查询称为选择查询。创建创建选择查询的方法有两种:查询向导和设计视图。 3.2.1 使用查询向导 使用查询向导创建查询,操作者可以在向导指示下选择一个或多个表、一个或多个字段,但不能设置查询条件。 例3-1 查找“教师”表中的记录,并显示“姓名”、“性别”、“工作时间”和“系别”4个 21 字段。 注意: 1、在数据表视图显示查询结果时,字段的排列顺序与在“简单查询向导”对话框中选定字段的顺序相同。故在选定字段时,应考虑按照字段的显示顺序选取。 2、当所建查询的数据源来自于多个表时,应建立表之间的关系。 3.2.2 使用“设计”视图 1(查询“设计”视图 , 在Access中,查询有5种视图:设计视图、数据表视图、SQL视图、数据 透视表视图和数据透视图视图。 , 在设计视图中,既可以创建不带条件的查询,也可以创建带条件的查询,还 可以对已建查询进行修改。 3.2.3 在查询中进行计算 1 查询中的计算功能 在Access查询中,可以执行两种类型的计算,预定义计算和自定义计算。 (1)预定义计算即“总计”计算,是系统提供的用于对查询中的记录组或全部记录进行的计算,它包括总计、平均值、计数、最大值、最小值、标准偏差或方差等。 (2)自定义计算使用一个或多个字段的值进行数值、日期和文本计算。对于自定义计算,必须直接在“设计网格”中创建新的计算字段,创建方法是将表达式输入到“设计网格”中的空字段单元格,表达式可以由多个计算组成。 2 总计查询 总计查询是在成组的记录中完成一定计算的查询。使用查询设计视图中的“总计”行,可以对查询中全部记录或记录组计算一个或多个字段的统计值。 例4-7 统计1992年参加工作的教师人数。 3 分组总计查询 将记录进行分组,对每个组的值进行统计。分组统计时,应在该字段的“总计”行上选择“分组”。 例4-8 计算各类职称的教师人数。 4 添加计算字段 添加的新字段值是根据一个或多个表中的一个或多个字段并使用表达式计算得到,也称为计算字段。 例4-10 查找平均分低于所在班平均分的学生并显示其班级号、姓名和平均成绩。假设,班级号为“学生编号”中的前8位。 3.3 交叉表查询 1(认识交叉表查询 (1)所谓交叉表查询,就是将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,然后在数据表行与列的交叉处显示表中某个字段的各种计算值 (2)与Excel中的数据透视表一样 2(使用“交叉表查询向导” 例3-11 创建一个交叉表查询,统计每班男女生人数。 注意: 使用向导创建交叉表的数据源必须来自于一个表或一个查询。如果数据源来自多个表,可以先建立一个查询,然后以此查询作为数据源。 3(使用“设计”视图 例3-12 创建交叉表查询,使其统计各班男生平均成绩和女生平均成绩 。 22 当所建“交叉表查询”数据来源于多个表或查询时,使用设计视图。当所用数据源来自于一个表或查询,使用“交叉表查询向导” 。如果“行标题”或“列标题”需要通过建立新字段得到,使用设计视图。 3.4 参数查询 参数查询利用对话框,提示输入参数,并检索符合所输参数的记录。可以创建一个参数提示的单参数查询,也可以创建多个参数提示的多参数查询。 1(单参数查询 创建单参数查询,即指定一个参数。在执行单参数查询时,输入一个参数值。 例3-13 按学生姓名查找某学生的成绩,并显示“学生编号”、“姓名”、“课程名称”及“成绩”等。 2(多参数查询 创建多参数查询,即指定多个参数。在执行多参数查询时,需要依次输入多个参数值。 例3-14 建立一个查询,使其显示某班某门课的学生“姓名” 和“成绩”。 3.5 操作查询 操作查询是指仅在一个操作中更改许多记录的查询。例如在一个操作中删除一组记录,更新一组记录等。 操作查询包括生成表查询、删除查询、更新查询、追加查询等。 1(生成表查询 生成表查询是利用一个或多个表中的全部或部分数据创建新表。 2(删除查询 从一个或多个表中删除指定的数据。 3(更新查询 对一个或多个表中的记录进行更新。 4(追加查询 从一个或多个表中将一组记录追加到另一个或多个表中。 注意: 无论哪一种操作查询,都可以在一个操作中更改许多记录,并且在执行操作查询后,不能撤消刚刚做 过的更改操作。因此在执行操作查询之前,最好单击工具栏上的“视图”按钮,预览即将更改的记录。另外,在使用操作查询之前,应该备份数据。 3.6 创建SQL查询 3.6.1 查询与SQL视图 , 在Access中,一个查询都对应着一个SQL语句,查询对象的实质是一条 SQL语句。 , 当使用设计视图建立一个查询时,Access在后台就会构造一个等价的SQL 语句。 3.6.2 SQL语言简介 SQL(Structured Query Language,结构化查询语言)是数据库领域中应用最为广泛的数据库查询语言。 SQL的特点: , SQL是一种一体化语言,包括数据定义、数据查询、数据操纵和数据控制 等方面的功能,可以完成数据库活动中的全部工作。 , SQL是一种高度非过程化语言,只需描述“做什么”,不需说明“怎么做”。 , SQL是一种非常简单的语言,所用语句很接近于SQL是一个共享语言,全 面支持客户机/服务器结构。 2(SQL语句 23 SQL语句的功能包括:查询、操纵、定义和控制。 SQL功能 动 词 SQL功能 动 词 数据定义 CREATE,DROP,ALTER数据查询 SELECT 数据操作INSTER ,UPDATE,DELETE 数据控制 CRANT,REVOTE 1.CREATE语句 格式:CREATE TABLE <表名> (<字段名1> <数据类型> [列完整性约束条件], [<字段名2> <数据类型> [列完整性约束条件]] ……) 例3.19 建立一个“雇员”表,包括雇员号、姓名、性别、出生日期、部门,备注字段。 CREATE TABLE 雇员 (雇员号 CHAR(8) SMALLINT Primary Key, 姓名 CHAR(4) Not Null,性别 CHAR(1), 出生日期 DATE,部门 CHAR(20)),备注 MEMO; 2. ALTER语句 格式:ALTER TABLE <表名> [ ADD <新字段名> <数据类型> [字段级完整性约束条件] ] [ DROP [<字段名>] ……. ] [ALTER <字段名> <数据类型>] 其中, <表名>是指需要修改的表的名字,ADD子句用于增加新字段和该字段的完整性约束条件,DROP子句用于删除指定的字段,ALTER子句用于修改原有字段属性。 例3.20 在“雇员”表中增加一个字段,字段名为“职务”,数据类型为“文本”;将“备注”字段删除;将“雇员号”字段的数据类型改为文本型,字段大小为8。 (1)添加新字段的SQL语句为: ALTER TABLE 雇员 ADD 职务 CHAR(10); (2)删除“备注”字段的SQL语句为: ALTER TABLE 雇员 DROP 备注; (3)修改“雇员号”字段属性的SQL语句为: ALTER TABLE 雇员 ALTER 雇员号 CHAR(8); 3.DROP语句 格式:DROP TABLE <表名> 例3.21 删除已建立的“雇员”表 DROP TABLE 雇员; 4.INSERT语句 格式: INSERT INTO <表名>[(<属性名1>[,<属性名2>…])] VALUES (<常量1>)[,<常量2>]…); 例3.22 将一条新记录插入到“雇员”表中 INSERT INTO 雇员 VALUES (“0001”,“张磊”,“男”,#1960-1-1#,“办公室”); 例3.23 将一条新记录插入到“雇员”表中,其中“雇员号”为“0002”,“姓名”为“王宏”,“性别”为“男” INSERT INTO 雇员 (雇员号,姓名,性别) VALUES (“0002”,“王宏”,“男” ); 24 注意:文本数据应用双引号括起来。日期数据应用“#”号括起来。 5. UPDATE语句 格式: UPDATE <表名> SET <列名>=<表达式> [<列名>=<表达式>]… [WHERE <条件>]; 例3.24 将“雇员”表张磊的出生日期改为“1960-1-11” UPDATE 雇员 SET 出生日期=#1960-1-11# WHERE 姓名=“张磊”; 6. DELETE语句 格式: DELETE FROM <表名> [WHERE <条件>]; 例3.25 将 “雇员”表中 “雇员号”为“0002”的记录删除 DELETE FROM 雇员 WHERE 雇员号=“0002”; 7. SELECT语句 格式: SELECT [ALL|DISTINCT] *| <字段列表> FROM <表名1>[,<表名2>]… [WHERE <条件表达式>] [GROUP BY <字段名>[HAVING<条件表达式>]] [ORDER BY <字段名>[ASC|DESC]]; 其中All(默认):返回全部记录; Distinct:略去选定字段中重复值的记录; From:指明字段的来源,即数据源表或查询; Where:定义查询条件; Group By:指明分组字段,Having:指明分组条件,必须跟随Group By使用; Order By :指明排序字段,Asc | Desc:排序方式,升序或降序。 例3.27 查找并显示“教师”表中“姓名”、“性别”、“工作时间”和“系别”4个字段 SELECT 姓名,系别,工作时间,系别 FROM 教师; 例3.28 查找1992年参加工作的男教师,并显示 “姓名”、“性别”、“学历”、“职称”、“系别”和“联系电话” SELECT 姓名,性别,学历,职称,系别,联系电话 FROM 教师 WHERE 性别=“男“AND 工作时间>=#1/1/1992#; 3.6.3 创建SQL特定查询 SQL特定查询分为联合查询、传递查询、数据定义查询和子查询等4种。其中联合查询、传递查询、数据定义查询不能在查询“设计”视图中创建,必须直接在“SQL”视图中创建SQL语句。对于子查询,要在查询设计网络的“字段”行或“条件”行中输入SQL语句。 1(联合查询 联合查询是将一个或多个表、一个或多个查询组合起来,形成一个完整的查询。执行联合查询时,将返回所包含的表或查询中对应字段的记录。 2(传递查询 传递查询是自己并不执行而是传递给另外一个数据库来执行的查询。传递查询可直接将命令发送到ODBC数据库服务器中,如SQL Server。使用传递查询时,不必与服务器上的表链接,就可以直接使用相应的表。 例3-33 查询SQL Server数据库(名为“教学管理系统”)中“教师”表和“课程”表的信息, 25 显示姓名,系别和课程名称字段的值。 注意:如果将传递查询转换为另一种类型的查询,例如选择查询,将丢失输入的SQL语句。如果在“ODBC连接字符串”属性中没有指定连接串,或者删除了已有字符串,Access将使用默认字符串“ODBC”,并且在每次运行查询时,提示连接信息。 3(数据定义查询 数据定义查询与其他查询不同,利用它可以直接创建、删除或更改表,或者在当前数据库中创建索引。在数据定义查询中要输入SQL语句,每个数据定义查询只能由一个数据定义语句组成。 4(子查询 在对Access表中的字段进行查询时,可以利用子查询的结果进行进一步的查询。不能将子查询作为单独的一个查询,必须与其他查询相结合。 3.7 编辑和使用查询 3.7.1 运行已创建的查询 , 通过工具栏上的“执行”按钮 , 通过“数据库”窗口中“查询”对象下的“打开按钮” , 鼠标双击要运行的查询 3.7.2 编辑查询中的字段 , 添加字段 , 删除字段 , 移动字段 3.7.3 编辑查询中的数据源 , 添加表或查询 , 删除表或查询 3.7.4 调整查询的列宽 调整列宽的方法是:打开要修改查询的设计视图,将鼠标指针移到要更改列的字段选择器的右边界,使鼠标指针变成双向箭头,拖动鼠标改变列的宽度,双击鼠标可将其调整为“设计网格”中可见输入内容的最大宽度。 3.7.5 排序查询的结果 通过排序,查询中的记录指定顺序排列,可使显示的记录清晰、一目了然。 例4-36 对例3.10的查询结果按成绩从低到高的顺序排列。 第4章 窗体 4.1 认识窗体 4.,., 窗体的作用 窗体是应用程序和用户之间的接口,是创建数据库应用系统最基本的对象。用户通过使用窗体来实现数据维护、控制应用程序流程等人机交互的功能。 , 数据输入和编辑 , 信息显示和数据打印 , 控制应用程序流程 4.,.2 窗体的类型 Access提供了7种类型的窗体,分别是纵栏式窗体、表格式窗体、数据表窗体、主/子窗体、图表窗体、数据透视表窗体和数据透视图窗体。 1纵栏式窗体 26 纵栏式窗体将窗体中的一个显示记录按列分隔,每列的左边显示字段,右边显示字段内容。 2表格式窗体 通常,一个窗体在同一时刻只显示一条记录的信息。如果一条记录的内容比较少,单独占用一个窗体的空间就显得很浪费。这时,可以建立一种表格式窗体,即在一个窗体中显示多条记录的内容。 3数据表窗体 数据表窗体从外观上看与数据表和查询的界面相同。数据表窗体的主要作用是作为一个窗体的子窗体。 4主,子窗体 窗体中的窗体称为子窗体,包含子窗体的基本窗体成为主窗体。主窗体和子窗体通常用于显示多个表或查询中的数据,这些表或查询中的数据具有一对多的关系。 主窗体只能显示为纵栏式的窗体,子窗体可以显示为数据表窗体,也可以显示为表格式窗体。 5图表窗体 图表窗体是利用Microsoft Graph以图表方式显示用户的数据。可以单独使用图表窗体,也可以在子窗体中使用图表窗体来增加窗体的功能。 6数据透视表窗体 数据透视表窗体是Access为了以指定的数据表,或查询为数据源产生一个Excel的分析表而建立的一个窗体形式。数据透视表窗体允许用户对表格内的数据进行操作;用户也可以改变透视表的布局,以满足不同的数据分析方式和要求。 7(数据透视图窗体 数据透视图窗体用于显示数据表和窗体中数据的图形分析窗体。数据透视图窗体允许通过拖动字段和项或通过显示和隐藏字段的下拉列表中项,查看不同级别的详细信息或指定布局。 4.,.3 窗体的视图 表和查询有两种视图:“数据表”视图和“设计”视图,而窗体有5种视图,即“设计”视图、“窗体”视图、“数据表”视图、“数据透视表”视图和“数据透视图”视图。 “设计”视图是用于创建窗体或修改窗体的窗口; “窗体”视图是显示记录数据的窗口,主要用于添加或修改表中的数据; “数据表”视图是以表格的形式显示表、查询或窗体数据的窗口。“数据透视表”视图使用“Office数据透视表”组件,易于进行交互式数据分析 ;“数据透视图”视图使用“Office Chart 组件”,帮助用户创建动态的交互式图表 。 4., 创建窗体 创建窗体有两种途径:一种是在窗体的设计视图下手动创建,另一种是使用Access提供的各种向导快速创建。 本节介绍如何利用系统提供的向导创建各类窗体。 4.2.1 自动创建窗体 Access提供了两种方法自动创建窗体。一种是在“表”对象下使用“自动创建窗体”功能;另一种是在“窗体”对象下使用“自动创建窗体”功能 1(使用“自动窗体” 使用“自动窗体”功能是创建数据维护窗体 最快捷的方法,它可以快速创建基于选定表或查询中所有字段及记录的窗体,其窗体布局结构简单规整。区别于其他窗体创建方法的是,自动窗体创建时,需先选定表对象或查询对象,而不是在窗体对象的窗口下启动向导或进入窗体设计视图。 27 2(使用“自动创建窗体” 利用Access提供的“自动创建窗体”向导,可以创建3种形式的数据操作窗体: • 纵栏式窗体 • 表格式窗体 • 数据表窗体 4.2.2 使用向导创建窗体 使用“自动窗体”方便快捷,但是内容和形式都受到限制,不能满足更为复杂的要求。使用“窗体向导”就可以更灵活、全面地控制数据来源和窗体格式,因为“窗体向导”能从多个表或查询中获取数据。 1(创建单一数据源窗体 在“窗体”对象窗口中,双击“使用向导创建窗体”,或从“新建窗体”对话框中选择“窗体向导”选项,弹出“窗体向导”第一个对话框。 2(创建涉及多个数据源的窗体 使用向导创建窗体更重要的应用是创建涉及多个数据源的数据维护窗体,也称此类窗体为主/子窗体。如果这些不同数据源之间的数据存在关联,那么就可以创建带有子窗体的窗体。 4.2.3 创建图表窗体 1(数据透视表 数据透视表是一种特殊的表,用于从数据源的选定字段中分类汇总信息 。数据透视表的两个主要元素是“轴”和“字段列表”。 (1)轴是数据透视表窗口中的一个区域,它可能包含一个或多个字段的数据。在用户界面中,因为可以向轴中拖放字段,所以它们也被称为“拖放区域”。数据透视表有4个主要轴,每个轴都有不同的作用。4个主要轴分别为“行字段”、“列字段”、“筛选字段”和“汇总或明细字段”。 (2)字段列表的功能与查询或窗体中使用的字段列表的功能很相似。它根据窗体的“数据来源”(Record Source)属性来显示可供数据透视表使用的字段。 2(数据透视图 数据透视图是一种交互式的图表,功能与数据透视表类似,只不过以图形化的形式来表现数据。数据透视图能较为直观地反映数据之间的关系。 3(创建图表窗体 使用图表窗体能够更直观的显示表和查询中的数据。可以使用“图表向导”创建图表窗体。 4.3 窗体的设计 在创建窗体的各种方法中,更多的时候是使用窗体设计视图来创建窗体,这种方法更直观、更灵活。创建何种窗体依赖于用户实际需求。在设计视图下创建窗体时,用户可以完全控制窗体的布局和外观,准确地把控件放在合适的位置,设置它们的格式直到达到满意的效果。 4.3.1 窗体设计视图 1(窗体的组成和结构 窗体设计视图是设计窗体的窗口,它是由5个节组成,分别是主体、窗体页眉、页面页眉、页面页脚和视图页脚。 2(工具栏(见书本P123) 3(工具箱 (见书本P124) 28 工具箱是窗体设计时最重要的应用,通过工具箱可以向窗体添加各种控件。控件是窗体中的对象,它在窗体中起着显示数据、执行操作以及修饰窗体的作用。 4(字段列表 通常窗体都是基于某一个表或查询建立起来的,因此窗体内控件显示的是表或查询中的字段值。在创建窗体过程中当需要某一字段时,单击工具栏中的“字段列表”按钮 ,即可显示“字段列表”窗口。例如,要在窗体内创建一个控件来显示字段列表中的某一文本型字段的数据时,只需将该字段拖到窗体内,窗体便自动创建一个文本框控件与此字段关联。 4.3.2 常用控件的功能 控件是窗体上用于显示数据、执行操作、装饰窗体的对象。在窗体中添加的每一个对象都是控件。Access包含的控件有:标签、文本框、选项组、切换按钮、选项按钮、复选按钮、组合框、列表框、命令按钮、图像、非绑定对象框、绑定对象框、分页符、选项卡控件、子窗体,子报表、直线和矩形等。 控件的类型可以分为:绑定型、未绑定型与计算型3种。绑定型控件主要用于显示、输入、更新数据库中的字段;未绑定型控件没有数据源,可以显示信息、线条、矩形或图像;计算型控件用表达式作数据源,表达式可以利用窗体或报表所引用的表或查询字段中的数据,也可以是窗体或报表上的其他控件中的数据。 4.3.3 常用控件的使用(详见书本P127) 在窗体“设计”视图中,用户可以直接将一个或多个字段拖曳到主体节区域中,Access可以自动地为字段结合适当的控件或结合用户指定的控件。结合适当的控件的操作方法是:单击窗体设计工具栏中的“字段列表”按钮 ,Access则显示窗体数据源的字段列表,然后从字段列表中拖曳某一个字段到主体节区域中。创建控件的方式取决于是要创建结合控件、非结合控件、还是计算控件。 4.3.4 窗体和控件的属性 在Access中,属性决定表,查询,字段、窗体及报表的特征。窗体和窗体上控件都有自己的一系列属性,这些属性决定了控件的外观、它所包含的数据,以及对鼠标或键盘事件的响应。 在属性表中,单击要设置的属性,在属性框中输入一个设置值或表达式可以设置该属性。如果属性框中显示有箭头,也可以单击该箭头,从列表中选择一个数值。如果属性框的旁边显示“生成器”按钮,单击该按钮可以显示一个生成器或显示一个可以选择生成器的对话框,通过生成器可以设置对话框。 窗体的格式属性包括默认视图、滚动条、记录选定器、浏览按钮、分隔线、自动居中、控制框、最大化/最小化按钮、关闭按钮、边框样式等。这些属性都可以在窗体的属性对话框中设置。 在窗体设计视图下双击窗体选择器按钮,可打开窗体的属性对话框。 1(应用条件格式 条件格式允许用户编辑基于输入值的字段格式 。 2(为窗体添加状态栏 要添加状态栏,只需选中要添加帮助的字段控件,在属性对话框的“其他”选项卡中的“状态栏文字”属性中输入帮助信息。保存所作的操做后,在窗体视图下当焦点落在指定控件上时,状态栏中就会显示出帮助信息。 3(使用背景位图 29 在使用背景位图时,应设置窗体有关图片的相关属性 。 4.4 格式化窗体 4.4.1 使用自动套用格式 在使用向导创建窗体时,用户可以从系统提供的固定样式中选择窗体格式,这些样式就是窗体的自动套用格式。这与Office的其他组件中的自动套用格式功能一样,把所有的格式属性的设定全部完成。 4.4.2 使用条件格式 除了可以利用自动套用格式对话框对窗体进行美化,还可以根据需要对窗体的格式、窗体的显示元素等进行美化设置。 4.4.3 添加当前日期和时间 如果用户希望在窗体中添加当前日期和时间,操作步骤为: (1)在“数据库”窗口中单击“窗体”对象。 (2)单击要选择的窗体,单击“设计”按钮 。 (3)单击“插入”菜单的“日期和时间”命令,显示“日期与时间”对话框。 (4)如插入日期和时间,则在对话框中选择“包含日期”和“包含时间”复选框。 (5)在选择了某一项后,再选择日期和时间格式,然后单击“确定”按钮即可。 5.4.4 对齐窗体中的控件 1(改变控件大小和控件定位 可以在控件的属性对话框中修改宽度和高度属性,也可在设计视图下选中控件后,用鼠标拖曳控件边框上的控制点来改变控件尺寸。 控件的精确定位可以在属性对话框中设置,也可以用鼠标完成。方法是保持控件的选中状态,按住Ctrl键不放,然后按下方向箭头移动控件直到正确的位置。 2(将多个控件设置为相同尺寸 操作步骤如下: (1)按住Shift键连续单击要设置的多个控件。 (2)选择“格式”?“大小”?“至最短”命令。 3(将多个控件对齐 操作步骤如下: (1)选中需要对齐的控件。 (2)选择“格式”?“对齐”?“靠左”或“靠右”命令,这样保证了控件之间垂直方向对齐,如果选择“靠上”或“靠下命令”,则保证水平对齐。 在水平对齐或垂直对齐的基础上,可以进一步设定等间距。假设已经设定了多个控件垂直方向的对齐,操作步骤如下: (1)选中需要对齐的控件 (2)选择“格式”?“垂直间距”?“相同”命令。 第5章 报表 5.1 报表简介 5.,., 报表的基本概念 报表是Access数据库中的一个对象,它根据指定的规则打印输出格式化的数据信息。报表的功能包括呈现格式化的数据;分组组织数据,进行数据汇总;报表之中包含子报表及图表;打印输出标签、发票、订单和信封等多种样式;可以进行计数、求平均、求和等统计计算;在报表中嵌入图像或图片来丰富数据显示的内容。 30 Access的报表操作提供了3种视图:“设计”视图、“打印预览”视图和“版面预览”视图。“设计”视图用于创建和编辑报表的结构;“打印预览”视图用于查看报表的页面数据输出形态;“版面预览”视图用于查看报表版面设置。 报表由以下几部分组成: 报表页眉:在报表的开始处,用来显示报表的标题、图形或说明性文字,每份报表只有一个报表页眉。 页面页眉:用来显示报表中的字段名或对记录的分组名称,报表的每一页只有一个页面页眉。 主体:打印表或查询中的记录数据,是报表显示数据的主要区域。 页面页脚:打印在每页的底部,用来显示本页的汇总说明,报表只有一个页面页脚。 报表页脚:用来显示整份报表的汇总说明,在所有记录都被处理后,只打印在报表的结束处。 5.,., 报表设计区 设计报表时,可以将各种类型的文本和字段控件放在报表“设计”窗体中的各个区域内,一次处理一条数据记录。 在报表的“设计”视图中,区段被表示成带状形式,称为“节”。 根据主体节内字段数据的显示位置,报表可划分为4种类型: , 纵栏式报表 , 表格式报表 , 图表报表 , 标签报表 1、纵栏式报表 纵栏式报表(一也称为窗体报表),一般是在一页中主体节内显示一条或多条记录,而且以垂直方式显示。纵栏式报表记录数据的字段标题信息与字段记录数据一起被安排在每页的主体节区内显示。 2、表格式报表 表格式报表是以整齐的行、列形式显示记录数据,通常一行显示一条记录、一页显示多行记录。表格式报表与纵栏式报表不同,其记录数据的字段标题信息不是被安排在每页的主体节区内显示,而是安排在页面页眉节区内显示。 3、图表报表 图表报表是指包含图表显示的报表类型。报表中使用图表,可以更直观地表示数据之间的关系。 4、标签报表 标签报表是一种特殊类型的报表在实际应用中,经常使用标签,可以通过标签报表来实现。 5.,创建报表 创建报表与创建窗体非常类似。报表和窗体都是使用控件来组织和显示数据的,因此,在第4章中介绍过的创建窗体的许多技巧也适用于创建报表。一旦创建了一个报表,就能够在报表中添加控件(包括创建计算型控件)、修改报表的样式等。 5.2.1 使用“自动报表”创建报表 方法一 : 在数据库窗口的表对象下,选定作为数据源的表,单击数据库工具栏上的“新对象”按纽(即环境右侧的向下三角形按钮),在下拉菜单中选择“自动报表”自动生成报表;或选择“报表”选项启动“新建报表”对话框。 方法二 :在数据库窗口的报表对象下,单击“新建”按钮,在弹出的“新建报表”对话框中选择“自动创建报表”。 31 5.2.2 使用“报表向导”创建报表 使用“报表向导”创建报表时,向导会提示用户选择数据源、字段、版面及所需的格式,根据用户的选择来创建报表。在向导提示的步骤中,用户可以从多个数据源中选择字段,可以设置数据的排序和分组,产生各种汇总数据,还可以生成带子报表的报表。 5.2.3 使用“图表向导”创建报表 图表报表是Access特有的一种图表格式的报表,它用图表的形式表现数据库中的数据,相对普通报表来说数据表现的形式更直观。 用Access提供的“图表向导”可以创建图表报表。“图表向导”的功能十分强大,它提供了多达20种的图表形式供用户选择。 应用“图表向导”只能处理单一数据源的数据,如果需要从多个数据源中获取数据,须先创建一个基于多个数据源的查询,再在“图表向导”中选择此查询作为数据源创建图表报表。 5.2.4 使用“标签向导”创建报表 标签是Access提供的一个非常实用的功能,利用它可将数据库中的数据加载到控件上,按照定义好的标签的格式打印标签。创建标签使用“标签向导”。“标签向导”的功能十分强大,不但支持标准型号的标签,也可以自定义尺寸制作标签。 5.2.5 使用“设计”视图创建报表 除了可以使用自动报表和向导功能创建报表以外,Access中还可以从“设计”视图开始创建一个新报表,主要操作过程有:创建空白报表并选择数据源;添加页眉页脚;布置控件显示数据、文本和各种统计信息;设置报表排序和分组属性;设置报表和控件外观格式、大小位置和对齐方式等。 5.3 编辑报表(详见书本P158) 5.4 报表排序和分组 5.4.1 记录排序 使用“报表向导”创建报表时,最多可以对4个字段进行排序。“报表向导”中设置字段排序,除有最多一次设置4个字节的限制外,排序依据还限制只能是字段,不能是表达式。实际上,一个报表最多可以安排10个字段或字段表达式进行排序。 5.4.2 记录分组 以记录的某个或多个特征(字段)分组,可使具有共同特征的相关记录组成一个集合,在显示或打印报表时,它们将集中在一起。对分组产生的每个集合,可以设置计算汇总等信息。一个报表最多可以对10个字段或表达式进行分组。 分组后的报表设计视图下,增加了“组页眉”和“组页脚”节。一般在组页眉中显示和输出用于分组的字段的值;组页脚用于添加计算型控件,实现对同组记录的数据汇总、计算和显示输出。不同组的数据可以显示或打印在同一页上,也可以通过设置,使之显示或打印在不同页上。 5.5 使用计算控件 在报表的实际应用中,除了显示和打印原始数据,还经常需要包含各种计算用做数据分析,得出某些结论性的结果。报表的高级应用包括对在报表中使用计算型控件,对报表进行排序、分组、统计汇总等。 5.5.1 报表添加计算控件 报表中也能加入计算型控件用来计算包含在报表中的数据。与窗体一样,通过向未绑定的文本框中输入表达式,可以在报表中创建计算型控件。表达式的格式与窗体中使用的表达式格式相同。 文本框是最常用来显示计算数值的控件,但是也可以使用任何有“控件来源”属性的控件。 5.5.2 报表统计计算 32 在Access中利用计算控件进行统计计算并输出结果操作主要有两种形式: 1主体节内添加计算控件 在主体节内添加计算控件对每条记录的若干字段值进行求和或求平均计算时,只要设置计算控件的控件源为不同字段的计算表达式即可。 2 组页眉,组页脚节区内或报表页眉,报表页脚区内添加计算字段 在组页眉,组页脚节区内或报表页眉,报表页脚节区内添加计算字段对某些字段的一组记录或所有字段进行求和或求平均计算时,这种形式的统计计算一般是对报表字段列的纵向记录数据进行统计,而且要使用Access提供的内置统计函数来完成相应的计算操作。 5.6 创建子报表 1、在已有的报表中创建子报表 2、已有报表添加到其他已有报表来创建子报表 3、链接主报表和子报表 在插入包含与主报表数据具有相关的信息的子报表时,子报表控件必须与主报表相链接。该链接可以确保在子报表中打印的记录与在主报表中打印的记录保持正确的对应关系。 在通过向导创建子报表,或者直接将报表或数据表由“数据库”窗口拖到其他报表中来创建子报表时,如果满足下列条件,Access将自动使子报表与主报表保持同步。 5.7 创建多列报表 创建多列报表的步骤如下: (1)创建报表。 (2)单击“文件”菜单中的“页面设置”命令。 (3)在“页面设置”对话框中,单击“列”选项卡。 (4)在“网格设置”标题下的“列数”编辑框中键入每一页所需的列数。 (5)在“行间距”对话框中,键入主体节中每个记录之间所需的垂直距离。 (6)在“列间距”对话框中,键入各列之间所需的距离: (7)在“列尺寸”标题下的“宽度”编辑框中键入所需的列宽,例如,3英寸。在“高度”编辑框中键入所需的高度值,即可设置主体节的高度,或者在“设计”视图中直接调整节的高度。 (8)在“列布局”标题下单击“先列后行”或“先行后列”选项。 (9)单击“页”选项卡。 (10)在“打印方向”标题下单击“纵向”或“横向”选项。 (11)最后单击“确定”按钮。 5.8 设计复杂的报表 5.8.1 报表属性 用户可以单击工具条中的“属性”按钮或单击“视图”菜单中“属性”命令显示报表属性对话框。“属性”对话框内常用的属性为:记录源、打开、关闭、网络线X坐标、网络线Y坐标、打印版式、页面页眉、页面页脚、记录锁定、宽度、帮助文件和帮助上下文ID等。 5.8.2 节属性 节“属性”对话框内常用的属性为:强制分页、新行或新列、保持同页、可见性、可以扩大、可以缩小、格式化和打印等。 第6章 数据访问页 6.1 数据访问页的基本概念 6.1.1 数据访问页的作用 数据访问页是一个能够动态显示、添加、删除以及修改记录内容的特殊网页。用户既可以 33 在Internet和Intranet上使用数据访问页,在网络上发布数据库信息,又可以通过电子邮件发送数据访问页。 用户可以根据需要设计:交互式报表 、数据输入、数据分析 等不同用途的数据访问页。 6.1.2 数据访问页的视图 数据访问页有2种视图方式,分别是设计视图和页面视图。 (1)设计视图是创建与设计数据访问页的一个可视化的集成界面。 (2)页面视图是查看所生成的数据访问页的一种视图方式。 6.1.3 数据访问页的调用方式 数据访问页是保存在Access数据库或Access项目文件外的独立文件。其调用方式,除了可以在Access数据库中打开,还可以利用Internet Explore浏览器打开。 1(在Access中打开数据访问页 在Access中打开数据访问页并不是为了应用,而是为了测试。打开的方法是:在Access“数据库”窗口的“页”对象中,选中要打开的数据访问页,然后单击窗口工具栏“打开”按钮,或直接双击要打开的数据访问页。 2(在IE浏览器中打开数据访问页 利用Internet Explore浏览器打开数据访问页的方法是:在存放数据访问页的文件夹下,双击数据访问页文件(.htm);或先打开Internet Explore浏览器,然后在其地址栏中输入数据访问页文件路径。 6.1.4 数据访问页的数据来源 1(Access数据库或SQL Server数据库 创建数据访问页应为其绑定一个Access数据库或SQL Server数据库。 2(其他数据来源 数据访问页还可以包含其他数据源的数据。例如,Excel工作表、非Access或SQL Server数据库中的数据透视表、电子表格或图表。 6.2 创建数据访问页 6.2.1 自动创建数据访问页 自动创建数据访问页,即使用“自动创建数据页”向导来创建数据访问页,是最简单最快捷的创建方法。使用这种向导可以快速创建基于单一数据源(表或查询)中所有字段(存储图片的字段除外)和记录的数据访问页。数据访问页格式由Access系统自动规定,用户不需要做任何设置。采用这种方式只能针对一个表建立纵栏式数据页。 6.2.2 使用向导创建页 使用Access提供的“数据页向导”可通过对话方式,让用户在创建过程中,根据自己的需要选择多个表或查询中的字段,选择按一个或多个字段升序或降序排列记录,也可以选择按某个字段来分组记录,然后由系统根据用户要求完成数据访问页的创建。 6.2.3 使用设计视图创建数据访问页 在创建数据访问页时,可以使用类似报表的设计视图修改已有的数据访问页,或直接在设计视图中设计新的数据访问页。使用页的设计视图建立数据访问页的操作方法和过程类似于使用报表设计视图。 6.3 编辑数据访问页 6.3.1 添加标签 在数据访问页上使用标签控件的目的是用其来显示说明文本,如标题、字段内容说明等。标签并不显示字段或表达式数值,它是一种未绑定型控件,记录移动时,它们的值都不会改变。 在数据访问页中,“标签”控件的使用及格式属性设置,与窗体中一致。 34 6.3.2 添加命令按钮 在生成的数据访问页中,虽然记录导航工具栏可以为用户提供方便的数据浏览、编辑、删除等操作工具,但当不需要进行这些操作时,记录导航栏上的工具按钮就没有用途,此时可以删除导航工具栏,添加需要的命令按钮。 在数据访问页中,“命令按钮”控件的使用及格式属性设置,与窗体中一致。 6.3.3 插入图像编辑 单击“工具箱”中的“图像”控件,在数据访问页中,在需要插入图片的位置单击,拖曳鼠标指针直至所需的大小。然后松开鼠标左键,在弹出的对话框中选择要插入的图像,再单击“确定”按钮即可。 6.3.4 插入超链接控件 在数据访问页中,超级链接也是以控件的形式出现。要插入一个超级链接,可以单击控件工具箱中的“超级链接”按钮,然后像插入其他控件那样在数据访问页中拖曳鼠标画出一个矩形,然后松开鼠标左键,系统将弹出“插入超链接”对话框,在该对话框中,可以选择链接到一个原有的Web页文件,或者链接到本数据库中的某个数据访问页,还可以链接到一个新建的页或链接到一个电子邮件地址。选择需要链接的目标,并在对话框上部的“要显示的文字”文本框中输入超级链接的显示内容,然后单击“确定”按钮。 6.3.5 office组件 在数据访问页中添加Office组件,可以简化数据分析的操作,让数据间的互动关系以可视的方式显示出来。Office组件包括Office电子表格控件、Office图表控件和Office数据透视表控件等。 6.3.6 设置滚动文字 1(设置绑定型滚动文字控件 单击工具箱中的“滚动文字”按钮,放入数据访问页的合适位置上。然后,单击页设计工具栏中的“字段列表”按钮,打开“字段列表”。从“字段列表”中,将选中的字段拖动到数据访问页中的滚动文字控件上,其定位方法是,将图标的左上角放置到滚动文字控件左上角所需的位置。 2(设置未绑定型滚动文字控件 单击工具箱中的“滚动文字”按钮,然后在数据访问页中准备放置滚动文字的位置单击。Access将创建默认尺寸的滚动文字控件。如果需要创建特定大小的滚动文字控件,则应在数据访问页上拖放控件,直到获取所需的尺寸大小为止。在滚动文字控件中输入相关文本及格式,就形成了该滚动文字控件显示的信息。 3(设置滚动文字的运动 滚动文字的默认运动方式为从左到右的运动。如果需要设定与之不同的运动方式,可通过设置滚动文字控件的Behavior属性来实现。 (1)将滚动文字控件的Behavior属性值设定为Scroll,文字在控件中连续滚动; (2)将滚动文字控件的Behavior属性值设定为Slide,文字从开始滑动到控件的另一边,然后保持在屏幕上; (3)将滚动文字控件的Behavior属性值设定为Alternate,文字从开始到控件的另一边来回滚动,并且总是保持在屏幕上。 4(更改滚动文字重复次数 通过设置滚动文字控件的Loop属性来实现。 (1)将滚动文字控件的Loop属性值设定为?1,文字连续滚动显示; (2)将滚动文字控件的Loop属性值设定为一个大于零的整数,文字滚动指定的次数。例如,如果将Loop属性值设置为10,文字将滚动10次,然后停止不动。 35 5(更改文字滚动的速度 滚动文字控件的True Speed属性设置为True时,允许通过设置Scroll Delay属性值和Scroll Amount属性值来控制控件中文字的运动速度。 (1)Scroll Delay属性值用来控制滚动文字每个重复动作之间延迟的毫秒数; (2)Scroll Amount属性值用来控制滚动的文本在一定时间内(该时间在“滚动延迟”属性框中指定)移动的像素数。 6(更改滚动文字移动的方向 滚动文字控件的Direction属性值用来控制滚动文字控件中文字的运动方向。 (1)Direction属性值设置为Left,滚动文字在控件中从左到右移动; (2)Direction属性值设置为Right,滚动文字在控件中从右到左移动; (3)Direction属性值设置为Down,滚动文字在控件中从下到上移动; (4)Direction属性值设置Up,滚动文字在控件中从上到下移动。 6.3.7 设置背景 1(设置背景颜色 设置背景颜色的方法是:在“设计视图”中打开设置的数据访问页,然后选择“格式”?“背景”?“颜色”命令,从系统打开的颜色选择界面中,单击所需颜色,该颜色将成为数据访问页的背景颜色。 2(设置背景图片 设置背景图片的方法是:在“设计视图”中打开设置的数据访问页,然后选择“格式”?“背景”?“图片”命令,在系统打开的“插入图片”对话框中,查找并选择作为背景的图片文件,选择的图片将成为数据访问页的背景图片。 3(设置背景声音 设置背景声音的方法是:在“设计视图”中打开设置的数据访问页,然后选择“格式”?“背景”?“声音”命令,在系统打开的“插入声音文件”对话框中,查找并选择作为背景声音的文件。以后打开该数据访问页时,将自动播放该背景音乐。 这里需要说明两点:第一,在使用自定义背景颜色、图片或声音之前,必须删除已经应用的主题;第二,在数据访问页中自定义“背景颜色”或“图片”后,有些已设计的控件,如“标签”控件,没有得到显示,可以使用“格式”?“置于顶层”命令,把“标签”控件置于顶层。 第7章 宏 7.1 宏的功能 7.1.1 宏的基本概念 宏是指一个或多个操作的集合,其中每个操作实现特定的功能,例如打开某个窗体或打印某个报表。宏可以使某些普通的任务自动完成。在Access中,共定义了近50种这样的基本操作,也叫宏命令。 Access中宏可以分为:操作序列宏、宏组合含有条件操作的条件宏。 宏组是共同存储在一个宏名下的相关宏的集合。 对于一些复杂的操作,还可以使用条件宏,即在执行宏的过程中按照一定的逻辑条件来决定执行哪些宏命令。 使用宏的好处: 创建的过程简单。不需编程,不需记住各种复杂的语法,即可实现某些特定的自动处理功能。 7.1.2 设置宏操作 36 Access中提供了一系列基本的宏操作,每个操作都有自己的参数,可以按需要进行设置。常见宏操作和功能参见附录D 7.2 建立宏 7.2.1 创建操作序列宏 (1)在“宏”窗口的“操作”列单击第一个空白行。假如要在两个操作行之间插入一个操作,单击插入行下面的操作行的行选定器,然后在工具栏上单击“插入行”按钮。 (2)在“操作”列,请单击箭头显示操作列表。 (3)选择要使用的操作。 (4)可以在“操作”列右侧的“备注”栏中为操作键入相应的说明,说明是可选的。 (5)假如需要,在窗口的下部指定参数。 宏窗口的组成: , “操作”列 , “宏名”列 , “条件”列 , “注释”列 , “操作参数”部分 , “说明”部分 7.2.2 创建宏组 , 宏组由若干彼此相关的宏组成 , 宏组中的每个宏有自己的宏名,执行宏组中的宏时需要在宏名前加宏组名,形式为: 宏组名(宏名。 , 建立宏组的目的是方便管理 7.2.3 条件操作宏 条件宏是设置了宏命令的执行条件的宏。 运行宏时先测试条件,如果条件成立,则执行对应的宏命令。否则,不执行。 关于创建条件宏: 操作时需要先执行菜单命令“视图” ?“条件”,调出“条件”列。 , 其中条件是任何计算结果为 True/False 或“是/否”的表达式 例如: [Forms]![按性别浏览学生].[frm性别]=1 7.2.4 设置宏的操作参数 在宏中添加了某个操作之后,可以在“宏”窗口的下部设置这个操作的参数。 关于设置操作参数的一些提示如下: (1)可以在参数框中输入数值,也可以从列表中选择某个设置。 (2)假如通过从“数据库”窗口拖曳数据库对象的方式来向宏中添加操作,系统会设置适当的参数。 (3)假如操作中有调用数据库对象名的参数,则可以将对象从“数据库”窗口中拖曳到参数框,从而设置参数及其对应的对象类型参数。 (4)可以用前面加等号的表达式来设置许多操作参数。 7.2.5 运行宏 运行宏时,系统按照宏中宏命令的排列顺序由上向下依次执行各个宏命令。 1(直接运行宏 (1)从“宏”窗口中运行宏,请单击工具栏上的“运行”按钮 。 (2)从“数据库”窗口中运行宏,请单击“宏” ,然后双击相应的宏名。 (3)从 “工具”菜单上选择“宏”,单击“运行宏”命令,再选择选择或输入要运行的宏。 37 (4)使用Docomd对象的RunMacro方法,在VBA代码过程中运行宏。 2(运行宏组中的宏 (1)将宏指定为窗体或报表的事件属性设置,或指定为RunMacro操作的宏名(Macro Name)参数。引用宏组的格式:宏组名.宏名 (2)从“工具”菜单中选择“宏”选项,单击“运行宏”命令,再选择或输入要运行的宏组中的宏。 (3)使用Docomd对象的RunMacro方法,在VBA代码过程中运行宏。 3(通过窗体、报表或控件的事件运行宏或事件过程 Access可以对窗体、报表或控件中的多种类型事件做出响应,包括鼠标单击、数据更改以及窗体或报表打开或关闭等。 将窗体、报表或控件的适当事件属性设为宏的名称;如果使用的是事件过程,可以设为“事件过程”。 7.2.6 宏的调试 在Access系统中提供了”单步“执行的宏调试工具。使用单步执行宏,可以观察宏的流程和每个操作的结果,并且可以排除导致错误或产生非预期结果的操作。 调试的步骤: (1)打开相应的宏。 (2)在工具栏土单击“单步”按钮。 (3)在工具栏上单击“运行”按钮。 (4)单击“单步”按钮,以执行显示在“单步执行宏”对话框中的操作。 (5)单击“暂停”按钮,以停止宏的运行并关闭对话框。 (6)单击“继续”以关闭单步执行,并执行宏的未完成部分。 如果要在宏运行过程中暂停宏的执行,然后再以单步运行宏,请按[Ctrl,Break]快捷键 7.3 透过事件触发宏 7.3.1 事件的概念 事件是在数据库中执行的一种特殊操作,是对象所能辨识和检测的动作,当发生于某一个对象上时,其对应的事件就会被触发。 事件是预先定义好的活动,也就是说一个对象拥有哪些事件是由系统本身定义的,至于事件被引发后要执行什么内容,则由用户为此事件编写的宏或事件过程决定的。事件过程是为响应由用户或程序代码引发的事件或系统触发的事件而运行的过程。 宏运行的前提是有触发宏的事件发生。 7.3.2 通过事件触发宏 常用的触发宏的操作有: (1)将宏和某个窗体、报表相连。 当其中的数据被修改的前后,或者该窗体失去/获得焦点,或者在窗体中执行了鼠标或键盘操作,都可以设置使其触发运行宏。 (2)用菜单或工具栏上的某个命令按钮触发宏。 (3)将宏和窗体、报表中的某个控件相连。 当单击了该控件,或其中的数据发生改变,或该控件失去/获得焦点时运行宏。 (4)用快捷键触发执行宏。 (5)制作autoexec宏。使得打开数据库时自动运行宏。 附:常见操作: 1打开或关闭数据库对象 OpenForm命令用于打开窗体。 38 OpenReport命令用于打开报表。 OpenQuerv命令用于打开查询。 Close命令用于关闭数据库对象。 2运行和控制流程 RunSQL命令用于执行指定的SQL语句。 RunApp命令用于执行指定的外部应用程序。 Quit命令用于退出Access。 3设置值 SetValue命令用于设置属性值。 4刷新、查找或定位记录 Requery命令用于实施指定控件重新查询及刷新控件数据。 FindRecord命令用于查找满足指定条件的第一条记录。 FindNext命令用于查找满足指定条件的下一条记录。 GoToRecord命令用于指定当前记录。 5控制显示 Maxmize命令用于最大化激活窗口。 Minmize命令用于最小化激活窗口。 Restore命令用于将最大化或最小化窗口恢复至原始大小。 6通知或警告用户 Beep命令用于使计算机发出“嘟嘟”声。 MsgBox命令用于显示消息框。 SetWarnings命令用于关闭或打开系统消息。 7导入和导出教据 TransferDatabase命令用于从其他数据库导入和导出数据。 TransferText命令用于从文本文件导入导出数据。 第8章 模块与VBA编程基础 8.1 模块的基本概念 模块是access系统中的一个重要对象,它以VBA( Visual Basic for Applications )为基础编写,以函数过程(Function)和子过程 (Sub)为单元的集合方式存储。 在access中,模块分为类模块和标准模块两种类型。 8.1.1 类模块 窗体和报表模块都是类模块,而且它们各自与某一窗体或报表相关联。窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应,例如:用鼠标单击某个命令按钮。 为窗体或报表创建第一个事件过程时,Microsoft Access将自动创建与之关联的窗体或报表模块。如果要查看窗体或报表的模块,请单击窗体或报表“设计”视图中工具栏上的“代码”命令。 窗体或报表模块中的过程可以调用已经添加到标准模块中的过程。 窗体和报表模块具有局部特性,其作用范围局限在所属窗体和报表内部,而生命周期则是伴随着窗体和报表的打开而开始,关闭而结束。 8.1.2 标准模块 39 标准模块一般用于存放供其他access数据库对象使用的公共过程。在系统中可以通过创建新的模块对象而进入其代码设计环境。 标准模块通常安排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。 标准模块中的公共变量和公共过程具有局部特性,其作用范围在整个应用程序里,而生命周期则是伴随着应用程序的运行而开始,关闭而结束。 8.1.3 将宏转换为模块 在Access系统中,根据需要可以将设计好的宏对象转换为模块代码的形式。 8.2 创建模块 过程是模块的组成单元,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。 8.2.1 在模块中加入过程 模块是装着VBA代码的容器。在窗体和报表的设计视图中,单击工具栏“代码”按钮或者创建窗体和报表的事件过程可以加入类模块的设计和编辑窗口。单击数据库窗体中的“模块”对象标签,然后单击“新建”按钮即可进入标准模块的设计和编辑窗口。 一个模块包含一个声明区域,且可以包含一个或多个子过程或函数过程。 1、Sub过程(子过程) 执行一系列操作,无返回值。定义格式如下: Sub 过程名 [程序代码] End Sub 可以引用过程名来调用该子过程。此外,VBA提供了一个关键字Call,可显示调用一个子过程。 2、Function过程(函数过程) 执行一系列操作,有返回值。定义格式如下: Function 过程名 As(返回值)类型 [程序代码] End Function 函数过程不能使用Call来调用执行,需要直接引用函数过程名,并直接在函数过程名后的括号所辨别。 8.2.2 在模块中执行宏 在模块的过程定义中,使用DoCmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为: DoCmd(RunMacro MacroName [,RepeatCount][,RepeatExpression] 其中MacroName表示当前数据库中宏的有效名称;RepeatCount为可选项,用于计算宏运行次数的整数值;RepeatExpression也是可选项,为数组表达式,在每一次运行宏时进行计算,结果为False(0)时,停止运行宏。 8.3 VBA程序设计基础 VBA是Microsoft Office内置的编程语言,是根据Visual Basic简化的宏语言,其基本语法、词法与Visual Basic基本相同,因而具有简单、易学的特点。 与Visual Basic不同的是,VBA不是一个独立的开发工具,一般被嵌入到像Word、Excel、Access这样的软件中,与其配套使用,从而实现在其中的程序开发功能。 8.3.1 面向对象程序设计的概念 1(对象和集合 40 对象:在采用面向对象程序设计方法的程序中,程序处理的目标被抽象成了一个个对象,每个对象具有各自的属性、方法和事件。 类:是对一类相似对象的定义和描述。因此类可看做是对象的模板,每个对象由类来定义。 集合:是由一组对象组成的集合,这些对象的类型可以相同,也可以不同。 Access有几十个对象,其中包括对象和对象集合。所有对象和对象集合按层次结构组织,处在最上层的是Application对象,即Access应用程序,其他对象或对象集合都处在它的下层或更下层。 2(属性和方法 对象的特征用属性和方法描述。 属性:用来表示对象的状态,如窗体的Name(名称)属性、Caption(标题)属性等。 方法:用来描述对象的行为,如窗体有Refresh方法,Debug对象有Print方法等。 引用对象的属性或方法时应该在属性名或方法名前加对象名,并用对象引用符“.”连接,即对象.属性或对象.行为 例如 DoCmd.OpenReport “教师信息“ 是指利用DoCmd对象的OpenReport方法打开报表“教师信息” 3(事件和事件过程 事件:是对象可以识别的动作,通常由系统预先定义 事件过程:对象在识别了所发生的事件后执行的程序 例如,下面的事件过程描述了单击按钮之后所发生的一系列动作。 Private Sub Command1_Click() Me!Label1.Caption = “合肥领航教育" Me!Text1 = "" End Sub 8.3.2 VBA编程环境 一、 Visual Basic 编辑器(详见书本P202) Visual Basic 编辑器VBE(Visual Basic Editor)是编辑VBA代码时使用的界面。 VBE窗口主要由标准工具栏、工具窗口、属性窗口、代码窗口和立即窗口等组成。 二、进入VBA编程环境 Access模块分成类模块和标准模块两种。 对于类模块,可以直接定位到窗体或报表,然后单击工具栏上的“代码”按钮进入;或定位到窗体、报表和控件上通过指定对象事件处理过程进入。其方法有两种: (1)右键单击控件对象,单击快捷菜单上的“事件生成器命令”,打开“事件生成器”对话框,选择其中的“代码生成器”,单击 “确定”按钮即可进入; (2)单击属性窗口的“事件”选项卡,选中某个事件直接单击属性右侧的“…”按钮,打开“事件生成器”对话框,选择其中的“代码生成器”,单击“确定”按钮即可进入。 对于标准模块,有3种方法进入: (1)对于已存在的标准模块,只需从数据库窗体对象列表上选择“模块”,双击要查看的模块对象即可进入; (2)要创建新的标准模块,需要从数据库窗体对象列表上选择“模块”,单击工具栏上的“新建”按钮即可进入; (3)在数据库对象窗体中,选择“工具”菜单里“宏”子菜单的“Visual Basic编辑器”选项即可进入。 三、VBE环境中编写VBA代码 VBA代码是由语句组成的,一条语句就是一行代码。例如 41 intCount=3 ?将3赋值给变量intCount Debug. Print intCount ?在立即窗口打印变量intCount的值3 Access的VBE编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程,再从该对象过程列表选项中选择某个事件名称,系统会自动生成相应的事件过程模块,用户添加代码即可。 双击工程窗口中的任何类或对象都可以在代码窗口中打开相应代码进行编辑处理。 四、程序语句书写原则(详见书本P206) 8.3.3 数据类型和数据库对象 一、标准数据类型 (1)布尔型数据 布尔型数据只有两个值True或False。布尔型数据转换为其他类型数据时,Ture转换为-1,False转换为0;其他类型数据转换为布尔型数据时,0转换为False,其他类型转换为Ture。 (2)日期型数据 “日期/时间”类型数据必须前后用“#”号封住。 如#2007-1-1#、#2002-5-4 14:30:00 PM#。 (3)变体类型数据 变体类型数据是特殊的数据类型。VBA中规定,如果没有显示声明或使用符号来定义变量的数据类型,则默认为变体类型。 二、用户定义的数据类型 (详见书本P208) 应用过程中可以建立包含一个或多个VBA标准数据类型的数据类型,这就是用户定义数据类型。它不仅包含VBA的标准数据类型,还包含其他用户定义的数据类型。 用户定义数据类型可以在Type ... End Type关键字间定义,定义格式如下: Type[数据类型名] ,域名,As,数据类型, ,域名,As,数据类型, … End Type 三、数据库对象 (详见书本P208) 8.3.4 变量与常量 变量是程序运行过程中值会发生变化的数据。如同一间旅馆客房,昨天可住旅客A,今天住旅客B,明天又有可能被闲置。变量的命名规则如下: (1)以字母或汉字开头,后可跟字母、数字或下划线。 (2)变量名最长为255个字符。 (3)不区分变量名的大小写,不能使用关键字。 (4)字符之间必须并排书写,不能出现上下标。 以下是合法的变量名: a,x, x3, BOOK_1,sum5 以下是非法的变量名: 3s s*T -3x bowy-1 if 常量是在程序中可以直接引用的实际值,其值在程序运行过程中不变。在VBA中,常量可以分为3种:直接常量、符号常量和系统常量 一、变量的声明 VBA变量声明有两种方法。 42 1、显式声明 VBA中定义变量的格式为: Dim 变量名 [AS 类型] 格式中Dim是一个VBA命令,此处用于定义变量;As是关键字,此处用于指定变量的数据类型。 例如:Dim bAge as Integer ? bAge为整型变量 2、隐含声明 VBA允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。例如: Dim m,n, ?m,n为变体Variant变量 NewVar=528 ? NewVar为Variant类型变量,其值为258。 二、强制声明 在默认情况下,VBA允许在代码中使用未声明的变量,如果在模块设计窗口的顶部“通用—声明”区域中,加入语句: Option Explicit 强制要求所有变量必须定义才能使用。这种方法只能为当前模块设置了自动变量声明功能,如果想为所有模块都启用此功能,可以单击菜单命令“工具”下“选项”对话框中,选中“要求变量声明”选项即可。 三(变量的作用域 (1)局部范围(Local) 变量定义在模块的过程内部,过程代码执行时才可见。在子过程或函数过程中定义的或直接使用的变量作用范围都是局部的。在子过程或函数内部使用Dim、Static…As关键字说明的变量就是局部范围的。 (2)模块范围(Module) 变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程或函数过程中可见。在模块的通用说明区,用Dim、Static、Private…As关键字定义的变量作用域都是模块范围。 (3)全局范围(Public) 变量定义在标准模块的所有过程之外的起始位置,运行时在类模块和标准模块的所有子过程或函数过程中都可见。在标准模块的变量定义区域,用Public…As关键字说明的变量就属于全局的范围。 变量的持续时间(生命周期)是从变量定义语句所在的过程第一次运行,到程序代码执行完毕并将控制权交回调用它的过程为止的时间。 四(数据库对象变量 Access建立的数据库对象及其属性,均可被看成是VBA程序代码中的变量及其指定的值来加以引用。 例如,Access中窗体和报表对象的引用格式为: Forms ~窗体名称 ~控件名称 [.属性名称] 或 Reports ~报表名称 ~控件名称 [.属性名称] 关键字Forms或Reports分别表示窗体或报表对象集合。感叹号“!”分隔开对象名称和控件名称。“属性名称”部分缺省,则为控件基本属性。 如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。 五(数组 数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,使用数组必须先定义数组。通常用Dim语句来定义数组,定义 43 格式为: Dim 数组名([<下标下限>to]<下标上限>)[As <数据类型>] 缺省情况下,下标下限为0,数组元素从“数组名(0)”至“数组名(下标上限)”;如果使用to选项,则可以安排非0下限。 例如,dim score(10)as Integer 定义了11个整形数构成的数组,数组元素为score(0) 至score(10) 再如, dim score(1 to 10)as Integer 定义了10个元素的整型数组,数组元素为score(1)至 score(10) 注:(1)所有数组元素在内存连续存放 (2)根据下标区分数组元素 关于数组的定义,还有下面的几点说明: (1)定义数组时数组名的命名规则与变量名的命名规则相同。 (2)一般在定义数组时应给出数组的上界和下界。但也可以省略下界,<下界>缺省 为0。 例如,Dim a(10) As Single 默认情况下,数组a由11个元素组成。 若希望下标从1开始,可在模块的通用声明段使用Option Base语句声明。其使用格式为 Option Base 0|1 ' 后面的参数只能取 0 或 1 (3)<下界>和<上界>不能使用变量,必须是常量,常量可以是字面常量或符号常量,一般是整型常量。 (4)如果省略As子句,则数组的类型为Varient变体类型。 二维数组的定义 格式为: Dim 数组名([<下界>to]<上界>,[<下界>to]<上界>)[As <数据类型>] 例如,Dim c(1 To 3, 1 To 4)As Single c(1,1) c(1,2) c(1, 3) c(1,4) c(2,1) c(2,2) c(2, 3) c(2,4) c(3,1) c (3,2) c(3,3) c(3, 4) 六、变量标识命名法规 在编写VBA程序代码时,会用到大量的变量名称和不同的数据类型。对于控件对象,可以用VBA的Set关键字将每个命名的控件对象指定为一个变量名称。 目前,VB和VBA均推荐使用Hungarian符号法作为命名法则。该方法也被广泛用在C和C++等一些程序中。 Hungarian符号法使用一组代表数据类型的码。用小写字母作为变量名的前缀。 七(符号常量 如果程序中多处用到某个常量,将其定义成符号常量可增加代码的可读性,也便于维护。 符号常量用关键字Const来定义,格式如下: Const 符号常量名称=常量值 例如: Const PI as single=3.1415926 定义了一个符号常量PI,其值为3.1415926 若是在模块的声明区中定义符号常量,则建立一个所有模块都可以用的全局符号常量。一般是Const前加Global或Public关键字。 八(系统常量 这是一类特殊的符号常量,Access系统内部包含若干个启动时就建立的系统常量,有True、False、Yes、No、On、Off和Null等。在编码时可以直接使用。 44 例如: VBA类库中,vbRed代表红色,vbBlue代表蓝色。 这里开始的两个字母表示所在的类库 Access类库的常量以ac开始,如acForm等。 ADO类库的常量以ad开始,如adOpenKeyset。 8. 3.5 常用标准函数 (本节请详见书本P213) 在VBA中,除在模块创建中可以定义子过程与函数过程完成特定功能外,又提供了近百个内置的标准函数,可以方便完成许多操作。 标准函数一般用于表达式中,有的能和语句一样使用。其使用形式如下: 函数名(,参数1,,,参数2,[,参数3][,参数4][,参数5]…) 其中,函数名必不可少,函数的参数放在函数名后的圆括号中,参数可以是常量、变量或表达式,可以有一个或多个,少数函数为无参函数。 8.3.6 运算符和表达式 (详见书本P219) 在VBA编程语言中,提供了许多运算符来完成各种形式的运算和处理。根据运算不同,可以分成4种类型的运算符:算术运算符、关系运算符、逻辑运算符和连接运算符。 8.4 VBA流程控制语句 一个语句是能够完成某项操作的一条命令。VBA程序的功能就是由大量的语句串命令构成。 VBA程序语句按照其功能不同分成两大类型: (1)声明语句,用于给变量、常量或过程定义命名; (2)执行语句,用于执行赋值操作,调用过程,实现各种流程控制。 执行语句分为3种结构: (1)顺序结构,按照语句顺序顺次执行。 (2)条件结构,又称为选择结构,根据条件选择执行路径。 (3)循环结构,重复执行某一段程序语句。 8.4.1 赋值语句 赋值语句是最基本的语句。它的功能是给变量或对象的属性赋值。其格式为 <变量名>,<表达式> 或 <对象名.属性>,<表达式> 例如: Rate = 0.1 „给变量Rate赋值0.1 Me!Text1.Value = “欢迎来到领航教育 " “给控件的属性赋值 8.4.2 条件语句 1(If…Then 语句 例如: Debug.Print x 语句格式为 End If If <表达式> Then <语句块1> End If „输入一个数并在立即窗口输出其值 Dim x As Integer x = InputBox("请输入x的值:") If x Then 45 2(If…Then…Else 语句 语句格式为 If <表达式> Then <语句块1> Else <语句块2> End If 说明: (1)<表达式>可以是任何表达式,一般为关系表达式或布尔表达式。如果是其他表达式, 则非0认为是True,0认为是False。 (2)执行时,先判断表达式的值,为True则执行语句块1,否则执行语句块2。 例如:输入两个数并在立即窗口输出其中较大的数 Dim x As Integer, y As Integer x = InputBox("请输入x的值:") y = InputBox("请输入y的值:") If x > y Then Debug.Print x Else Debug.Print y End If 3(If…Then…ElseIf 语句 语句格式为 If <表达式1> Then <语句块1> ElseIf <表达式2>Then <语句块2> … [ElseIf <表达式n>Then <语句块n> Else <语句块 n+1> ] End If 运行时,从表达式1开始逐个测试条件,当找到第一个为True的条件时,即执行该条件后 所对应的语句块。 4(Select Case—End Select 语句 语句格式为 Select Case <变量或表达式> Case <表达式1> 语句块1 Case <表达式2> 语句块2 … [Case Else 语句块n+1] End Select 说明: (1)Select Case后的变量或表达式只能是数值型或字符型表达式。 (2)执行过程是先计算Select Case后的变量或表达式的值,然后从上至下逐个比较,决定执行哪一个语句块。如果有多个Case后的表达式列表与其相匹配,则只执行第一个Case后的语句块。 (3)语句中的各个表达式列表应与Select Case后的变量或表达式同类型。各个表达式列表可以采用下面的形式 , 表达式: a +5 , 用逗号分隔的一组枚举表达式: 2, 4, 6, 8 , 表达式1 To 表达式2 60 to 100 , Is 关系运算符表达式 Is < 60 5(条件函数 除了上述条件语句外,VBA还提供了3个函数来完成相应选择操作: (1)IIf函数: IIf(条件式,表达式1,表达式2)。 该函数根据“条件式”的值来决定函数返回值。 “条件式”值为真,函数返回“表达式1” 的值,“条件式”值为假,函数返回“表达式2” 的值。 (2)Switch函数: Switch(条件式1,表达式1[,条件式2,表达式2][,条件式3,表达式3]…[,条件式n,表达式n]) 该函数是分别根据“条件1”,“条件2”直至“条件n”的值来决定函数的返回值。 (3)Choose函数:Choose(索引式,选项1[,选项2]…[,选项n]) 该函数式根据“索引式”的值来返回选项列表中的某个值。 8.4.3 循环语句 循环控制结构也叫重复控制结构。特点是程序执行时,该语句中的一部分操作即循环体被重复执行多次。 循环语句可以实现重复执行一行或几行程序代码。VBA支持以下循环语句结构: (l)For…Next语句。 (2)Do…Loop语句。 (3)While…Wend语句。 1(For--Next循环语句 语句格式为 For <循环变量>,<初值> to <终值> [Step <步长>] <循环体> Exit For <语句块> Next <循环变量> 说明: (1)循环控制变量的类型必须是数值型。 (2)步长可以是正数,也可以是负数。如果步长为1,Step短语可以省略。 (3)根据初值、终值和步长,可以计算出循环的次数,因此For语句一般用于循环次数已知的情况。 (4)使用Exit For语句可以提前退出循环。 例 编程用For语句求1+2+3+…+10之和 Public Sub gc2() Dim s As Integer, i As Integer s=0 For i = 1 To 10 Step 1 s = s + i Next i Debug.Print s End Sub 2(Do While…Loop语句 形式如下: Do While <条件> 循环体 Exit Do 语句块 Loop 说明: (1)这里的条件可以是任何类型的表达式,非0为真,0为假。 (2)执行过程是:在每次循环开始时测试条件,对于Do While语句,如果条件成立,则 执行循环体的内容,然后回到Do Whlie处准备下一次循环;如果条件不成立,则退出循环。 (3)Exit Do语句的作用是提前终止循环。 例如 :下面的程序用Do While…Loop语句求1+2+3…+10之和。 Dim s As Integer, i As Integer s = 0 i = 1 Do While i <= 10 s = s + i i = i + 1 Loop Debug.Print s 3(Do Until…Loop语句 形式如下: Do Until <条件> 循环体 Exit Do 语句块 Loop 说明: (1)这里的条件可以是任何类型的表达式,非0为真,0为假。 (2)执行过程是:在每次循环开始时测试条件,对于Do Until语句,如果条件不成立,则 执行循环体的内容,然后回到Do Until处准备下一次循环;如果条件成立,则退出循环。 (3)Exit Do语句的作用是提前终止循环。 例如 :下面的程序用Do Until…Loop语句求1+2+3…+10之和。 Dim s As Integer, i As Integer s = 0 i = 1 Do Until i > 10 s = s + i i = i + 1 Loop Debug.Print s 4(Do—Loop While语句 格式如下: Do 循环体 Exit Do 语句块 Loop While<条件> 说明: 和Do While…Loop不同的是, Do—Loop While语句在每次循环结束时测试条件。因 此,二者的区别是如果一开始循环条件就不成立,则Do While…Loop中的循环体部分一 次也不执行,而Do—Loop While 中的循环体部分被执行一次。 5(Do—Loop Until语句 格式如下: Do 循环体 Exit Do 语句块 Loop Until<条件> 说明: 和Do Until…Loop不同的是, Do—Loop Until语句在每次循环结束时测试条件。因此, 二者的区别是如果一开始循环条件就不成立,则Do Until…Loop中的循环体部分一次也 不执行,而Do—Loop Until中的循环体部分被执行一次。 6(While---Wend语句 格式如下: While 条件式 循环体 Wend 说明: (1) While---Wend循环与 Do While …Loop结构类似,但不能在While---Wend循环中使用 Exit Do语句。 (2)在VBA中,尽量不要使用While---Wend循环。 8.4.4 其他语句--标号和GoTo语句 GoTo语句用于实现无条件转移。 使用格式为:GoTo标号。 程序运行到此结构,会无条件转移到其后的“标号”位置,并从那里继续执行。GoTo语句 使用时,“标号”位置必须首先在程序中定义好,否则转移无法实现。 8.5 过程调用和参数传递 • 过程是一段可以实现某个具体功能的代码 • 与函数不同,过程没有返回值 • 既可以在类模块中,也可以在标准模块中创建过程 1(子过程的定义和调用 可以用 Sub语句声明一个新的子过程、接收的参数和子过程代码。其定义格式为: [Public|Private][Static] Sub 子过程名([<形参>]) [<子过程语句>] ,语句块, [Exit Sub] ,子过程语句, End Sub 使用Public关键字可以使该过程适用于所有模块中的所有其他过程;使用Private关键字可以使该子过程只适用于同一个模块中的其他过程。 创建过程的方法是: 打开模块,选择菜单“插入”?“过程”命令,在“添加过程”对话框中输入过程名。 调用过程有以下两种格式: 格式1:call 过程名([实参列表]) 格式2:子过程名 [实参列表] 这里过程名后的参数叫实际参数。 2(函数过程的定义和调用 可以使用Function语句定义一个新函数过程、接收参数、返回变量类型及运行函数过程的代码。其格式如下: [Public | Private][Static]Function函数过程名[,形参,][As数据类型] [,函数过程语句,] [函数过程语句,,表达式,] [Exit Function] [,函数过程语句, [函数过程语句=,表达式, ] End Function 函数过程的调用格式只有一种: 函数过程名(,实参,) 由于函数过程返回一个值,实际上,函数过程的上述调用形式主要有两种方法:一是将函数过程返回值作为赋值成分赋予某个变量,其格式为“变量,函数过程名(,实参,)”;二是将函数过程返回值作为某个过程的实参成分使用。 3(参数传递 过程定义时可以设置一个或多个形参(形式参数的简称),多个形参之间用逗号分隔。其中,每个形参的完整定义格式: [Optional][ByVal |ByRef][ParamArray]varname[()][As type][,defaultvalue] 含参数的过程被调用时,主调过程中的调用式必须提供相应的实参(实际参数的简称),并通过实参向形参传递的方式完成过程操作 。 在函数的调用过程中,一般会发生数据的传递,即将主调过程中的实参传给被调过程的形参。 在参数传递过程中,可以有传址和传值两种形式。 1(传址 如果在定义过程或函数时,形参的变量名前不加任何前缀,即为传址;若加前缀,须在形参变量名前加ByRef。 传递过程是:调用过程时,将实参的地址传给形参。因此如果在被调过程或函数中修改了 形参的值,则主调过程或函数中实参的值也跟着变化。 例如:如果输入5和7,程序的结果会是多少, Public Sub swap(x As Integer, y As Integer) Dim t As Integer t = x: x = y: y = t End Sub 按钮的单击事件如下: Private Sub Command0_Click() Dim x As Integer, y As Integer x = InputBox("x=") y = InputBox("y=") Debug.Print x, y swap x, y Debug.Print x, y End Sub 2(传值 如果在定义过程或函数时,形参的变量名前加ByVal前缀,即为传值。这时主调过程将实 参的值复制后传给被调过程的形参,因此如果在被调过程或函数中修改了形参的值,则主 调过程或函数中实参的值不会跟着变化。 例如:如果输入5和7,程序的结果会是多少, Public Sub swap1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x: x = y: y = t End Sub 按钮的单击事件如下: Private Sub Command0_Click() Dim x As Integer, y As Integer x = InputBox("x=") y = InputBox("y=") Debug.Print x, y swap1 x, y Debug.Print x, y End Sub 8.6 VBA程序运行错误处理 VBA中提供On Error GoTo语句来控制当有错误发生时程序的处理。 On Error GoTo指令的一般语法如下: On Error GoTo标号 On Error Resume Next On Error GoTo 0 “On Error GoTo标号”语句在遇到错误发生时程序转移到标号所指定位置的代码处执行。 “On Error Resume Next”语句在遇到错误发生时不会考虑错误,并继续执行下一条语句。 “On Error GoTo 0”用于关闭错误处理。 8.7 VBA程序的调试 (详见书本P238) 8.7.1 设置断点 所谓“断点”就是在过程的某个特定语句上设置一个位置点以中断程序的执行。“断点”的设置和使用贯穿在程序调试运行的整个过程中。 在程序中人为设置断点,当程序运行到设置了断点的语句时,会自动暂停运行并进入中断 状态。 设置断点的方法是:在代码窗口中单击要设置断点的那一行语句左侧的灰色边界标识条。 再次单击边界标识条可取消断点。 8.7.2 单步跟踪 也可以单步跟踪程序的运行,即每执行一条语句后都自动进入中断状态。 单步跟踪程序的方法是: 将光标置于要执行的过程内,单击“调试”工具栏的“逐语句”按钮,或选择“调试”?“逐语句”命令。 8.7.3 设置监视点 即设置监视表达式。一旦监视表达式的值为真或改变,程序也会自动进入中断模式。 设置监视点的方法如下。 (1)选择“调试”?“添加监视”命令,弹出“添加监视”对话框。 (2)在“模块”下拉列表框中选择被监视过程所在的模块,在“过程”下拉列表框中选择要监视的过程,在“表达式”文本框中输入要监视的表达式。 (3)最后在“监视类型”栏中选择监视类型。 计算机二级公共基础知识 (下面的138道题目,在二级考试中命中率极高) 一、选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (2) 以下数据结构中不属于线性数据结构的是(C) A. 队列 B. 线性表 C. 二叉树 D. 栈 (3) 在一棵二叉树上第5层的结点数最多是(B) 注:由公式2k-1得 A. 8 B. 16 C. 32 D. 15 (4) 下面描述中,符合结构化程序设计风格的是(A) A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句 (5) 下面概念中,不属于面向对象方法的是 (D) 注:P55-58 A. 对象 B. 继承 C. 类 D. 过程调用 (6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B) A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (7) 在软件开发中,下面任务不属于设计阶段的是(D) A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 (8) 数据库系统的核心是(B) A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库 (9) 下列叙述中正确的是(C) A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致 (10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A) 注:P108 A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式 (11) 算法的时间复杂度是指(C) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 (12) 算法的空间复杂度是指(D) A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间 (13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(B) 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出 A. 349 B. 350 C. 255 D. 351 (14) 结构化程序设计主要强调的是(B) A.程序的规模 B.程序的易读性 C.程序的执行效率 D.程序的可移植性 (15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D) 注:即第一个阶段 A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析 (16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(A) 注:P67 A. 控制流 B. 加工 C. 数据存储 D. 源和潭 (17) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B) 注:P66 A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 (18) 下述关于数据库系统的叙述中正确的是(A) A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 (19) 关系表中的每一横行称为一个(A) A. 元组 B. 字段 C. 属性 D. 码 (20) 数据库设计包括两个方面的设计内容,它们是(A) A. 概念设计和逻辑设计 B. 模式设计和内模式设计 C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计 (21) 下列叙述中正确的是(A) A. 线性表是线性结构 B. 栈与队列是非线性结构 C. 线性链表是非线性结构 D. 二叉树是线性结构 (22) 下列关于栈的叙述中正确的是(D) A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表 (23) 下列关于队列的叙述中正确的是(C) A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 (24) 对建立良好的程序设计风格,下面描述正确的是(A) 注:P48 A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法 C. 充分考虑程序的执行效率 D. 程序的注释可有可无 (25) 下面对对象概念描述错误的是(A) 注:P55 A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体 C. 对象间的通讯靠消息传递 D. 操作是对象的动态性属性 (26) 下面不属于软件工程的3个要素的是(D) 注:P62 A. 工具 B. 过程 C. 方法 D. 环境 (27) 程序流程图(PFD)中的箭头代表的是(B) 注:P81 A. 数据流 B. 控制流 C. 调用关系 D. 组成关系 (28) 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶 段。其中数据独立性最高的阶段是(A) A. 数据库系统 B. 文件系统 C. 人工管理 D. 数据项管理 (29) 用树形结构来表示实体之间联系的模型称为(B) A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 (30) 关系数据库管理系统能实现的专门关系运算包括(B) A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 (31) 算法一般都可以用哪几种控制结构组合而成(D) 注:P3 A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据的存储结构是指(B) 注:P13,要牢记 A. 数据所占的存储空间量 B. 数据的逻辑结构在计算机中的表示 C. 数据在计算机中的顺序存储方式 D. 存储在外存中的数据 (33) 设有下列二叉树:图见书P46 对此二叉树中序遍历的结果为(B) A. ABCDEF B. DBEAFC C. ABDECF D. DEBFCA (34) 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D) 注:P56 A. 调用语句 B. 命令 C. 口令 D. 消息 (35) 检查软件产品是否符合需求定义的过程称为(A) 注:P95 A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试 (36) 下列工具中属于需求分析常用工具的是(D) 注:P67 A. PAD B. PFD C. N-S D. DFD (37) 下面不属于软件设计原则的是(C) 注:P73 A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽 (38) 索引属于(B) A. 模式 B. 内模式 C. 外模式 D. 概念模式 (39) 在关系数据库中,用来表示实体之间联系的是(D) A. 树结构 B. 网结构 C. 线性表 D. 二维表 (40) 将E-R图转换到关系模式时,实体与联系都可以表示成(B) A. 属性 B. 关系 C. 键 D. 域 (41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征(C) A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报 (42) 希尔排序法属于哪一种类型的排序法(B) A.交换类排序法 B.插入类排序法 C.选择类排序法 D.建堆排序法 (43) 在深度为5的满二叉树中,叶子结点的个数为(C) A. 32 B. 31 C. 16 D. 15 (44) 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为(B) 注:要牢记 A. N+1 B. N C. (N+1)/2 D. N/2 (45) 信息隐蔽的概念与下述哪一种概念直接相关(B) 注:P74 A.软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模拟耦合度 (46) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是(C) A. 模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念 C. 使用现实世界的概念抽象地思考问题从而自然地解决问题 D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 (47) 在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试 (48) 软件调试的目的是(B) 注:与软件测试要对比着复习 A.发现错误 B.改正错误 C.改善软件的性能 D.挖掘软件的潜能 (49) 按条件f对关系R进行选择,其关系代数表达式为(C) A. R|X|R B. R|X|Rf C.бf(R) D. ?f(R) (50) 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D) 注:P127,要牢记 A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部 (51) 在计算机中,算法是指(C) A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法 (52) 栈和队列的共同点是(C) 注:这一共同点和线性表不一样 A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 (53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(A) 注:P38,前提要掌握三种遍历的方法 A. cedba B. acbed C. decab D. deabc (54) 在下列几种排序方法中,要求内存量最大的是(D) 注:要牢记,书中没有提到。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是(A) 注:和设计风格有关 A. 程序结构应有助于读者理解 B. 不限制goto语句的使用 C. 减少或取消注解行 D. 程序越短越好 (56) 下列不属于软件调试技术的是(B) 注:P98 A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 (57)下列叙述中,不属于软件需求规格说明书的作用的是(D)注:P71 A. 便于用户、开发人员进行理解和交流 B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析 (58) 在数据流图(DFD)中,带有名字的箭头表示(C) A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分 (59) SQL语言又称为(C) A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化操纵语言 (60) 视图设计一般有3种设计次序,下列不属于视图设计的是(B) A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上 (61) 数据结构中,与所使用的计算机无关的是数据的(C) A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构 (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是(D) A. ABCED B. DBCEA C. CDABE D. DCBEA (63) 线性表的顺序存储结构和线性表的链式存储结构分别是(B) A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构 (64) 在单链表中,增加头结点的目的是(A) A. 方便运算的实现 B. 使单链表至少有一个结点 C. 标识表结点中首结点的位置 D. 说明单链表是线性表的链式存储实现 (65) 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指(B) 注:P73 A. 模块间的关系 B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程 (66) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为(B) 注:P82 A. PAD图 B. N-S图 C. 结构图 D. 数据流图 (67) 数据处理的最小单位是(C) 注:数据项不可再分割 A. 数据 B. 数据元素 C. 数据项 D. 数据结构 (68) 下列有关数据库的描述,正确的是(C) 注:P102 A. 数据库是一个DBF文件 B. 数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件 (69) 单个用户使用的数据视图的描述称为(A) 注:P108 A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 (70) 需求分析阶段的任务是确定(D) A. 软件开发方法 B. 软件开发工具 C. 软件开发费用 D. 软件系统功能 (71) 算法分析的目的是(D) 注:书中没有总结,但要牢记 A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进 (72)链表不具有的特点是(B) A.不必事先估计存储空间 B.可随机访问任一元素 C.插入删除不需要移动元素 D.所需空间与线性表长度成正比 (73) 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是(B) A. 堆排序 B. 直接插入排序 C. 快速排序 D. 直接选择排序 (74) 用链表表示线性表的优点是(A) 注:因为不需要移动元素 A. 便于插入和删除操作 B. 数据元素的物理顺序与逻辑顺序相同 C. 花费的存储空间较顺序存储少 D. 便于随机存取 (75) 下列不属于结构化分析的常用工具的是(D) 注:P67 A. 数据流图 B. 数据字典 C. 判定树 D. PAD图 (76) 软件开发的结构化生命周期方法将软件生命周期划分成(A) A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计 (77) 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是(C) 注:P87 A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合 (78) 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有(D) 注:数据模型采用关系模型(二维表) A. 数据无冗余 B. 数据可共享 C. 专门的数据管理软件 D. 特定的数据模型 (79) 分布式数据库系统不具有的特点是(B) A. 分布式 B. 数据冗余 C. 数据分布性和逻辑整体性 D. 位置透明性和复制透明性 (80) 下列说法中,不属于数据模型所描述的内容的是(C) 注:P110 A. 数据结构 B. 数据操作 C. 数据查询 D. 数据约束 (81)根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成(C) A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 (82)下列叙述中,错误的是(B) A.数据的存储结构与数据处理的效率密切相关 B.数据的存储结构与数据处理的效率无关 C.数据的存储结构在计算机中所占的空间不一定是连续的 D.一种数据的逻辑结构可以有多种存储结构 (83)线性表L=(a1,a2,a3,„ai,„an),下列说法正确的是(D) A.每个元素都有一个直接前件和直接后件 B.线性表中至少要有一个元素 C.表中诸元素的排列顺序必须是由小到大或由大到 D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 (84)线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D) A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 (85)栈通常采用的两种存储结构是(A) A.顺序存储结构和链式存储结构 B.散列方式和索引方式 C.链表存储结构和数组 D.线性存储结构和非线性存储结构 (86)下列数据结构中,按先进后出原则组织数据的是(B) A.线性链表 B.栈 C.循环链表 D.顺序表 (87)树是结点的集合,它的根结点数目是(C) A.有且只有1 B.1或多于1 C.0或1 D.至少2 (88)具有3个结点的二叉树有(D) A.2种形态 B.4种形态 C.7种形态 D. 5种形态 (89)设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为(B) A. 12 B. 13 C.14 D. 15 (90)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的(C) A.安全性 B.一致性 C.可理解性 D.合理性 (91)为了提高测试的效率,应该 (D) 注:P85 A.随机选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划 D.集中对付那些错误群集的程序 (92)软件生命周期中所花费用最多的阶段是(D) A.详细设计 B.软件编码 C.软件测试 D.软件维护 二、填空题 (1) 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间 (2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。答:存储结构#物理结构 (3) 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。答:黑盒 (4) 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。 答:一对多#1:N#1:n (5) 关系数据库管理系统能实现的专门关系运算包括选择、连接和______。 答:投影 (6) 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。答:中序 (7) 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。 答:模块化 (8) 软件的调试方法主要有:强行排错法、______和原因排除法。答:回溯法 (9) 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。答:概念#概念级 (10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。答:数据存储 (11) 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。答:250 (12) 在最坏情况下,冒泡排序的时间复杂度为______。 答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2) (13) 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。答:实体 (14) 软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。 答:需求获取 (15) ______是数据库应用的核心。 答:数据库设计 (16) 数据结构包括数据的______结构和数据的存储结构。 答:逻辑 (17) 软件工程研究的内容主要包括:______技术和软件工程管理。答:软件开发 注:P64 (18) 与结构化需求分析方法相对应的是______方法。 答:结构化设计 (19) 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。答:参照完整性 (20) 数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。答:概念 注:P110 (21) 栈的基本运算有三种:入栈、退栈和______。 答:读栈顶元素#读栈顶的元素#读出栈顶元素 (22) 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。答:封装 (23) 数据流的类型有______和事务型。 答:变换型 注:P77 (24) 数据库系统中实现各种数据管理功能的核心软件称为______。答:数据库管理系统#DBMS 注:要牢记,重要 (25) 关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。答:查询 注:要牢记 (26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度 (27) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。答:存储结构 注:P7 (28) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。答:可重用性 (29) 面向对象的模型中,最基本的概念是对象和 ______。 答:类 (30) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。答:完善性 注:要牢记,书中没有提到 (31) 算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有穷性 (32) 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。答:相邻 (33) Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。答:数据结构 注:P67 (34) 数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 答:概念设计阶段#数据库概念设计阶段 (35) 数据库保护分为:安全性控制 、______、并发性控制和数据的恢复。答:完整性控制 注:要牢记 (36) 测试的目的是暴露错误,程序的可靠性;而______的目的是发现错误的位置并改正错误。答:调试 (37) 在最坏情况下,堆排序需要比较的次数为______。 答:O(nlog2n) (38) 若串s="Program",则其子串的数目是______。答:29 (39) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体 "项目"的联系属于______的联系。 答:1对多又可答为1:N (40) 数据库管理系统常见的数据模型有层次模型、网状模型和______三种。答:关系模型 (41)数据的逻辑结构有线性结构和_______两大类。 答非线性结构 (42)数据结构分为逻辑结构与存储结构,线性链表属于_______。答:存储结构 (43)数据的基本单位是_______。答:元素 (44)长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为______。 答:n/2 (45)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为______。 答:上溢 (46)在面向对象方法中,类之间共享属性和操作的机制称为_______。答:继承 2010.3月ACCESS笔试真题 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n) (2)算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是 A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (4)软件(程序)调试的任务是 A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误的性质 (5)数据流程图(DFD图)是 A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是 A)文件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段 (10)有两个关系R和T如下: 则由关系R得到关系T的操作是 A)选择 B)投影 C)交 D)并 (11)下列关于关系数据库中数据表的描述,正确的是 A)数据表相互之间存在联系,但用独立的文件名保存 B)数据表相互之间存在联系,是用表名表示相互间的联系 C)数据表相互之间不存在联系,完全独立 D)数据表既相对独立,又相互联系 (12)下列对数据输入无法起到约束作用的是 A)输入掩码 B)有效性规则 C)字段名称 D)数据类型 (13)Access中,设置为主键的字段 A)不能设置索引 B)可设置为“有(有重复)”索引 C)系统自动设置索引 D)可设置为“无”索引 (14)输入掩码字符“&”的含义是 A)必须输入字母或数字 B)可以选择输入字母或数字 C)必须输入一个任意的字符或一个空格 D)可以选择输入任意的字符或一个空格 (15)在Access中,如果不想显示数据表中的某些字段,可以使用的命令是 A)隐藏 B)删除 C)冻结 D)筛选 (16)通配符“#”的含义是 A)通配任意个数的字符 B)通配任何单个字符 C)通配任意个数的数字字符 D)通配任何单个数字字符 (17)若要求在文本框中输入文本时达到密码“*”的显示效果,则应该设置的属性是 A)默认值 B)有效性文本 C)输入掩码 D)密码 (18)假设“公司”表中有编号、名称、法人等字段,查找公司名称中有“网络”二字的公司信息,正确的命令是 A)SELECT * FROM公司FOR名称 = " *网络* " B)SELECT * FROM公司FOR名称LIKE "*网络*" C)SELECT * FROM公司WHERE名称="*网络*" D)SELECT * FROM公司WHERE名称LIKE"*网络*" (19)利用对话框提示用户输入查询条件,这样的查询属于 A)选择查询 B)参数查询 C)操作查询 D)SQL查询 (20)在SQL查询中“GROUP BY”的含义是 A)选择行条件 B)对查询进行排序 C)选择列字段 D)对查询进行分组 (21)在调试VBA程序时,能自动被检查出来的错误是 A)语法错误 B)逻辑错误 C)运行错误 D)语法错误和逻辑错误 (22)为窗体或报表的控件设置属性值的正确宏操作命令是 A)Set B)SetData C)SetValue D)SetWarnings (23)在已建窗体中有一命令按钮(名为Commandl),该按钮的单击事件对应的VBA代码为: Private Sub Commandl_Click() subT.Form.RecordSource = "select * from雇员" End Sub 单击该按钮实现的功能是 A)使用select命令查找“雇员”表中的所有记录 B)使用select命令查找并显示“雇员”表中的所有记录 C)将subT窗体的数据来源设置为一个字符串 D)将subT窗体的数据来源设置为“雇员”表 (24)在报表设计过程中,不适合添加的控件是 A)标签控件 B)图形控件 C)文本框控件 D)选项组控件 (25)下列关于对象“更新前”事件的叙述中,正确的是 A)在控件或记录的数据变化后发生的事件 B)在控件或记录的数据变化前发生的事件 C)当窗体或控件接收到焦点时发生的事件 D)当窗体或控件失去了焦点时发生的事件 (26)下列属于通知或警告用户的命令是 A)PrintOut B)OutputTo C)MsgBox D)RunWarnings (27)能够实现从指定记录集里检索特定字段值的函数是 A)Nz B)Find C)Lookup D)DLookup (28)如果X是一个正的实数,保留两位小数、将千分位四舍五入的表达式是 A)0.01*Int(x+0.05) B)0.01*Int(100*(X+0.005)) C)0.01*Int(x+0.005) D)0.01*Int(100*(X+0.05)) (29)在模块的声明部分使用“Option Base 1”语句,然后定义二维数组A(2 to 5,5),则该数组 的元素个数为 A)20 B)24 C)25 D)36 (30)由“For i=1 To 9 Step -3”决定的循环结构,其循环体将被执行 A)0次 B)1次 C)4次 D)5次 (31)在窗体上有一个命令按钮Commandl和一个文本框Textl,编写事件代码如下: Private Sub Command1_Click() Dim i,j,x For i = 1 To 20 step 2 x = 0 For j = To 20 step 3 x = x + 1 Next j Next i Textl.Value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框中显示的结果是 A)1 B)7 C)17 D)400 (32)在窗体上有一个命令按钮Commandl,编写事件代码如下: Private Sub Commandl_Click() Dim y As Integer y = 0 Do y = InputBox("y=") If (y Mod 10) + Int(y / 10) = 10 Then Debug.Print y; Loop Until y = 0 End Sub 打开窗体运行后,单击命令按钮,依次输入10、37、50、55、64、20、28、19、-19、 0,立即窗口上输出的结果是 A)37 55 64 28 19 19 B)10 50 20 C)10 50 20 0 D)37 55 64 28 19 (33)在窗体上有一个命令按钮Commandl,编写事件代码如下: Private Sub Command1_Click() Dim x As Integer, y As Integer x = 12: y = 32 Call Proc(x, y) Debug.Print x; y End Sub Public Sub Proc(n As Integer, ByVal m As Integer) n = n Mod 10 m = m Mod 10 End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是 A)2 32 B)12 3 C)2 2 D)12 32 34)在窗体上有一个命令按钮Commandl,编写事件代码如下: Private Sub Commandl_Click() Dim d1 As Date Dim d2 As Date dl = #12/25/2009# d2 = #1/5/2010# MsgBox DateDiff(” ww”, d1, d2) End Sub 打开窗体运行后,单击命令按钮,消息框中输出的结果是 A)1 B)2 C)10 D)11 (35)下列程序段的功能是实现“学生”表中“年龄”字段值加1 Dim Str As String Str=" " Docmd.RunSQL Str 空白处应填入的程序代码是 A)年龄=年龄+1 B)Update学生 Set 年龄=年龄+1 C)Set 年龄=年龄+1 D)Edit 学生 年龄=年龄+l 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。 (1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退 队,则元素退队的顺序为 【1】 。 (2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。 (3)设二叉树如下: 对该二叉树进行后序遍历的结果为 【3】 。 (4)软件是 【4】 、数据和文档的集合。 (5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。 (6)下图所示的窗体上有一个命令按钮(名称为Command1)和一个选项组(名称为Framel),选项组上显示“Framel”文本的标签控件名称为Labell,若将选项组上显示文本“Frame1”改为汉字“性别”,应使用的语句是【6】。 (7)在当前窗体上,若要实现将焦点移动到指定控件,应使用的宏操作命令是【7】。 (8)使用向导创建数据访问页时,在确定分组级别步骤中最多可设置【8】个分组字段。 (9)在窗体文本框Text l中输入“456AbC”后,立即窗口上输出的结果是【9】。 Private Sub Textl_KeyPress(KeyAscii As Integer) Select Case DeyAscii Case 97 To 122 Debug.Print Ucase(Chr(KeyAscii)); Case 65 To 90 Debug.Print Lcase(Chr(KeyAscii)); Case 48 To 57 Debug.Print Chr(KeyAscii); Case Else KeyAscii = 0 End Select End Sub (10)在窗体上有一个命令按钮Commandl,编写事件代码如下: Private Sub Command1_Click() Dim a(10), p(3) As Integer k = 5 For i = 1 To 10 a(i) = i * i Next i For i = 1 To 3 p(i) = a(i * i) Next i For i = 1 To 3 k = k + p(i) *2 Next i MsgBox k End Sub 打开窗体运行后,单击命令按钮,消息框中输出的结果是【10】。 (11)下列程序的功能是找出被5、7除,余数为1的最小的5个正整数。请在程序空白 处填入适当的语句,使程序可以完成指定的功能。 Private Sub Form_Click() Dim Ncount %, n% n = n + 1 If 【11】 Then Debug.Print n Ncount =Ncount + 1 End If Loop Until Ncont = 5 End Sub (12)以下程序的功能是在立即窗口中输出100到200之间所有的素数,并统计输出素数 的个数。请在程序空白处填入适当的语句,使程序可以完成指定的功能。 Private Sub Command2_Click() Dim i%, j%, k%, t % ‘t 为统计素数的个数 Dim b As Boolean For i = 100 To 200 b = True k = 2 j = Int(Sqr(i)) Do While k <= j And b If I Mod k = 0 Then b = 【12】 End If k = 【13】 Loop If b = True Then t = t + 1 Debug.Print i End If Next i Debug.Print "t="; t End Sub (13)数据库中有工资表,包括“姓名”、“工资”和“职称”等字段,现要对不同职称的职工 增加工资,规定教授职称增加15%,副教授职称增加10%,其他人员增加5%。下列程序的 功能是按照上述规定调整每位职工的工资,并显示所涨工资之总和。请在空白处填入适当的 语句,使程序可以完成指定的功能。 Private Sub Command5_Click() Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim gz As DAO.Field Dim zc As DAO.Field Dim sum As Currency Dim rate As Single Set db = CurrentDb() Set rs = db.OpenRecordset("工资表") Set gz = rs.Fields("工资") Set zc = rs.Fields("职称") sum = 0 Do While Not 【14】 rs.Edit Select Case zc Case Is = "教授" rate = 0.15 Case Is = "副教授" rate = 0.1 Case Else rate = 0.05 End Select sum = sum + gz * rate gz = gz + gz * rate 【15】 rs.MoveNext Loop rs.Close db.Close Set rs = Nothing Set db = Nothing MsgBox "涨工资总计:" & sum End Sub 2010.3月ACCESS笔试答案 一、选择题(70分) (1) A(2)D (3) B (4)A (5) C (6) B (7) A (8) D (9) C (10) A (11) D (12) C (13) C (14) C (15) A (16) D (17) C (18) D (19) B (20) D (21) A (22) C (23) D (24) D (25) B (26) C (27) D (28) B (29) B (30) A (31) A (32) D (33) A (34) B (35) B 二、填空题(30分) (1)A,B,C,D,E,F,5,4,3,2,1 (2)15 (3)EDBGHFCA (4)程序 (5)课程 (6)Label1.Caption=”性别” (7)SetFocus (8)4 (9)456aBc (10)201 (11)nMod 5=1 And n Mod 7=1 (12)false (13)k+1 (14)rs.EOF (15)rs.update 2009.9月ACCESS笔试题目 (考试时间90分钟,满分100分) 一、选择题(每小题2分,共70分) (1)下列数据结构中,属于非线性结构的是 A)循环队列 B)带链队列 C)二叉树 D)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A)循环队列 B)栈 C)队列 D)二叉树 (3)对于循环队列,下列叙述中正确的是 A)队头指针是固定不变的 B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针 D)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指 ,)算法在执行过程中所需要的计算机存储空间 ,)算法所处理的数据量 ,)算法程序中的语句或指令条数 ,)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 A)可封装 B)自顶向下 C)模块化 D)逐步求精 (7)软件详细设计产生的图如下: 该图是 A)N-S图 B)PAD图 C)程序流程图 D)E-R图 (8)数据库管理系统是 A)操作系统的一部分 B)在操作系统支持下的系统软件 C)一种编译系统 D)一种操作系统 (9)在E-R图中,用来表示实体联系的图形是 A)椭圆图 B)矩形 C)菱形 D)三角形 (10)有三个关系R,S和T如下: 其中关系T由关系R和S通过某种操作得到,该操作为 ,)选择 ,)投影 ,)交 ,)并 (11)Access数据库的结构层次是 A)数据库管理系统?应用程序?表 B)数据库?数据表?记录?字段 C)数据表?记录?数据项?数据 D)数据表?记录?字段 (12)某宾馆中有单人间和双人间两种客房,按照规定,每位入住该宾馆的客人都要进行身份登记。宾馆数据库中有客房信息表(房间号,„„)和客人信息表(身份证号,姓名,来源,„„);为了反映客人入住客房的情况,客房信息表与客人信息表之间的联系应设计为 A)一对一联系 B)一对多联系 C)多对多联系 D)无联系 (13)在学生表中要查找所有年龄小于20岁且姓王的男生,应采用的关系运算是 A)选择 B)投影 C)联接 D)比较 (14)在Access中,可用于设计输入界面的对象是 A)窗体 B)报表 C)查询 D)表 (15)下列选项中,不属于Access数据类型的是 A)数字 B)文本 C)报表 D)时间/日期 (16)下列关于OLE对象的叙述中,正确的是 A)用于输入文本数据 B)用于处理超级链接数据 C)用于生成自动编号数据 D)用于链接或内嵌Windows支持的对象 (17)在关系窗口中,双击两个表之间的连接线,会出现 A)数据表分析向导 B)数据关系图窗口 C)连接线粗细变化 D)编辑关系对话框 (18)在设计表时,若输入掩码属性设置为“LLLL“,则能够接收的输入是 ,)abcd ,)1234 ,)AB+C ,)ABa9 (19)在数据表中筛选记录,操作的结果是 A)将满足筛选条件的记录存入一个新表中 B)将满足筛选条件的记录追加到一个表中 C)将满足筛选条件的记录显示在屏幕上 D)用满足筛选条件的记录修改另一个表中已存在的记录 (20)已知“借阅”表中有 “借阅编号”、“学号”和“借阅图书编号”等字段,每个学生每借阅一本书生成一条记录,要求按学生学号统计出每个学生的借阅次数,下列SQL语句中,正确的是 A)Select 学号, count(学号) from 借阅 B)Select 学号, count(学号) from 借阅 group by 学号 C)Select 学号, sum(学号) from 借阅 D)select 学号, sum(学号) from 借阅 order by 学号 (21)在学生借书数据库中,已有“学生”表和“借阅”表,其中“学生”表含有“学号”、“姓名”等信息,“借阅”表含有“借阅编号”、“学号”等信息。若要找出没有借过书的学生记录,并显示其“学号”和“姓名”,则正确的查询设计是 (22)启动窗体时,系统首先执行的事件过程是 A)Load B)Click C)Unload D)GotFocus (23)在设计报表的过程中,如果要进行强制分页,应使用的工具图标是 (24)下列操作中,适合使用宏的是 A)修改数据表结构 B)创建自定义过程 C)打开或关闭报表对象 D)处理报表中错误 (25)执行语句:MsgBox ”AAAA”, vbOKCancel+vbQuetion, “BBBB”之后,弹出的信息框 A)标题为“BBBB”、框内提示符为“惊叹号”、提示内容为“AAAA” B)标题为“AAAA”、框内提示符为“惊叹号”、提示内容为“BBBB” C)标题为“BBBB”、框内提示符为“问号”、提示内容为“AAAA” D)标题为“AAAA”、框内提示符为“问号”、提示内容为“BBBB” (26)窗体中有3个命令按钮,分别命名为Command1、Command2和 Command3。当单击Command1按钮时,Command2按钮变为可用,Command3按钮变为不可见。下列Command1的单击事件过程中,正确的是 ,)private sub Command1_Click() Command2.Visible = true Command3.Visible = false ,)private sub Command1_Click() Command2.Enable = true Command3.Enable = false ,)private sub Command1_Click() Command2.Enable = true Command3.Visible = false ,)private sub Command1_Click() Command2.Visible = true Command3.Enable = false (27)用于获得字符串S最左边4个字符的函数是 A)Left(S, 4) B)Left(S, 1, 4) C)Leftstr(S, 4) D)Leftstr(S, 1, 4) (28)窗体Caption属性的作用是 A)确定窗体的标题 B)确定窗体的名称 C)确定窗体的边界类型 D)确定窗体的字体 (29)下列叙述中,错误的是。 A)宏能够一次完成多个操作 B)可以将多个宏组成一个宏组 C)可以用编程的方法来实现宏 D)宏命令一般由动作名和操作参数组成 (30)下列程数据类型中,不属于VBA的是 ,)长整型 ,)布尔型 ,)变体型 ,)指针型 (31)下列数组声明语句中,正确的是 A)Dim A [3,4] As Integer B)Dim A (3,4) As Integer C)Dim A [3;4] As Integer D)Dim A (3;4) As Integer (32)在窗体中有一个文本框Test1,编写事件代码如下: Private Sub Form_Click() X= val (Inputbox(“输入x的值”)) Y= 1 If X<>0 Then Y= 2 Text1.Value = Y End Sub 打开窗体运行后,在输入框中输入整数12,文本框Text1中输出的结果是 A)1 B)2 C)3 D)4 (33)在窗体中有一个命令按钮Command1和一个文本框Test1,编写事件代码如下: Private Sub Command1_Click() For I = 1 To 4 x = 3 For j = 1 To 3 For k = 1 To 2 x= x + 3 Next k Next j Next I Text1.Value = Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框Text1中输出的结果是 A)6 B)12 C)18 D)21 (34)在窗体中有一个命令按钮Command1,编写事件代码如下: Private Sub Command1_Click() Dim s As Integer s = p(1) + p(2) + p(3) + p(4) debug.Print s End Sub Public Function p (N As Integer) Dim Sum As Integer Sum = 0 For i = 1 To N Sum = Sum + 1 Next i P = Sum End Function 打开窗体运行后,单击命令按钮,输出的结果是 A)15 B)20 C)25 D)35 (35)下列过程的功能是:通过对象变量返回当前窗体的Recordset属性记录集引用,消息框中输出记录集的记录(即窗体记录源)个数。 Sub GetRecNum( ) Dim rs As Object Set rs = Me.Recordset MsgBox----- End Sub 程序空白处应填写的是 A)Count B)rs.Count C)RecordCount D)rs. RecordCount 二、填空题(每空2分,共30分) (1)某二叉树由5个度为2的结点以及3个度为1的结点,则该二叉树中共有 【1】 个结点。 (2)程序流程图中的菱形框表示的是 【,】 。 (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 【,】 阶段产生“软件需求规格说明书“。 (4)在数据库技术中,实体集之间的联系可以是一对一或一对多的,那么“学生“和”可选课程“的联系为 【,】 。 (5)人员基本信息一般包括:身份证号、姓名、性别、年龄等。其中可以做主关键字的是 【,】 。 (6)Access中若要将数据库中的数据发布到网上,应采用的对象是 【6】 。 (7)在一个查询集中,要将指定的记录设置为当前记录,应该使用的宏操作命令是 【7】 。 (8)当文本框中的内容发生了改变时,触发的事件名称是 【8】 。 (9)在VBA中求字符串的长度可以使用函数 【9】 。 (10)要将正实数x保留两位小数,若采用Int 函数完成,则表达式为 【10】 。 (11)在窗体中有两个文本框分别为Text1和Text2,一个命令按钮Command1,编写 如下两个事件过程: Private Sub Command1_Click( ) a = Text1.Value + Text2.Value MsgBox a End Sub Private Sub Form_Load( ) Text1.Value = “” Text2.Value = “” End Sub 程序运行时,在文本框Text1中输入78,在文本框中Text2输入87,单击命令按钮, 消息框中输出的结果为 【11】 。 (12)某次大奖赛有7个评委同时为一位选手打分,去掉一个最高分和一个最低分,其 余5个分数的平均值为该名参赛者的最后得分。请填空完成规定的功能。 Sub command1_click( ) Dim mark!, aver!, i%,max1!,min1! aver = 0 For i = 1 To 7 Mark = InputBox(“请输入第”& i & “位评为的打分”) If i = 1 then max1 =mark : min1=mark Else If mark < min1 then min1= mark ElseIf mark> max1 then 【12】 End If End If 【13】 Next i aver = (aver - max1- min1)/5 MsgBox aver End Sub (13)“学生成绩”表含有字段(学号,姓名,数学,外语,专业,总分)。下列程 序的功能是:计算每名学生的总分(总分=数学+外语+专业)。请在程序空白处填入适当语 句,使程序实现所需要的功能。 Private Sub Command1_Click( ) Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim zongfen As New ADODB.Fileld Dim shuxue As New ADODB. Fileld Dim waiyu As New ADODB. Fileld Dim zhuanye As New ADODB. Fileld Dim strSQL As Sting Set cn = CurrentProject.Connection StrSQL = “Select*from成绩表” rs.OpenstrSQL, cn, adOpenDynamic, adLockptimistic, adCmdText Set zongfen = rs.Filelds(“总分”) Set shuxue = rs.Filelds(“数学”) Set waiyu = rs.Filelds(“外语”) Set zhuanye = rs.Filelds(“专业”) Do while 【14】 Zongfen = shuxue + waiyu + zhuanye 【15】 rs.MoveNext Loop rs.close cn.close Set rs = Nothing Set cn = Nothing End Sub 2009.9月ACCESS笔试答案 一、选择题 1-5 CBDAB 6-10 ACBCD 11-15 BBAAC 16-20 DDACB 21-25 AADCC 26-30 CAAAD 31-35 BBDBD 二、填空题 1 14 2 逻辑分析 3 需求分析 4 多对多 5 身份证号 6 数据访问页 7 GOTO RECORD 8 CHARGE 9 Len 10 Int(x*100)/100 11 7887 12 max1=mark aver=aver+mark 13 not rs.EOF rs.UPDATE 2009.3月ACCESS笔试试题 一、选择题(每小题2分,共70分) 下列各题A), B), C), D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进后出”的线性表 C)循环队列是非线性结构 D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 (6)方向叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行侧试计划,排除测试的随意性 (7)耦合性和内聚性是刘模块独立性度量的两个标准下列叙述中正确的是 A)提高祸合性降低内聚性有利于捉高模块的独立性 B)降低祸合性提高内聚性有利于提高模块的独立性 C)合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为 A)属性 B)键 C)关系 D)域 (11)按数据的组织形式,数据库的数据模型可分为三种模型,他们是 A、小型、中型和大型 B)网状、环状和链状 C)层次、网状和关系 D)独享、共享和实时 (12)数据库中有A, B两表,均有相同导段C,在两表中C字段都没为主键。当通过C字段建立两表关系时,则该关系为 A)一对一 B)一对多 C)多对多 D)不能建立关系 (13)如果在创建表中建立字段“性别”,并要求用汉字表示,其数据类型应当是 A)是/否 B)数字 C)文本 D)备注 (14)在Access数据库对象中,体现数据库设计目的的对象是 A)报表 B)模块 C)查询 D)表 (15)下列关于空值的叙述中,正确的是 A)空值是双引号中间没有空格的值 B)空值是等于0的数值 C)少空值是使用Null或空自来表示字段的值 D)空值是用空格表示的值 (16)在定义表中字段属性时,对要求输入相对固定格式的数据,例如电话号,应该定义该字段的 A)格式 B)默认值 C)输入掩码 D)有效性规则 (17)在书写查询准则时,日期型数据应该使用适当的分隔符括起来,正确的分隔符是 A)* B)% C)& D)# (18)下列关于报表的舒述中,正确的是 A)报表只能输入数据 B)报表只能出数据 C)报表可以输入和输出数据 D)报表不能输入和输出数据 (19)要实现报表按某字段分组统计输出,需要设置的是 A)报表页脚 B)该字段的组页脚 C)主体 D)页面页脚 (20)下列关于SQL语句的说法中,错误的是 A)INSERT语句可以向数据表中追加新的数据记录 B)UPDATE语句用来修改数据表中己经存在的数据记录 C)DELETE语句用来删除数据表中的记录 D)CREATE语句用来建立表结构并追加新的记录 (21)在数据访问页的工具箱中,为了插入一段滚动文字应该选择的图标是 (22)在运行宏的过程中,宏不能修改的是 A)窗体 B)宏本身 C)表 D)数据库 (23)在设计条件宏时。对于连续重复的条件,要代替重复条件表达式可以使用符号 A)„ B): C)~ D)= (24)在宏的参数中,要引用窗体F1上的Textl文本框的值,应该使用的表达式; A)[Forms]![F1]~[Text1] B)Textl C)[F1].[Textl] D)[Forms][Fl」[Textl] (25)宏操作Quit的功能是 A)关闭表 B)退出宏 C)退出查询 D)退出Acres (26)发生在控件接收焦点之前的事件是 A)Enter B)ExitC) Got Focus D)LostFocus (27)要想在过程Proc调用后返回形参x和Y的变化结果,下列定义语句中正确的是 A)Sub Proc(x as Integer,y as Integer) B)Sub Proc(ByVal x as Integer, y as Integer) C)Sub Proc(x as Integer,Byval y as Integer) D)Sub Proc(Byval x as Integer, Byval y as Integer) (28)要从数据库中删除一个表,应该使用的sQL语句是 A)ALTER TABLE B)KILL TABLE C)DELETE TABLE D)DROP TABLE (29)在VBA中要打开名为“学生信息录入”的窗体,应使用的语句是 A)DoCmd .OpenForm“学生信息录入” B)OpenForm“学生信息录入” C)DoCmd .OpenWindow“学生信息录入” D)OpenWindow“学生信息录入” (30)要显示当前过程中的所有变量及对象的取值,可以利用的调试窗口是 A)监视窗口 B)调用堆栈 C)立即窗口 D)本地窗口 (31)在VSA中,下列关于过程的描述中正确的是 A)过程的定义可以嵌套,但过程的调用不能嵌套 B)过程的定义不可以嵌套,但过程的调用可以嵌套 C)过程的定义和过程的调用均可以嵌套 D)过程的定义和过程的调用均不能嵌套 (32)能够实现从指定记录集里检索特定字段值的函数是 A)Dcount B)Dlookup C)Umax D)DSum (33)下列四个选项中,不是vgA的条件函数的是 A)Choose B)If C)Iif D)Switch (34)设有如下过程: x=1 Do x=x+2 Loop Until_______ 运行程序,要求循环体执行3次后结束循环,空白处应填入的语句是 A)x<=7 B)x<7 C)x>=7 D)x>7 (35)在窗体中添加一个名称为Commandl的命令按钮,然后编写如下事件代码: Private Sub Commandl Click() MsgBox f(24,18) End Sub Public Function f(m As Integer,n As Integer)As Integer Do While m<>n Do While m>n m=m-n Loop Do While m在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】框。 (6)在关系数据库中,从关系中找出满足给定条件的元组,该操作可称为【6】。 (7)函数Mid(“学生信息管理系统”,3,2)的结果是【7】。 (8)用SQL语句实现查询表名为“图书表”中的所有记录,应该使用的SELECT语句是: select【8】 (9)Access的窗体或报表事件可以有两种方法来响应:宏对象和【9】。 (10)子过程Test显示一个如下所示9X4的乘法表。 1*1=1 1*2=2 1*3=3 1*4=4 2*2=4 2*3=6 2*4=8 3*3=9 3*4=12 4*4=16 请在空白处填入适当的语句使子过程完成指定的功能。 Sub Text() Dim i,j As Integer For i=1 To 4 For j=1 To 4 If【10】Then Debug.Prrint I & “*” & j & “=” & i * j & Space(2) End If Next j Debug .Print Next i End Sub (11)有“数字时钟”窗体如下: 在窗口中有按钮“[开/关〕时钟”,单击该按钮可以显示或隐藏时钟。其中按钮的名称为“开关”,显示时间的文本框名称为“时钟”,计时器间隔己设置为500。 请在空白处填入适当的语句,使程序可以完成指定的功能。 Dim flag As工nteger Private Sub Form Load() flag=1 End Sub Private Sub Form Timer()’“计时器触发”事件过程 时钟=Time, 在“时钟”文本框中显示当前时间 End Sub Private Sub开关Click(),“开关”按钮的单击事件过程 If【11】Then 时钟.Visible=False flag=0 Else 时钟.Visible=True flag=1 End If End Sub (12)窗体中有两个命令按钮:“显示”(控件名为cmdDisplay)和“测试”(控件名为cmdTest)。当单击“测试”按钮时,执行的事件功能是:首先弹出消息框,若单击其中的“确定”按钮,则隐藏窗体上的“显示”按钮:否则直接返回到窗体中。请在空白处填入适当的语句,使程序可以完成指定的功能。 Private Sub cmdTest Click( ) Answer=【12】(“隐藏按钮,”,vbOKCancel+vbQuestion, “Msg”) If Answer=vbOK Then Me{cmdDisplay.Visible=【13】 End If End Sub (13)对窗体tes七上文本框控件七xtAge中输入的学生年龄数据进行验证。要求:该文本框中只接受大于等于15且小于等于3。的数值数据,若输入超出范围则给出提示信息。该文本控件的BeforeUpdate事件过程代码如下,请在空白处填入适当的语句,使程序可以完成指定的功能。 Private Sub txtAge_ BeforeUpdate(Cancel As Integer) If Me!txtAge=“” Or【14】__(Me!t=xtAg e)Then ’数据为空时的验证 MsgBox“年龄不能为空~”,vbCritica工,“警告” Cancel=True ’取消BeforeUpdate事件 E1seIf IsNumeric(Me!txtAge)=False Then ’非数值数据输入的验证 MsgBox“年龄必须输入数值数据~” vbCritical,“警告” Cancel=True ‘取消BeforeUpdate事件 ElseIf Me!txtAge<15 Or Me!txtAge【15】Then ’非法范围数据输入的验证 MsgBox“年龄为15一30范围数据~”,vbCritical,“警告” ’取消BeforeUpdate事件 Cancel= True’取消BeforeUpdate事件 Else ’数据验证通过 MsgBox“数据验证.K!”,vb工nformation,“通告” End If End Sub 2009.3月ACCESS笔试答案 一、选择题(70分) (1) D (2) A (3) C (4) D (5) C (6) A (7) B (8) A (9) B (10) C (11) C (12) A (13) C (14) D (15) C (16) C (17) D (18) B (19) B (20) D (21) B (22) B (23) A (24) A (25) D (26) A (27) A (28) D (29) A (30) D (31) B (32) B (33) B (34) C (35) C 二、填空题(30分) (1)19 (2)白盒 (3)顺序结构 (4)数据库管理系统 (5)菱形 (6)选择 (7)信息 (8)*FROM图书表 (9)事件过程 (10)i<=j (11)flag=1 (12)MsgBox (13)False (14)ISNULL (15)>30
/
本文档为【计算机二级ACCESS_2012考试大纲及复习方法+历年真题+讲义】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索