首页 NCRE二级Access数据库程序设计讲义

NCRE二级Access数据库程序设计讲义

举报
开通vip

NCRE二级Access数据库程序设计讲义NCRE二级Access数据库程序设计讲义 NCRE二级Access数据库程序设计讲义(刘春立) 目 录 序言——带你入门 第一节 课程要求„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 第二节 认识本门课程„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 第三节 Access概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„6 第一章 数据库基础知识 第一节...

NCRE二级Access数据库程序设计讲义
NCRE二级Access数据库程序设计讲义 NCRE二级Access数据库程序设计讲义(刘春立) 目 录 序言——带你入门 第一节 课程要求„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 第二节 认识本门课程„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 第三节 Access概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„6 第一章 数据库基础知识 第一节 数据处理技术的发展过程„„„„„„„„„„„„„„„„„„„„„„„„„„7 第二节 数据库相关概念„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„7 第三节 数据模型„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8 第四节 关系数据库管理系统„„„„„„„„„„„„„„„„„„„„„„„„„„„„9 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12 第二章 数据库和表 第一节 数据库的创建„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„13 第二节 表的创建„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 第三节 表的维护„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„18 第四节 表的操作„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23 第五节 DB与外部数据的交流„„„„„„„„„„„„„„„„„„„„„„„„„„„„26 第六节 对象的操作„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„27 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„27 第三章 查询 第一节 认识查询„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„28 第二节 创建查询„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„29 第三节 操作查询„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„38 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„38 第四章 窗体 第一节 认识窗体„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„39 第二节 使用向导创建窗体„„„„„„„„„„„„„„„„„„„„„„„„„„„„„40 第三节 自定义窗体„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„41 第四节 美化窗体„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„46 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„46 第五章 报表 第一节 认识报表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„47 第二节 使用向导创建报表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„48 第三节 自定义报表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„49 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„51 第六章 数据访问页 第一节 认识数据访问页„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„52 1/77 NCRE二级Access数据库程序设计讲义(刘春立) 第二节 创建数据访问页„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„52 第三节 编辑数据访问页„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„53 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„53 第七章 宏 第一节 认识„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„54 第二节 宏的创建„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„55 第三节 宏的运行和编辑„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„56 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„56 第八章 模块 第一节 模块的基本概念„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„57 第二节 模块的创建„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„58 第三节 VBA数据类型与数据元素„„„„„„„„„„„„„„„„„„„„„„„„„„59 第四节 VBA流程控制语句„„„„„„„„„„„„„„„„„„„„„„„„„„„„„65 第五节 过程调用与参数传递„„„„„„„„„„„„„„„„„„„„„„„„„„„„73 第六节 变量属性与自定义类型„„„„„„„„„„„„„„„„„„„„„„„„„„„74 第七节 VBA数据库编程„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„75 本章考点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„77 2/77 NCRE二级Access数据库程序设计讲义(刘春立) 序言——带你入门 第一节 课程要求 第二节 认识本门课程 第三节 Access概述 本章考点 第一节 课程要求 一、认真做好课堂笔记 ,(要求:有笔记、有课堂记录。 ,(作用:知识的系统整理、实验依据、复习依据。 二、一定要重视实验课 ,(要求:按时上机、按要求做实验。 ,(作用:理解和巩固理论知识与操作技能。 三、尽量不要缺课 没有不重要的课程。一门课就是一个知识体系,缺课将造成知识断层,导致后面课程理解难度加大。 第二节 认识本门课程 本班级名称: 全国计算机等级考试(NCRE)二级Access数据库程序设计培训班 二级Access是学什么的, 程序设计吗, 编程序吗, 什么是程序设计, 为什么要编程序, 开发软件, 什么是软件开发, 编程序吗, 二级合格以后在专业领域能做什么, 目 录 一、软件开发基本流程 二、NCRE简介 三、本班级知识结构 四、课程安排 五、考试方式和 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 一、软件开发基本流程 ,(软件定义 (1)可行性研究(论证项目是否可行) (2)项目 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 (制定项目实施计划) (3)需求分析(确定项目功能和性能) ,(软件开发 (1)设计:概要设计(设计系统总体结构) 3/77 NCRE二级Access数据库程序设计讲义(刘春立) 详细设计(设计系统实现算法) (2)实现:编码(编写程序代码,编程序) (3)测试:检测并排除软件中潜在的错误 二级合格可做工作:编码 二、NCRE简介 全国计算机等级考试共分四个级别,从一级到四级依次提高: ,(一级 ,(二级 ,(三级 ,(四级 注意:NCRE证书没有时效性,即一旦获得终生有效。 ,(一级 该级别的定位是计算机操作员。主要学习计算机基础操作和常用应用软件的使用。 开考科目: 一级MS Office 一级WPS Office 一级永中Office 一级B (简化版) ,(二级 该级别的定位是计算机程序员。主要学习程序设计初步知识,并掌握一种程序设计语言的使用。 根据应用性质和科目特点,将考试科目分成二级语言程序设计(C、C++、Java、Visual Basic 、Delphi )和二级数据库程序设计(Visual FoxPro、Access)两类。 语言程序设计类工具主要用于通用软件(如文字处理系统、媒体播放器、游戏等)的开发。 数据库程序设计类工具用于管理信息系统(MIS)类软件(如人事管理系统、财务管理系统、图书管理系统、超市经营管理系统、银行储蓄管理系统、列车售票系统、各种医疗诊断系统及医院日常事务管理系统等)的开发。 二级Access主要学习数据库基础知识和程序设计基本技能,合格以后可担任MIS系统操作员和基础开发工作。 ,(三级 该级别的定位是计算机系统管理员及程序员。在二级基础上进一步深入学习计算机某个方向的专业知识。 共分四个专业: 网络技术 数据库技术 软件方向 信息管理技术 PC技术 硬件方向 ,(四级 该级别的定位是计算机工程师。综合学习计算机专业基础知识以及计算机应用项目的分析设计、组织实施的基本技能,相当于计算机专业专科水平。 分三个专业: 网络工程师 数据库工程师 软件测试工程师 三、本班级知识结构 4/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(Access数据库程序设计 主要学习数据库基础知识和操作技能以及程序设计语言的使用和调试知识。 ,(公共基础知识 主要学习与程序设计有关的专业基础知识。二级所有模块均要学习且内容相同。 四、课程安排 ,(第一部分:Access数据库程序设计(20次) 序言和第1章:2次 第2章:3.5次 第3章:3.5次 第4章:3次 第5章:2次 第6、7章:1次 第8章:5次 ,(第二部分:公共基础知识(3次) ,(第三部分:强化训练(寒假以后,8次) 五、考试方式和内容 ,(机试:考查Access程序设计中能够留下操作结果的知识 时间:90分钟 满分:100分 及格:60分 题型:(1)基本操作题(30分,第2章) (2)简单应用题(40分,第3章) (3)综合应用题(30分,第4,,章) ,(笔试:Access程序设计和公共基础知识 时间:90分钟 满分:100分 及格:60分 题型:(1)选择题:70分(2)填空题:30分 其中Access程序设计第8章和公共基础知识各占30分。 第三节 Access概述 一、Access简介 二、Access的特点 三、Access数据库系统结构 四、Access启动和退出 一、Access简介 Access是一种关系型的数据库管理系统,是微软Office套件产品之一。 MIS软件的开发分为前台开发(界面设计和程序设计)和后台开发(数据库设计)两部分。 Access早期版本的前台功能较弱,但后台功能很强,所以一直以来都是主流的中小型数据库后台开发 工具,是Web数据库的最佳选择。 从Access 2000开始,它的前台功能得到加强,目前已经成为一个综合性的数据库开发工具,利用它 可以非常容易的开发出一个功能强大的数据库应用系统。 二、Access的特点 ,(易学易用,功能强大; ,(强大的数据支持能力(多媒体); 5/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(强大的图表与报表快速生成功能; ,(提供 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的数据库接口; ,(与Internet/Intranet的集成; ,(无代码开发; ,(具有较好的集成开发功能。 三、Access数据库系统结构 一个完整的数据库应用系统是由不同的功能部分组成的,在Access中称为数据库对象,不同的部分需要使用不同的工具来实现,所以使用Access开发一个数据库应用系统,就是使用不同的工具创建各种不同的数据库对象。 Access中的数据库对象主要有以下7类: ,(表:用户定义的存储数据的对象,是整个数据库系统的基础与核心。在表中,将数据以行和列的形式保存,类似于电子表格。 ,(查询:根据给定条件在指定的表中筛选记录或对筛选出来的记录进行某种计算或操作的数据库对象。 ,(窗体:又称窗口,是用户与计算机交流的界面。一个完整的软件界面就是由各种功能不同的窗口组成的。 ,(报表:用于将数据库中的数据进行组合、计算、汇总并按照某种 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 送打印机输出到纸张上的对象。 ,(数据访问页:简称页,就是通常说的Web页。用于将Access数据库中的数据发布到因特网上。 ,(宏:一系列操作的集合。实现了程序才能实现的功能。是Access所独有的,所谓无代码开发就是用宏替代程序。 ,(模块:程序的集合。宏只能实现比较简单的功能,若要开发一个功能强大的数据库应用系统,就必须编程序。 这七个对象不是互相独立的,而是有非常密切的联系,其中表是所有对象的基础,若数据库中没有表,则其它对象没有意义。 四、Access启动和退出 与一般软件的启动和退出方法相同。 ,(启动 ,(退出 1(启动 (1)单击“开始”按钮,选择“程序”中的“Microsoft Access”项; (2)双击桌面上的“Microsoft Access”图标; (3)在Windows资源管理器中找到Access程序图标并双击之。 2(退出 (1)单击窗口右上角的“关闭”按钮; (2)选择“文件”菜单中的“退出”项; (3)单击窗口左上角的控制菜单图标,再选择“关闭”项; (4)双击窗口左上角的控制菜单图标。 本章考点 ,(Access的特点; ,(Access数据库的组成(7类对象)。 考试分值: 笔试:2,4分 机试:无 6/77 NCRE二级Access数据库程序设计讲义(刘春立) 第一章 数据库基础知识 第一节 数据处理的发展过程 第二节 数据库相关概念 第三节 数据模型 第四节 关系数据库管理系统 本章考点 第一节 数据处理技术的发展过程 数据处理技术由低级到高级总体上经过了以下三个发展阶段: 一、人工处理阶段 二、文件处理阶段 三、数据库处理阶段 一、人工处理阶段 20世纪50年代中期以前(第一代计算机时期)。 数据管理任务完全由程序设计人员自负其责。 特点:数据与程序无独立性、数据无法共享、数据冗余度高。 二、文件处理阶段 20世纪50年代后期至60年代中后期(第二代和第三代早期计算机) 。 使用操作系统中的文件系统实现数据的处理。 数据以文件为单位进行组织和管理。 特点:数据与程序有一定的独立性、数据可共享、数据冗余度下降。 三、数据库处理阶段 20世纪60年代后期(第三代后期以后)。 使用数据库技术处理数据。 特点:数据与程序高度独立、数据高度共享、数据冗余度低。 根据其实现技术分为以下三种: ,、集中式数据库 数据集中存放在中央主机中。 ,、分布式数据库 数据分布存放在各结点机中。 ,、面向对象数据库 数据库技术与面向对象技术的结合。 第二节 数据库相关概念 一、数据 存储在媒体上能够识别的物理符号。 数据是信息的载体,而信息是数据的内涵,故数据处理就是信息处理。 7/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、数据库 DataBase(DB),存储在计算机存储设计备上的、结构化的相关数据的集合。 数据库与文件的最大区别,就是数据库中的数据必须按照某种固定的格式储存。 三、数据库管理系统 DataBase Management System (DBMS),为数据库的管理(建立、使用和维护)而配置的软件。(属 于系统软件) 例:Access、Vasual Foxpro、Oracle 四、数据库系统 DataBase System(DBS),引进数据库技术后的计算机系统。 组成:硬件平台、软件平台、数据库、数据库管理系统、用户(数据库管理员(DBA)和普通用户)。 DBMS是DBS的核心。 五、数据库应用系统 采用数据库系统资源开发出来的,面向某类实际应用的应用软件系统。 就是各种MIS系统,例如:人事管理系统、图书管理系统、银行储蓄系统 注意: ,、数据库系统的核心 ,、数据库系统的组成 ,、DB、DBMS、DBS之间的关系。 第三节 数据模型 一、相关概念 二、数据模型 三、DB的分类 四、DBMS的分类 一、相关概念 ,、实体:客观存在并且可以相互区别的事物。 例:一个学生、一间教室、一门课程、一次授课、一件商品 ,、属性:实体的静态特征。 例:学生的姓名、年龄,课程的名称和类型 ,、实体型:属性的集合。 学生(学号,姓名,性别,年龄) 商品销售(编号,名称,单价,数量) ,、实体集:同类型实体的集合。 例:学生表、课程表、商品销售表 ,、实体间的联系:两个实体集中实体间的对应关系。根据其复杂程度,分为以下三类: (1)一对一(例:班长和班级) (2)一对多(例:班长和学生) (3)多对多(例:教师和学生) 8/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、数据模型 数据的规划、组织方案。通俗的说就是数据的存储格式。 主要有以下三种: ,、层次模型 ,、网状模型 ,、关系模型 三、DB的分类 采用不同的数据模型储存的数据库,称为不同类型的数据库,主要有以下三类: ,、层次数据库 ,、网状数据库 ,、关系数据库 四、DBMS的分类 DBMS是对数据库进行管理的工具,根据所管理数据库的不同,将DBMS分为以下三类: ,、层次型数据库管理系统 ,、网状型数据库管理系统 ,、关系型数据库管理系统 第四节 关系数据库管理系统 一、关系术语 二、关系的性质 三、关系运算 一、关系术语 ,、关系(表) 一个没有重复行、重复列的二维表,每个关系都有一个关系名。 ,、关系模式(表结构) 关系的结构。 例:学生(学号,姓名,性别,年龄) ,、元组(记录) 关系中水平方向的行。 ,、属性(字段) 关系中垂直方向的列,每个属性必须有一个属性名。 ,、域(有效性规则) 属性的取值范围,不同元组对同一属性的取值所限定的范围。 ,、关键字(主键) 属性或属性的组合,其值能够唯一标识(确定)一个元组。 ,、外部关键字(外键) 如果表的一个字段不是本表的关键字,而是另外一个表的关键字,它就称为外部关键字。 二、关系的性质 ,、关系必须 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化。最基本的要求是每个属性必须是不可分割的。 ,、在同一个关系中不能出现相同的属性名。 9/77 NCRE二级Access数据库程序设计讲义(刘春立) ,、在同一个关系中不允许出现完全相同的元组。 ,、在一个关系中元组的次序无关紧要。 ,、在一个关系中属性的次序无关紧要。 三、关系运算 在关系数据库管理系统中,数据是以关系模式组织的,所以对数据的处理就是对关系(表)的处理, 称为关系运算。 关系运算主要有以下两类: ,、传统的集合运算 ,、专门的关系运算 ,、传统的集合运算 (1)并 (2)交 (3)差 (4)笛卡儿积 (1)并 将两个结构相同关系中的元组合并为一个新关系。 例:有如下两个关系R和S: R S T(R?S) 学号 姓名 学号 姓名 学号 姓名 101 a1 101 a1 101 a1 102 a2 102 a2 102 a2 103 a3 104 a4 103 a3 104 a4 (2)交 将两个结构相同关系中的公共元组筛选出来组织为一个新关系。 例:有如下两个关系R和S: R S T(R?S) 学号 姓名 学号 姓名 学号 姓名 101 a1 101 a1 101 a1 102 a2 102 a2 102 a2 103 a3 104 a4 (3)差 将两个结构相同关系中的公共元组从第一个关系中去除,剩余元组组织为一个新关系。 例:有如下两个关系R和S: R S T(R-S) 学号 姓名 学号 姓名 学号 姓名 101 a3 101 a1 101 a1 102 a2 102 a2 103 a3 104 a4 (4)笛卡儿积 就是集合的乘法运算。将第一个关系中的元组分别与第二个关系中的元组连接成一个新元组,结果 就是新元组的集合。 10/77 NCRE二级Access数据库程序设计讲义(刘春立) 结果关系中的属性包括参加运算的两个关系中的所有属性。 例:有如下两个关系R和S: R S T(R?S) 学号 姓名 学号 姓名 考号 姓名 课号 学分 101 a1 101 a1 101 a1 101 4 102 a2 102 a2 101 a1 102 2 103 a3 104 a4 101 a1 104 3 101 a2 101 4 101 a2 102 2 101 a2 104 3 ,、专门的关系运算 (1)选择 (2)投影 (3)联接 (1)选择 从关系中筛选出满足条件的元组组成新的关系。(行方向) 例:有如下学生关系 学号 姓名 性别 年龄 99101 李小明 男 18 99102 刘明明 男 19 99103 张乐 女 18 99104 王伟华 男 18 99105 马继红 女 20 在表中筛选出18岁的男同学的信息,结果如下: 学号 姓名 性别 年龄 99101 李小明 男 18 99104 王伟华 男 18 (2)投影 从关系中指定若干个属性组成新的关系。(列方向) 例:在表中筛选出学生的年龄信息,结果如下: 姓名 年龄 李小明 18 刘明明 19 张乐 18 王伟华 18 马继红 20 11/77 NCRE二级Access数据库程序设计讲义(刘春立) (3)联接 与笛卡儿积相似,不同的是两个关系必须有公共属性,按照公共属性值相同为条件的将两个关系中的元组连接后组成新的关系。 例:有如下学生关系和选课关系 学号 姓名 性别 年龄 学号 课号 成绩 99101 李小明 男 18 99101 K101 85 99102 刘明明 男 19 99101 K102 79 99103 张乐 女 18 99102 K101 67 99104 王伟华 男 18 99103 K103 92 99105 马继红 女 20 99105 K102 54 筛选出学生姓名及选课成绩信息,结果如下: 学号 姓名 课号 成绩 99101 李小明 K101 85 99101 李小明 K102 79 99102 刘明明 K101 67 99103 张乐 K103 92 99105 马继红 K102 54 本章考点 ,、数据处理技术的发展过程; ,、数据库系统的组成; ,、常用的三种数据模型及特点; ,、实体间的联系类型; ,、关系术语:关系、元组、属性、域、关键字、外键; ,、关系的性质; ,、关系运算(传统的集合运算和专门的关系运算)。 考试分值:笔试:6,10分 机试:无 12/77 NCRE二级Access数据库程序设计讲义(刘春立) 第二章 数据库和表 第一节 数据库的创建 第二节 表的创建 第三节 表的维护 第四节 表的操作 第五节 DB与外部数据的交流 第六节 对象的操作 本章考点 第一节 数据库的创建 在Access中,开发一个完整的数据库应用系统所需的所有元素都包含在数据库中,所以数据库的创建是一切工作的开始。 本节主要有两个问题: 一、数据库的创建 二、数据库的打开与关闭 一、数据库的创建 在Access中,可以使用以下两种方法创建数据库: ,(使用“数据库向导”创建数据库; ,(先建立空数据库,再添加所需对象。 方法,可自动、快速的创建一个功能简单、格式固定的完整数据库应用系统。若欲创建的数据库与系统提供的某一模板数据库相似,则可使用该方法,但实际创建的数据库往往比较复杂,故方法,很少使用,一般常用方法,。 ,(使用“数据库向导”创建数据库 (1)打开“新建”对话框: 启动Access时:在显示出的对话框中选择“Access数据库向导、数据页和项目”,然后单击“确定”按钮。 启动Access后:选择“文件”菜单中的“新建”。 (2)在“新建”对话框中的“数据库”选项卡中选择数据库模板; (3)在“文件新建数据库”对话框中指定所建数据库文件的名称与保存位置; (4)确定自动创建的表中的字段; (5)确定自动创建的窗体与报表的样式; (6)确定数据库应用系统的标题。 例D01:分别在Access启动时和启动后两种情况下,使用数据库向导以“库存控制”与“资产追踪”模板为基础,创建 “产品库存管理” 与“资产管理”数据库,存放在以自己姓名命名的文件夹中。 ,(创建空数据库 (1)打开“文件新建数据库”对话框: 启动Access时:在显示出的对话框中选择“空Access数据库”后单击“确定”按钮。 启动Access后:选择“文件”菜单中的“新建”项(或单击工具栏上的“新建”按钮),在弹出的“新建”对话框中的“常用”选项卡中选择“数据库”项,然后单击“确定”按钮。 (2)在“文件新建数据库”对话框中指定所建数据库的文件名及保存位置。 注意:数据库文件的命名规则与Windows环境下一般文件的命名规则相同,但其扩展名(后缀)为.mdb。 13/77 NCRE二级Access数据库程序设计讲义(刘春立) 例D02:分别在Access启动时和启动后两种情况下,创建两个名为“教学管理” 与“LX”的数据库,存放在以自己姓名命名的文件夹中。 二、数据库的打开与关闭 ,(数据库的打开 ,(数据库的关闭 ,(数据库的打开 (1)启动Access时:启动Access后在显示出的对话框中选择“打开已有文件”按钮,然后在列表框中选择欲打开的数据库。 若列表中不存在打开的数据库,则选择“更多的文件”,然后在出现的“打开”对话框中选择欲打开的数据库文件。 (2)启动Access后:选择“文件”菜单中的“打开”项(或单击工具栏上的“打开”按钮),然后在出现的“打开”对话框中选择欲打开的数据库文件。 (3)在Windows资源管理器中:找到欲打开的数据库文件,双击之。 例D03:分别使用三种方法打开以上所建数据库。 ,(数据库的关闭 数据库打开后将显示一个数据库窗口,关闭窗口就关闭了该数据库,故数据库的关闭与一般窗口的关闭相同,主要有以下四种方法: (1)单击数据库窗口右上角的关闭铵钮; (2)选择“文件”菜单中的“关闭”项; (3)单击数据库窗口左上角的控制菜单图标,从弹出的菜单中选择“关闭”; (4)双击数据库窗口左上角的控制菜单图标。 例D04:分别使用四种方法练习数据库的关闭。 第二节 表的建立 数据库是一个结构化的数据集合,关系数据库就是以关系模式组织的数据库,关系就是表,而表中数据的组织也是有固定的格式的(关系模式,表结构)。 请观察如下学生表中的数据: 由上表可见,Access中的表由结构和数据两部分组成,建立表时要先确定(设计)表的结构,再按照设计结果建立表结构,最后再向表中输入数据。 一、表结构的设计 二、表结构的创建 三、表中数据的输入 四、综合举例 14/77 NCRE二级Access数据库程序设计讲义(刘春立) 一、表结构的设计 表结构就是表头,它直接决定了表中数据以何种格式存储。设计表结构就是分别确定表中所包含字段的字段名、字段类型、字段属性以及表的主键。 本节主要介绍字段名的命名规则和Access所支持的字段类型。 ,(字段名的命名规则 ,(Access字段类型 ,(字段名的命名规则 (1)可以是汉字、字母、数字、空格及特殊字符的任意组合,但不能用句号,感叹号,重音符号和方括号等; (2)不能以空格或控制符号开头; (3)不超过64个字符。 ,(Access字段类型 字段类型就是字段中存储数据的类型,即该字段将能存储什么性质的数据。 Access常用的数据类型有以下10种: (1)文本型:用于保存字符串,最多255个字符(默认50),是Access字段默认的数据类型。例:姓名、性别 (2)备注型:用于保存解释性的长度较大的字符串。例:简历 (3)数字型:用于保存能够进行算术运算的数值数据(涉及货币计算的除外)。例:年龄、成绩 又分为以下几类: 类型 取值范围 小数 长度 字节 0,255 无 1 整型 -32768,32767 无 2 长整型 -2147483648, 2147483648 无 4 3838单精度型 4 4 -3.4× 10, 3.4× 10 308308双精度型 8 8 -1.79734×10,1.79734×10 (4)货币型:用于存储货币数据。Access会根据用户输入的数据自动添加货币符号和千位分隔符。例:工资 (5)日期/时间型:用于存储日期、时间或日期时间组合的。具体格式可由用户自己选择。例:入校日期6)自动编号型:其值由Access自动按照记录添加时的顺序指定一个唯一的顺序编号(不允许用户输入( 或改变其值)。 一个表中只能有一个该类型字段。 (7)是/否型:用于存储逻辑判断的结果。例:团员否、婚否 (8)OLE对象型:用于存储比较特殊的多媒体数据,如图形、图像、音频、视频、动画及其他软件的文件内容。例:照片 (9)超级链接型:存储超级链接地址。如常用的网址或Email地址。例:博客(10)查询向导型:用于输入值比较固定的数据,数据输入时使用列表框或组合框从列表中选择输入,而列表内容由用户创建时指定。例:性别、学历 注意: 对于某一数据而言,可以使用的数据类型可能有多种,可根据字段的用途和性质来选择一种最合适的类型。 例如“学生编号”字段,既可定义为文本型也可以是数字型,但该字段数据不进行算术运算,反而经常进行截取、连接等文本运算,故定义为文本型。 15/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、表结构的创建 在Access中,表结构的建立主要有以下三种方法: ,(使用“设计”视图创建 ,(使用“数据表”视图创建 ,(使用表向导创建 ,(使用“设计”视图创建 (1)在数据库窗口中选择“表”对象; (2)打开表设计视图: 单击数据库窗口中的“新建”按钮,在弹出的“新建表”对话框中选择“设计视图”,然后单击“确定”按钮。 也可直接双击右侧对象窗口中的“使用设计器创建表”项。 (,)在打开的设计视图中依次指定字段名、字段类型、字段属性、主键等内容; (4)保存。 选择“文件”菜单中的“保存”项(或工具栏中的“保存”按钮),在弹出的“另存为”对话框中指定新表的名称,然后单击“确定”按钮。 注意:此方法可以建立完整的表结构,为常用方法。 例B01:使用表设计视图在“教学管理”数据库中创建一个“学生”表,其结构如下: 字段名 字段类型 长度 学生编号 文本 6 姓名 文本 5 性别 查询向导 2 年龄 字节 入校日期 日期,时间 团员否 是否 简历 备注 照片 OLE对象 ,(使用“数据表”视图创建 (1)在数据库窗口中选择“表”对象; (2)打开数据表视图: 单击数据库窗口中的“新建”按钮,在弹出的“新建表”对话框中选择“数据表视图”,然后单击“确定”按钮。 也可直接双击右侧对象窗口中的“通过输入数据创建表”项。 (3)指定表中各字段的字段名; 依次双击各字段的默认字段名,然后输入新字段名。 (4)保存(方法,相同)。 注意:此方法建立的表结构中所有字段的类型都为“文本”型,属性默认,往往与实际需求不符,故创建后一般需要在“设计”视图中进行修改。 例B02:使用数据表视图在“教学管理”数据库中创建一个“课程”表,其中包含“课程编号”、“课程名称”、“课程类别”和“学分”字段。 ,(使用表向导创建 (1)在数据库窗口中选择“表”对象; (2)启动表向导: 单击窗口中的“新建”按钮,在弹出的“新建表”对话框中选择“表向导”,然后单击“确定”按钮。 16/77 NCRE二级Access数据库程序设计讲义(刘春立) 也可直接双击右侧对象窗口中的“使用向导创建表”项。 以后根据向导提示逐步操作即可,其中主要包括以下两步: (3)选择模板表及字段; (4)指定新建表的名称及主键等信息。 注意:该方法用于欲创建的表结构与某一模板表的结构相似,可自动、快速的创建表结构,但创建的表结构往往与实际需求不符,故创建后一般需要在“设计”视图中进行修改。 例B02:使用表向导在“教学管理”数据库中创建一个“教师”表,其中包含“教师编号”、“姓名”、“性别”、“工作时间”、 “学历”、“职称”、和“电话号码”字段。 三、表中数据的输入 ,(在“数据表”视图中打开欲输入数据的表:在数据库窗口中选择欲打开的“表”对象,双击之(或单击“打开”按钮)。 ,(输入数据; ,(保存(与表结构的保存方法相同)。 注意:各种类型数据的输入方法如下: ,(文本型和备注型:直接输入。 ,(数字型:直接输入(注意各类型的取值范围)。 ,(日期,时间型:直接输入,但年、月、日之间用符号“-”或“/”分隔,且必须合法。 ,(货币型:直接输入数值,货币符号和千位分隔符自动输入。 ,(自动编号型:系统按记录输入的顺序自动编号输入,且不允许改变。 ,(是/否型:选中(打钩)为“是”,未选中为“否”。 ,(超级链接型:直接输入,必须是一个网页地址或EMail地址。 ,(OLE对象型:选中输入字段,选择“插入”菜单中的“对象”(或右击,选快捷菜单中的“插入对象”),在弹出的“插入对象”对话框中指定插入文件并单击“确定”按钮。 OLE对象的输入分嵌入和链接,默认为嵌入,若指定链接,请选中“链接”项。 嵌入是将源文件中数据的副本添加到当前表中,所以当源文件中数据改变时不影响表中数据。 链接是将源文件的地址保存在表中,打开时根据地址查找数据并打开,故表中数据随着源文件的改变而变化。 ,(查询向导型:在组合框中选择输入或直接输入。 用于其值较为固定的字段,如“教师”表中的“性别”、“学历”、“职称”等字段。创建时须指定其列表值(来源于其它表或自行输入)。 例B04:在前面所建表中输入数据。 四、综合举例 例B05:在“教学管理”数据库中按照指定结构创建以下四个表并输入数据。 班级: 字段名 字段类型 长度 班级编号 文本 6 班级名称 文本 8 专业 文本 4 创建时间 日期,时间 教室 文本 4 班长 文本 8 辅导员 文本 5 备注 备注 照片 OLE对象 17/77 NCRE二级Access数据库程序设计讲义(刘春立) 专业: 字段名 字段类型 长度 专业编号 文本 4 专业名称 文本 10 专业类别 查阅向导 3 毕业学分 字节 院系 文本 2 创建时间 日期,时间 学科带头人 文本 5 备注 备注 院系: 字段名 字段类型 长度 院系编号 文本 2 院系名称 文本 10 创建时间 日期,时间 系主任 文本 5 办公室 文本 4 系办电话 文本 15 备注 备注 选课: 字段名 字段类型 长度 学生编号 文本 8 课程编号 文本 4 教师编号 文本 5 成绩 单精度 第三节 表的维护 一、表的打开与关闭 二、修改表的结构 三、编辑表的内容 四、调整表的外观 五、设置表间关系 一、表的打开与关闭 ,(表的打开 ,(视图的切换 ,(表的关闭 ,(表的打开 一个表包括结构和数据两部分,表打开后既可以编辑数据,也可以编辑结构,前者称为数据表视图, 后者称为设计视图。 (1)数据表视图 18/77 NCRE二级Access数据库程序设计讲义(刘春立) ?选择要打开的表,单击“打开”按钮; ?双击要打开的表。 (2)设计视图 选择要打开的表,单击“设计”按钮。 例B06:分别使用不同的方法打开“教学管理”数据库中的“学生”表。 ,(视图的切换 以下方法任选其一: (1)选择“视图”菜单中的相应菜单项; (2)单击数据库窗口中的“设计”按钮或“打开”按钮; (3)单击工具栏中的“视图”按钮; (4)右击当前视图标题栏,选择相应菜单项。 例B07:分别使用不同的方法实现“学生”表两种视图的切换。 ,(表的关闭 与一般窗口的关闭方法相同,以下四种方法任选其一: (1)单击窗口右上角的关闭按钮; (2)双击窗口左上角的控制菜单图标; (3)单击窗口左上角的控制菜单图标,在下拉菜单中选择“关闭”项; (4)选择“文件”菜单中的“关闭”项。 例B08:分别使用不同的方法关闭打开的“学生”表。 二、修改表结构 表结构的修改主要在“设计”视图中进行,包括以下内容: ,(字段的添加 ,(字段的删除 ,(字段的修改 ,(主键的设置 ,(综合练习 ,(字段的添加 字段可以添加在表中的任意位置,主要有以下三种方法: (1)选定插入位置,然后选择“插入”菜单中的“行”; (2)选定插入位置,单击工具栏上的“插入行”按钮; (3)右单击插入位置,选择“插入行”。 注意:“插入位置”为插入的新字段的后一字段。 ,(字段的删除 可以一次删除一个字段,也可以一次删除多个字段。主要有以下三种方法: (1)选定欲删除字段,然后选择“编辑”菜单中的 “删除行”; (2)选定欲删除字段,然后单击常用工具栏上的“删除行”按钮; (3)右单击删除字段,选择“删除行” 。 注意:在Access中,数据一旦删除将无法恢复,所以往往会提示是否删除,根据需要选择即可。 ,(字段的修改 字段的修改包括字段重命名、字段类型的更改和字段属性的设置。前两项直接修改即可,这里重点介 绍字段属性的设置。 (1)格式:用于设置当前字段的显示和打印格式,不影响数据的存储。 (2)输入法模式:用于确定当用户将插入点移至字段时,打开还是关闭中文输入法控制。 (3)输入掩码:是一种输入格式,由字面显示字符和掩码字符组成,用于定义数据的输入格式。主要用 于“文本”和“日期/时间”型数据。 19/77 NCRE二级Access数据库程序设计讲义(刘春立) (4)标题:字段在显示时的列标题,若不指定,则显示字段名。 (5)有效性规则和有效性文本: ?有效性规则:用来限制输入数据所必须遵守的规则,限制字段的取值范围,确保输入数据的合理性。 ? 有效性文本:当输入的数据不符合有效性规则时,系统将提示的出错信息。 (6)默认值:字段默认输入的内容。 (7)必填字段:指定字段内容是否必须填写。 ,(主键的设置 主键即关键字,是能唯一标识表中一条记录的字段或字段组合。在表中,主键的值唯一且不能有空值,故表中定义了主键后,就可以避免出现完全相同的记录,这称为实体完整性。 在Access中,有三种类型的主键:自动编号主键、单字段主键和多字段主键(复合主键)。 主键的创建主要有以下两种情况: (1)自动定义自动编号主键 (2)在“设计”视图中定义任意类型主键 (1)自动定义自动编号主键 建立表结构时若未设置主键,则保存时会提示建立主键(自动编号主键) 。若表中有自动编号型字段,则自动定义该字段为主键;若表中无自动编号型字段,则自动添加一个自动编号型字段,并定义该字段为主键。 (2)在“设计”视图中定义任意类型主键 打开表的“设计视图”,选择要设置为主键的字段(可以用Ctrl选择多个字段),然后选用以下三种方法之一: ?选择“编辑”菜单中的“主键”项; ?单击工具栏中的“主键”按钮; ?右击该字段,选择“主键”项。 注意: (1)主键的取消与设置方法相同; (2)一个表中只能有一个主键,当设置了新主键后,原来的设置自动取消。 ,(综合练习 例B09:根据指定内容修改“教学管理”数据库中“学生”表、“教师”表和“课程”表的结构并根据实际情况设置字段属性。 学生: 字段名 字段类型 长度 字段名 字段类型 长度 8 5 学生编号 文本 国籍 文本 5 20 姓名 文本 通讯地址 文本 1 EMail 20 性别 查询向导 文本 5 15 民族 文本 电话 文本 出生日期 日期/时间 毕业 是否 4 政治面貌 查询向导 备注 备注 6 籍贯 文本 照片 OLE对象 20/77 NCRE二级Access数据库程序设计讲义(刘春立) 教师: 字段名 字段类型 长度 字段名 字段类型 长度 教师编号 文本 5 院系 文本 2 姓名 文本 5 基本工资 货币 性别 查询向导 1 职位状态 查阅向导 , 民族 文本 5 籍贯 文本 6 出生日期 日期/时间 国籍 文本 5 工作时间 日期/时间 通讯地址 文本 20 政治面貌 查询向导 4 EMail 文本 20 婚否 是否 电话 文本 15 学历 查询向导 3 简历 备注 职称 查询向导 3 照片 OLE对象 职务 文本 5 课程: 字段名 字段类型 长度 课程编号 文本 6 课程名称 文本 10 课程类别 查询向导 3 先修课 文本 6 学时 字节 学分 字节 例B10:给前面所建的所有表设置主键。 三、编辑表的内容 表内容的编辑必须在数据表视图中进行,包括数据的定位、选择、修改、添加和删除。 ,(记录的定位 ,(记录的选择 ,(数据的修改 ,(记录的添加 ,(记录的删除 ,(记录的定位:选择一条记录作为当前使用的记录。 (1)使用记录号:在“数据表”视图的记录编辑框中输入要查找记录的记录号按回车键。 (2)使用快捷键:教材P69。 ,(记录的选择:教材P69-70。 ,(数据的修改:和输入的操作方法相似。 ,(记录的添加 (1)选择“插入”菜单中的“新记录”; (2)单击工具栏上“新记录”按钮; (3)右击记录选定器,选择“新记录”; (4)直接在尾部输入。 注意:在Access中,记录只能在尾部添加,不能在中间插入。 21/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(记录的删除 选择要删除的记录,然后选用以下三种方法之一: (1)选择“编辑”菜单中的 “删除记录”; (2)单击工具栏上“删除记录”按钮; (3)右击记录选定器,选择“删除记录”。 例B11:在“学生”表中分别使用以上三种方法练习记录的删除。 四、调整表的外观 表的外观就是表在“数据表”视图中显示时的外观属性。 ,(设置字段显示次序 ,(设置列宽和行高 ,(隐藏列 ,(冻结列 ,(设置数据表显示格式 ,(设置数据表显示字体 ,(设置字段显示次序 字段的默认显示次序为结构设计时的次序,可以在数据表视图中重新设置。方法如下: 选定字段,拖动到新的位置。 ,(设置列宽和行高 (1)设置列宽(字段显示宽度) ?拖动字段之间的垂直网格线到适当的位置; ? 右击字段名,在快捷菜单中选择“列宽”,在弹出的“列宽”对话框中输入列宽值; ? 选中字段,选择“格式”菜单中的“列宽”项,在弹出的“列宽”对话框中输入列宽值。 (2)设置行高(记录显示高度) ?拖动记录之间的水平网格线到适当的位置; ?右击记录选定器,在快捷菜单中选择“行高”,在弹出的“行高”对话框中输入行高值; ?选择“格式”菜单中的“行高”项,在弹出的“行高”对话框中输入行高值。 ,(隐藏列 (1)隐藏列 选定欲隐藏的字段,选择“格式”菜单中的“隐藏列”(或右击菜单中的“隐藏列” )。 (2)取消隐藏列 选择“格式”菜单中的“撤消隐藏列”,在对话框中选择相应列,则取消相应列的隐藏。 ,(冻结列 (1)冻结列 选定欲冻结的字段,选择“格式”菜单中的“冻结列”(或右击菜单中的“冻结列” )。 (2)取消列的冻结 选择“格式”菜单中的“取消对所有列的冻结” 。 ,(设置数据表显示格式 选择“格式”菜单中的“数据表”项(或右击标题栏,选择快捷菜单中的“数据表” 项),然后在对话框中设置合适的格式。 主要显示格式有:单元格效果、背景颜色、网格线显示方式、网格线颜色等。 ,(设置数据表显示字体 选择“格式”菜单中的“字体”(或右击标题栏,选择快捷菜单中的“字体” 项) ,然后在对话框中设置合适的字体、字型、字号、下划线和颜色等。 例B12:按照客观情况和个人喜好调整以上所建表的外观。 22/77 NCRE二级Access数据库程序设计讲义(刘春立) 五、设置表间关系 在表中,一个记录就是一个实体,所以一个表就是一个实体集。表间关系就是两个实体间的联系。 表间关系是根据两个表间的公共字段建立的(一般字段名相同或字段内容相同)。 ,(关系的创建 ,(关系的编辑 ,(参照完整性的意义 ,(关系的创建 (1)关闭所有相关的表;(注意) (2)选择“工具”菜单中的“关系”项(或单击工具栏上的“关系”按钮),打开“关系”窗口; (3)打开“显示表”对话框(首次自动显示,以后选择右键快捷菜单中的“显示表”项)并添加需要建立关系的表; (4)将表中相关字段拖动到另一表中的相关字段上; (5)在“编辑关系”对话框中设置关系属性并单击“创建”按钮; (6)保存。 ,(关系的编辑 (1)添加表 选择“关系”菜单(或右击快捷菜单)中的“显示表”项,或单击工具栏上的“显示表”按钮,在打开的“显示表”对话框中直接添加。 (2)隐藏表 选定欲隐藏的表,然后选择“关系” 菜单(或右击快捷菜单)中的“隐藏表” 项。 (3)关系的删除 选定欲删除的关系,然后选择“编辑”菜单(或右击快捷菜单)中的“删除”项 。 (4)设置关系属性 主要是“参照完整性”的设置。 选择“关系”菜单(或右击快捷菜单)中的“编辑关系” 项,在打开的“编辑关系”对话框中直接设置。 ,(参照完整性的意义 两个表按照相关字段建立关系后,联系类型或为“一对一”或为“一对多”,其中“一”的一方为主表,另一方为子表。 如果在创建时同时指定了“实施参照完整性”,则子表中的相关字段值必须是在主表中存在的,否则拒绝接受。 “级联更新相关字段”的意义是:子表中的相关字段值将随主表的改变而改变。 “级联删除相关记录”的意义是:主表中的记录删除时,子表中与该记录相关的记录也随着一起删除。 例B13:建立前面所建“教学管理”数据库中各表之间的关系。 第四节 表的操作 一、数据的查找和替换 二、记录的排序 三、记录的筛选 一、数据的查找和替换 ,(查找 (1)选定查找字段; (2)打开“查找”对话框:右击、工具栏、菜单; 23/77 NCRE二级Access数据库程序设计讲义(刘春立) (3)指定查找内容、查找范围、匹配方式与搜索方式,然后单击“查找下一个”按钮。 注意:通配符的意义。 ,:通配任意多个字符 ,:通配任意一个字符 ,:通配任意一个数字字符 例B14:在“教师”表中查找所有的教授信息。 例B15:在“教师”表中查找所有姓“李”的教师。 ,(替换 与查找不同之处:指定替换内容。 例B16:将“教师”表中所有教授的政治面目修改为“民盟”。 二、记录的排序 根据表中某些字段的值的大小对表中记录的顺序重新排列。 根据字段值的排列方式,分为升序(由小到大)和降序(由大到小)。 ,(排序规则 ,(单字段排序 ,(多字段排序 ,(取消排序 ,(排序规则 (1)文本型按ASCII码值大小排序; (2)中文按其拼音字母的ASCII码值大小排序; (3)数字型按数值大小排序; (4)日期时间型按时间先后排序(前小后大); (5)是否型:“是”小“否”大; (6)空值最小。 注意:备注型、超级链接型或OLE对象型字段不能排序。 ,(单字段排序 选定待排序字段,然后选用以下三种方法之一: (1) 选择“记录”菜单中的“排序”项,再选择“升序”或“降序”; (2)单击工具栏上的“升序”或“降序”按钮; (3)右单击选定的字段,在快捷菜单中选择“升序”或“降序”。 例B17:分别按姓名、性别、年龄和入校日期字段对“学生”表的记录进行排序。 ,(多字段排序 (1)使用数据表视图 选定待排序的多个字段,下面与单字段排序相同。 例B18:按“学历”和“职称”对“教师”表中的记录进行排序。 (2)使用“高级筛选/排序”窗口 ?选择“记录”菜单中的“筛选”,再选择“高级筛选/排序” ; ?在出现的筛选窗口中指定排序字段和排序方式; ?最后选择“筛选”菜单中的“应用筛选/排序” (或单击工具栏上的“应用筛选”按钮,或右单击 筛选窗体标题栏,选择“应用筛选/排序” )。 例B19:按“院系”和“性别”对“教师”表中的记录进行排序。 ,(取消排序 排序的结果会保留,表关闭后,下次打开时仍然有效。 以下方法可取消排序: (1)按照新的规则排序后,原来的排序结果自动取消; 24/77 NCRE二级Access数据库程序设计讲义(刘春立) (2)选择“记录”菜单中的“取消筛选,排序”(或右击数据表标题栏,选择“取消筛选,排序”)。 例B20:取消以上排序结果。 三、记录的筛选 将表中满足某种条件的记录挑选出来,而将不满足条件的记录隐藏起来。 共有以下4种方法: ,(按选定内容筛选 ,(按窗体筛选 ,(按筛选内容筛选 ,(高级筛选注意: 记录的筛选操作必须在数据表视图中进行。 ,(按选定内容筛选 (1)功能 按照单个字段与选定内容等值为条件筛选。 (2)方法 选定筛选内容,然后以下三种方法任选其一: ?选择“记录”菜单中的“筛选”,再选择“按选定内容筛选”; ?单击工具栏上的“按选定内容筛选”按钮; ?右击选定内容,选择“按选定内容筛选”。 例B21:查询所有的男同学信息。 注意:筛选的取消方法与排序相同。 ,(按窗体筛选 (1)功能 按照多个字段与指定内容等值为条件筛选。 (2)方法 ?选择“记录”菜单中的 “筛选”项,再选择“按窗体筛选”(或单击工具栏上的“按窗体筛选”按 钮,或右击“数据”表视图标题栏,选择“按窗体筛选” ); ?在出现的窗体中设置筛选条件; ?最后选择“筛选”菜单中的 “应用筛选/排序”(或单击工具栏上的“应用筛选”按钮,或右击筛选 窗体标题栏,选择“应用筛选/排序” )。 例B22:查询所有的女团员学生信息。 ,(按筛选内容筛选 (1)功能 按照单个字段的任意条件筛选。 (2)方法 右击筛选字段的任一位置,在筛选目标文本框中输入筛选条件,按Enter键。 例B23:查询1980年以前参加工作的所有教师信息。 ,(高级筛选 (1)功能 按照多个字段的任意条件筛选。 (2)方法 ?选择“记录”菜单中的 “筛选”,再选择“高级筛选/排序” ; ?在出现的筛选窗体中设置筛选准则和排序方式; ?最后选择“筛选”菜单中的 “应用筛选/排序”(或单击工具栏上的“应用筛选”按钮,或右击筛选 窗体标题栏,选择“应用筛选/排序” )。 例B23:查询1980年以前参加工作的所有女教授信息。 25/77 NCRE二级Access数据库程序设计讲义(刘春立) 第五节 DB与外部数据的交流 一、导入外部数据 二、链接外部数据 三、导出数据 一、导入外部数据 将符合Access要求的其它数据库或文件中的数据制作一个副本添加在当前数据库中的某个表中或独立生成一个表。导入的数据与源文件没有任何关系,故其中一方数据的改变不影响另一方。 (1)在数据库窗口中选择“表”对象; (2)选择“文件”菜单中的“获取外部数据”再选“导入”(或单击数据库窗口中的“新建”按钮,在弹出的“新建表”对话框中选择“导入表”,然后单击“确定”按钮。) (3)在弹出的“导入”对话框中选择欲导入的文件; (4)以后根据向导提示分别指定导入对象和属性以及是导入到已有表中还是生成新表。 例B24:将“教学管理”数据库中所建的表导入到“LX”数据库中。 例B25:将一个文本文件或Excel表格中的数据导入到“LX”数据库中。 二、链接外部数据 将符合Access要求的其它数据库或文件中的数据链接到当前数据库中并生成一个新表。新表中储存的是源文件中数据的地址,故源文件中数据与链接表中的数据同步动态变化。 (1)在数据库窗口中选择“表”对象; (2)打开链接对话框; 选择“文件”菜单中的“获取外部数据”再选“链接表”。 或单击数据库窗口中的“新建”按钮,在弹出的“新建表”对话框中选择“链接表”,然后单击“确”按钮。 定 (3)在弹出的“链接”对话框中选择欲链接的文件; 4)以后根据向导提示分别指定链接对象和属性以及生成新表的名称。 ( 例B26:将一个文本文件或Excel表格中的数据链接到“LX”数据库中。 三、导出数据 将当前数据库中的数据制作一个副本添加到另外一个数据库中或独立生成一个其它类型的外部新文件。 ,(在数据库窗口中选择欲导出的对象; ,(选择“文件”菜单中的“导出”项; ,(在弹出的“导出为”对话框中导出后的对象名(另一数据库)或文件名(独立文件)及文件类型和保存位置。 例B27:建立一个“备份”数据库,将“教学管理”数据库中的所有表导出到该数据库中,名称不变。 例B28:将“教学管理”数据库中的“学生”表中的数据分别导出到一个同名的文本文件和Excel文件中。 26/77 NCRE二级Access数据库程序设计讲义(刘春立) 第六节 对象的操作 一、对象的备份 ,、选定欲备份对象; ,、下列方法任选其一: (,)右键快捷菜单中选“复制”; (,)单击工具栏中的“复制”按钮; (,)选择“编辑”菜单中的“复制”项; ,、下列方法任选其一: (,)右键快捷菜单中选“粘贴”; (,)单击工具栏中的“粘贴”按钮; (,)选择“编辑”菜单中的“粘贴”项; ,、在出现的对话框中输入备份对象名称,单击“确定”按钮。 二、对象的删除 ,、选定欲删除对象; ,、下列方法任选其一: (,)右键快捷菜单中选“删除”或“剪切”; (,)单击工具栏中的“删除”按钮; (,)选择“编辑”菜单中的“删除”或“剪切”项; 三、对象的更名 ,、选定欲更名对象; ,、下列方法任选其一: (,)单击欲更名对象; (,)右键快捷菜单中选“重命名”; (,)选择“编辑”菜单中的“重命名”项; ,、输入新对象名。 本章考点 ,(Access的数据类型; ,(表结构的创建: “设计”视图和“数据表”视图; ,(表结构的修改:字段的添加、删除、修改(字段名、类型与属性)和主键的设置; ,(记录的添加(“数据表”视图) ; ,(外部数据的导入和链接; ,(记录的删除; ,(调整表的外观:字段次序,列宽与行高,隐藏列与冻结列,显示格式与字体; ,(表间关系的创建; ,(数据的查找与替换(统配符的使用); 10(记录的排序与筛选; 11(对象的操作:备份、删除与更名。 考试分值:笔试:6,10分 机试:30,35分 27/77 NCRE二级Access数据库程序设计讲义(刘春立) 第三章 查 询 第一节 认识查询 第二节 创建查询 第三节 操作查询 本章考点 第一节 认识查询 一、为什么使用查询 二、什么是查询 三、查询的功能 四、查询的实质 五、查询的分类 六、查询的视图 七、查询与表的关系 一、为什么使用查询 表是数据库中存储原始数据的对象,是数据库的核心。 因为要解决关系规范化和数据冗余的问题,所以数据库中的数据往往被分别存储在不同的表中。 但在多数情况下,我们只想得到某个表中的部分数据,或者要使用的数据分布于不同的表中,或者希望得到的信息是对表中原始数据进行某种运算的结果。 二、什么是查询 查询是能够将存储于一个或多个表中符合要求的数据挑选出来,并对挑选的结果按照某种规则进行运算的对象。 三、查询的功能 ,(按条件查找表中数据; ,(对表中数据进行汇总和统计; ,(自动批量修改表中数据; ,(自动批量的向表中添加记录或删除记录; ,(根据查询结果生成新的数据表; ,(多表协同操作。 四(查询的实质 查询的实质是对表中数据进行选取和运算的方法与规则,其实是一个关系运算,存储为一个SQL查询语句。 SQL就是结构化查询语言。它是ISO制定的标准数据库语言,多数DBMS均支持它,Access也不例外。 SQL查询语句就是根据某种规则对表中数据进行选取和运算的语句。 运行查询就是执行该查询存储的SQL语句。结果以表的形式显示,但并不生成真正的表(虚表),仅供使用。关闭查询后,结果将不存在。 28/77 NCRE二级Access数据库程序设计讲义(刘春立) 五、查询的分类 ,(选择查询:根据某种规则选取表中数据,并对选取的数据进行简单计算。 ,(交叉表查询:对表中数据进行分类并显示分类后某类数据的明细值。 ,(操作查询:自动执行一个对表中数据进行某个特定功能的操作。 ,(参数查询:在执行时临时指定查询条件以适应不同查询需求的查询。 ,(SQL查询:通过直接输入SQL语句创建的查询。 六、查询的视图 显示查询的不同内容的窗口。 ,(设计视图:用于设计(创建和编辑)查询。 ,(数据表视图:以表的形式显示查询执行的结果。 ,(SQL视图:用于查看或编辑查询时所用到的SQL语句。 注意:视图的切换方法与表相同。 七、查询与表的关系 查询的实质是关系运算,而表是查询的数据源,是运算对象,是查询的基础。故若表不存在,则查询 也就失去了存在的意义。 第二节 创建查询 一、创建选择查询 二、创建交叉表查询 三、创建参数查询 四、创建操作查询 五、创建SQL查询 一、创建选择查询 ,(无条件选择查询 ,(有条件选择查询 ,(查询准则 ,(计算型选择查询 ,(无条件选择查询 将表中某些字段的内容挑选出来。若查询字段只来源于一个表,则属于典型的投影运算,否则就是联 接运算。 主要有以下两种创建方法: (1)查询向导 (2)设计视图 (1)查询向导 ?启动简单查询向导:单击数据库窗口中的“新建”按钮,在弹出的“新建查询”对话框中选择“简单查 询向导”(或直接双击对象列表窗口中的“使用向导创建查询” ); ?指定查询数据源(可以是多个表或查询,此时则为联接运算)及字段; ?指定查询的标题(名称)。 例,:查询学生的年龄信息,要求只显示学生编号、姓名和年龄,查询名称为L01。 例,:查询教师的政治面目信息,要求只显示教师编号、姓名、性别和政治面目,查询名称为L02。 例,:查询学生的选课成绩信息,要求只显示学生编号、姓名、所选课程名和成绩,查询名称为L03。 29/77 NCRE二级Access数据库程序设计讲义(刘春立) 注意:若查询数据源为多个表或查询,则多个表之间必须已建立关系。 (2)设计视图 ?打开查询设计视图:单击数据库窗口中的“新建”按钮,在弹出的“新建查询”对话框中选择“设计视图”(或直接双击对象列表窗口中的“在设计视图中创建查询” ); ?在“显示表”对话框中选择查询数据源; ?分别在“字段”与“排序”行中指定查询字段(双击、拖动或在组合框中选择)和排序方式?保存并指定查询名称。 注意:“显示表”对话框的使用方法与前面相同 例,:用设计视图重建例,并将结果按照“年龄”升序;重建例,并将结果按照“政治面目”升序;重建例,并将结果按照“学生编号”升序、“成绩”降序,查询名称分别为L04_1、L04_2和L04_3 。 例,:查询学生的选课信息,要求只显示学生编号、姓名、所选课程编号、课程名、课程类别和学分,查询名称为L05。 注意:字段列表中的“,”表示所有字段。 ,(有条件选择查询 将表中符合条件的记录的某些字段挑选出来。 只能使用设计视图创建,方法与无条件选择查询基本相同,只是需要在查询设计视图中设置查询准则(条件)。 查询准则在“准则”和“或”行中设置。 例,:查询女学生信息,并将结果按照“入校日期”升序,查询名称为L06。 例,:查询女学生的年龄信息,要求只显示学生编号、姓名和年龄,并将结果按照“年龄”降序,查询名称为L07。 注意:若某一字段只用于准则表达式的构建而非查询内容,则可设置为不显示。 “显示”行的作用是指定所选字段是否在查询结果中显示。 例,:查询20岁以下女学生信息,查询名称为L08。 例,:查询选修了“C程序设计”的学生基本信息,查询名称为L09。 例10:查询选修“数据结构”并及格的学生成绩信息,要求只显示学生编号、姓名和成绩,并将结果按照成绩升序排序,查询名称为L10。 例11:查询18岁和23岁学生信息,查询名称为L11。 注意:当查询准则由多个条件构成时,若之间是逻辑“与”的关系,则必须在“准则”或“或”一行中设置;若是逻辑“或”的关系,应分别在“准则”和“或”两行中设置。 例12:查询18岁和23岁女学生信息,查询名称L12。 例13:查询经济系的教授和群众信息,查询名称为L13。 ,(查询准则 用来在表中选取所需记录的限制条件,所以又称查询条件,一般是一个表达式,称为准则表达式。 准则表达式是一个由运算符、数据、和函数组合而成且能够计算出一个结果的式子。 ,)数据的表示方法 ,)运算符的使用规则 ,)常用内部函数的语法 ,)数据的表示方法 (1)数字型:直接表示。例:28、-3.287 (2)文本值:用双引号(")或单引号(')括起来。例:"陈江川"、'男' (3)日期型:用#括起来。例:#2006-10-25# 例14:查询1998年9月1日入校的学生信息,查询名为L14。 (4)是否型:逻辑真值为True,逻辑假值为False。 例15:分别建立查询团员与非团员学生信息的查询,查询名为L15_1和L15_2。 (5)空值表示为:is Null 30/77 NCRE二级Access数据库程序设计讲义(刘春立) 非空值表示为:is Not Null 例16:分别建立查询无职称和有职称的教师信息,查询名为L16_1和L16_2。 (6)对象名和字段名:用方括号(,,)括起来,且对象名与字段名之间必须用感叹号(!)分隔。 例:[年龄]、[学生]![姓名] (7)所有运算符都必须在英文半角状态下输入。 ,)运算符的使用规则 运算符是表达式的灵魂,系统主要提供了以下几类运算符: (1)算术运算符 (2)文本运算符 (3)日期运算符 (4)比较运算符 (5)逻辑运算符 (6)特殊运算符 (1)算术运算符 +(加)、-(减) Mod(取余) \(整除) *(乘)、/(除) -(取负) ^(幂) 由算术运算符构成的表达式称为算术表达式,其运算结果为数字型。 算术运算符的优先级共分,个级别,由低到高如箭头所示。 (2)文本运算符 又称为字符串运算符,其功能是将两个字符串连接成一个字符串,所以也称字符串连接运算符,共有 两个:+、&。 前者要求两个运算量必须是文本型,而后者会自动将非文本型运算量转换为文本型。 由文本运算符构成的表达式称为文本表达式(或字符串表达式),运算结果为文本型。 例:“计算机”+“原理”结果为:“计算机原理” “年龄:”&23结果为:“年龄:23” 例17:查询20岁的女学生信息,查询名为L17。 文本运算符的优先级低于算术运算符。 (3)日期运算符 由日期运算符(+、-)构成的表达式称为日期表达式,其主要有以下两种格式: 格式一:日期 ? 整数 结果是该日期整数天之前或之后的新日期 格式二:日期 – 日期 结果是两个日期相隔的天数 (4)比较运算符 比较运算符的作用是判断两个数据间的某种关系是否成立,故又称关系运算符。 >(大于)、>=(大于或等于) <(小于)、<=(小于或等于) =(等于)、<>(不等于) 由比较运算符构成的表达式称为关系表达式,其运算结果为是否型(逻辑型)。 比较运算符的优先级低于算术运算符。 例18:查询1990年以前参加工作的教师信息,查询名为L18。 例19:查询非研究生学历的教授信息,查询名为L19。 31/77 NCRE二级Access数据库程序设计讲义(刘春立) (5)逻辑运算符 逻辑运算符的运算量必须是是否型,Access共提供了6个逻辑运算符,常用的是以下3个: not(非) 单目运算符,逻辑取反 and(与) 两个运算量都为真结果为真 or (或) 两个运算量只要有一个为真结果就为真 由逻辑运算符构成的表达式称为逻辑表达式,其运算结果也为是否型(逻辑型)。 逻辑运算符的优先级低于关系运算符。 例20:查询20世纪90年代参加工作的教师信息,查询名为L20。 例21:查询20至22岁的女学生信息,查询名为L21。 例22:查询18、20、21和23岁的非团员学生信息,查询名为L22。 例23:查询不是1998年入校的男学生信息,查询名为L23。 (6)特殊运算符 范围匹配:between „ and „ 用于表示在某个范围(连续)之内的数据,可用and替代。 例:between 20 and 30 between #2007-1-1# and date() 例24:用Between „ and „ 重建例20和例21,查询名为L24_1和L24_2。 列表匹配:in(数据列表) 用于表示其值为固定的某些值的数据,可用or替代。 例:in(18,20,21,25) in(“教授”,“讲师”) 例25:用In重建例22,查询名为L25。 例26:查询数学系的教授和讲师信息(使用In),查询名为L26。 模式匹配:like 模式字符串 使用统配符实现模糊查询。 例:like “王*” like “*教授” 例27:查询姓张的教师信息,查询名为L27。 例28:查询姓名中包含“小”字的教师信息,查询名为L28。 ,)常用内部函数的语法 函数是事先设计的一个程序,其功能是对数据进行某种处理,并返回处理的结果。使用时只需了解其 功能和使用方法,不必关心其处理的细节。 其引用格式为: 函数名(参数列表)参数是处理的数据 常用的系统内部函数有以下几类: (1)数值函数 (2)字符函数 (3)日期时间函数 (1)数值函数 求绝对值: Abs(数值) 求平方根:Srq(数值) 求符号:Sgn(数值) 正数返回1,,返回0,负数返回-1 取整:Int(数值) (2)字符函数 左子串截取:Left(字符串,数值) 例29:查询山东籍的学生信息,查询名为L29。 例30:查询9803班的学生信息,查询名为L30。 32/77 NCRE二级Access数据库程序设计讲义(刘春立) 右子串截取:Right(字符串,数值) 例31:查询姓名的末尾是“明”字的教师信息,查询名为L31。 子串截取:Mid(字符串,数值1,数值,) 例32:查询姓名的第二个字是“小”的教师信息,查询名为L32。 求字符串长度:Len(字符串) 例33:查询姓名只有两个字的教师信息,查询名为L33。 空格生成:Space(数值) (3)日期时间函数 求系统日期:Date() 例34:查询100天之内参加工作的教师信息,要求分别使用日期表达式的两种形式设计,查询名分别为L34_1、L34_2。 求年份:Year(日期) 例35:查询工龄超过10年的教师信息,查询名为L35。 求月份:Month(日期) 例36:查询9月份入校的学生信息,查询名为L36。 求日份:Day(日期) 例37:查询9月1日入校的学生信息,查询名为L37。 求星期:Weekday(日期) 星期日为第,天(1),星期一为第,天(,) 例38:查询星期二入校的学生信息,查询名为L38。 求小时:Hour(日期) ,(计算型选择查询 能够将挑选出的数据按照某种规则进行统计和计算的查询。 (1)总计查询 (2)分组总计查询 (3)添加计算字段 (1)总计查询 对表中符合条件的某些字段的值进行计算与统计。 与一般选择查询的创建方法基本相同,区别是需要在设计视图中的总计行中设置总计项类型。 总计行的添加方法:选择“视图”菜单中的 “合计”项(或单击工具栏上的“合计”按钮)。 总计项类型: Sum:求总和 Avg:求平均 Max:求最大值 Min:求最小值 Count:统计个数 First:求第一个值 Last:求最后一个值 例39:建立查询,统计学生的人数、最大年龄、最小年龄和平均年龄,查询名为L39。 注意:字段标题是可以重新指定的,方法是在原标题前加新标题,且与原标题用冒号分隔。 例40:建立查询,统计女学生的人数、最大年龄、最小年龄和平均年龄,查询名为L40。 例41:建立查询,统计选修“软件工程”的学生人数、最高成绩、最低成绩和平均成绩,查询名为L41。 例42:建立查询,统计“任伟”同学的选修课程数、最高成绩、最低成绩、总成绩和平均成绩,查询名为L42。 (2)分组总计查询 按照某些字段等值为依据,对表中记录进行分组,然后再对各组记录分别进行统计。 与总计查询的创建方法基本相同,区别是:在设计视图中,将用于分组字段的“总计”方式设置成 33/77 NCRE二级Access数据库程序设计讲义(刘春立) “Group By”。 例43:建立查询,分别统计男女学生的人数、最大年龄、最小年龄和平均年龄,查询名为L43。 例44:建立查询,统计不同年龄学生的人数,查询名为L44。 例45:建立查询,统计不同年龄男女学生的人数,查询名为L45。 例46:建立查询,统计男女团员与非团员的学生人数,查询名为L46。 注意:分组字段可以是多个,此时按从左到右的顺序排定优先级,先按第一分组字段分组,第一分组字段值相同的记录再按第二分组字段分组,依次类推。优先级最低的分组字段分组的结果为统计依据。 例47:建立查询,统计各系不同职称教师的人数,查询名为L47。 例48:建立查询,统计选修各门课程的学生编号和姓名,查询名为L48。 注意:只用于显示其值的字段,总计方式可为First或Last。 例49:建立查询,统计选修各门课程的学生人数、最高成绩、最低成绩和平均成绩,查询名为L49。 例50:建立查询,统计学生的选修课程数、最高成绩、最低成绩、总成绩和平均成绩,查询名为L50。 例51:建立查询,统计选修各门课程的男女学生的人数、最高成绩、最低成绩和平均成绩,查询名为L51。 例52:建立查询,统计学生修得的总学分,查询名为L52。 注意:只用于构成查询准则的字段,其总计方式为Where。 例53:建立查询,查询修够10学分的学生信息,查询名为L53。 (3)添加计算字段 计算字段是表中并不存在的字段,它的值是通过对表中某些字段进行计算而得到的,故其实质是一个表达式。 添加方法:在设计视图中的“字段”行中直接添加一个内容为表达式的新字段。 例54:建立查询,查询一年以后学生的年龄,要求只显示学生编号、姓名和新年龄,查询名为L54。 例55:建立查询,查询教师的工龄信息,要求只显示教师编号、姓名和工龄,查询名为L55。 例56:建立查询,统计各个班级学生的人数、最高年龄、最低年龄和平均年龄,查询名为L56。 例57:建立查询,统计各个班级团员与非团员学生的人数,查询名为L57。 例58:建立查询,统计各个班级选修不同课程的学生人数、最高成绩、最低成绩和平均成绩(要求为整数),查询名为L58。 注意: ?计算字段一般需要为其重新指定一个新标题; ?当数据源为多个表或查询,而计算表达式中的某一字段在多个表中都存在时,引用时必须指定来源于哪个表。 ?表达式中可以包含统计函数,此时该字段的总计方式为Expression。 例59:建立查询,查询学生基本信息,要求学生的姓和名分开显示,结果中只有学生编号、姓、名、性别、年龄字段,查询名为L59。 例60:建立查询,查询学生基本信息,要求结果中包含学生的学生编号、姓名、性别、年龄、入校日期和修得的总学分信息,但结果中只有两个名为“学生基本信息”和“总学分”的字段,查询名为L60。 例61:建立查询,统计选修各门课程及格与不及格学生的人数,查询名为L61。 条件函数: 格式:IIF(条件,数据1,数据2) 功能:若条件为真,函数返回值为“数据,”,否则返回值为“数据,”。 二、创建交叉表查询 ,(交叉表的功能 ,(使用向导创建 ,(使用设计视图创建 ,(交叉表的功能 34/77 NCRE二级Access数据库程序设计讲义(刘春立) 将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,然后在数据表行与列的交叉处显示表中某个字段的各种计算值。其实质是将表中记录根据某些字段进行分类汇总,然后再求分类后某个字段的明细统计值。 创建时,需指定三种字段: (1)行标题字段:总分组字段; (2)列标题字段:明细分组字段; (3)总计项字段:统计目标(运行时在行列交叉处显示统计结果)。 ,(使用向导创建 (1)单击数据库窗口中的“新建”按钮,在弹出的“新建查询”对话框中选择“交叉表查询向导” ; (2)选择数据源; (3)分别确定行标题字段、列标题字段和总计项字段及总计函数; (4)指定查询名称。 注意:可以指定多个行标题字段,但只能指定一个列标题和总计项字段。 例62:建立一个统计不同年龄男女学生人数的交叉表查询,查询名为L62。 例63:建立一个统计各系不同职称人数的交叉表查询,查询名为L63。 例64:建立一个统计不同年龄男女团员与非团员人数的交叉表查询,查询名为L64。 注意: ,(可以指定多个行标题字段,但只能指定一个列标题和总计项字段; ,(向导只能创建单数据源的交叉表查询。 ,(使用设计视图创建 (1)打开查询设计视图,并在“显示表”对话框中选择数据源; (2)在“字段”行中分别添加行标题、列标题和总计项字段; (3)设置查询类型为交叉表查询: ?选择“查询”菜单中的“交叉表查询”; ?选择工具栏上“查询类型”按钮中的“交叉表查询” ; (4)在“总计”行中设置行标题和列标题字段的总计方式为“Group By”,总计项字段的总计方式为一合适的统计函数; (5)在“交叉表”行中分别设置行标题、列标题和总计项字段的相应值为“行标题”、“列标题”、“值”; (6)保存并指定查询名称。 例65:使用设计视图重建例62、例63、例64,查询名分别为L65_1、L65_2、L65_3。 例66:创建一个统计学生选修课程成绩的交叉表查询,查询名为L66。 例67:分别创建统计各个班级选修各门课程的人数、最高成绩、最低成绩和平均成绩的交叉表查询,查询名分别为L67_1、L67_2、L67_3、L67_4。 注意:行标题和列标题字段可以是计算字段。 三、创建参数查询 运行时可根据用户需要临时指定查询条件的查询。该查询运行时将弹出一个对话框,提示输入查询参数(条件)。 与一般有条件选择查询的创建方法基本相同,不同之处是用运行查询时弹出的对话框中显示的准则提示信息(加方括号)替代查询准则 。 例68:创建按照性别查询学生基本信息的参数查询,查询名为L68。 例69:创建按照年龄查询学生基本信息的参数查询,查询名为L69。 例70:创建按照性别和年龄查询学生基本信息的参数查询,查询名为L70。 注意:与查询准则的设置相同,准则提示信息也可以是多个。 例71:创建按照课程名称查询学生成绩信息的参数查询,查询名为L71。 35/77 NCRE二级Access数据库程序设计讲义(刘春立) 例72:创建按照班级和课程名称查询学生成绩信息的参数查询,查询名为L72。 例73:创建按照课程名称查询班级成绩汇总信息的参数查询,要求结果中包含班级、人数、最高成绩、最 低成绩和平均成绩,查询名为L73。 四、创建操作查询 可以自动完成对表中的数据执行一个特定操作的查询。 根据所执行操作的不同,可分为以下四类: ,(生成表查询 ,(删除查询 ,(更新查询 ,(追加查询 ,(生成表查询 将查询结果生成一个新表。 与选择查询的创建方法基本相同,不同之处是必须将查询类型设置为“生成表查询”,并指定所生成 新表的名称和保存位置。 例74:将前面创建的所有选择查询改造为生成表查询。 ,(删除查询 自动删除表中符合条件的记录; (1)打开查询设计视图,并添加数据源; (2)设置查询类型为“删除查询”; (3)在“字段”行中添加构成删除准则的字段,并指定其“删除”行值为 “Where”; (4)设置删除准则; (5)保存。 例75:创建一个删除经济系讲师信息的查询,查询名为L75。 例76:创建一个删除1999年入校学生信息的查询,查询名为L76。 例77:创建一个删除9803班不是团员的女学生信息的查询,查询名为L77。 注意:表间关系一经建立并设置了参照完整性规则,则对表的所有操作都必须遵守该规则。 ,(更新查询 根据某种规则自动对表中符合条件的数据进行更新。 (1)打开查询设计视图,并添加数据源; (2)设置查询类型为“更新查询”; (3)添加需要更新的字段,并在“更新到”行指定更新值; (4)添加更新准则字段,并在“准则”行设置其更新准则; (5)保存。 例78:创建一个将所有学生年龄增加一岁的查询,查询名为L78。 例79:创建一个将9801班学生“C程序设计”课程成绩加10分的查询,查询名为L79。 例80:创建一个将所有教师的电话号码前加“8”的查询,查询名为L80。 思考:如何将电话号码的最高位去掉。 例81:创建一个将9804班改为9802班的查询,查询名为L81。 ,(追加查询 将查询结果添加到另一个表的尾部。 (1)打开设计视图,并添加相关表; (2)添加查询(所要追加的)字段; (3)设置查询准则(所追加记录的条件)(4)设置查询类型为“追加查询”,并指定追加到的表; (5)保存。 36/77 NCRE二级Access数据库程序设计讲义(刘春立) 例82:创建一个将所有教授的信息备份到“教授”表(与“教师”表结构相同)中的的查询,查询名为L82。 例83:创建一个将所有选修“数据结构”并及格的学生基本信息备份到t1表(与“学生”表结构基本相同,只是没有“姓名”字段,但有“姓”和“名”字段)中的查询,查询名为L83。 注意:所要追加的字段可以来源于多个表或是计算字段,但必须是目标表中已经存在的字段。 例84:创建一个将学生基本信息(学生编号、姓名、性别、年龄、入校日期)备份到t2表(只有一个名为“学生基本信息”的字段)中的查询,查询名为L84。 五、创建SQL查询 通过直接输入SQL语句所创建的查询。 SQL语言的语法规则相对较复杂,我们只需要掌握以下两个问题即可: ,(SQL查询语句的一般语法 ,(SQL子查询 ,(SQL查询语句的一般语法 SQL语言只提供了一个查询语句:Select,Select语句的功能是根据指定的条件对表中数据进行查找或计算。其一般语法规则如下: Select [ALL|Distinct] *|字段列表 From 表名列表 Where 条件表达式 Group By 分组字段列表 Order By 排序字段列表[ASC|DESC] 语法说明: (1)“字段列表”是欲查询字段的列表,可以包含计算字段,“*”表示表中所有字段; (2)ALL表示查询所有符合条件的记录,包括重复记录,DISTINCT则去掉重复记录; (3)From子句:用以指定查询数据源; (4)Where子句:用来设置查询准则; (5)Group By子句:用来指定分组依据; (6)Order By子句用来指定排序字段及方式(ASC为升序(默认),DISC为降序); (7)“表名列表”中的表名之间、“字段列表”中的字段之间必须用逗号(,)分隔; (8)语句太长一行写不开时,可以用分号(;)续行; (9)除了From子句为必选项外,其它子句均为可选项; (10)各子句次序无关紧要,但命令动词Select必须位于语句开头。 例85:创建一个查询学生入校日期信息(学生编号、姓名、入校日期)的SQL查询,查询名为L85。 例86:创建一个查询学生年龄信息(学生编号、姓名、年龄)的SQL查询,要求结果按照年龄升序,查询名为L86。 例87:创建一个查询21岁男学生基本信息的SQL查询,查询名为L87。 例88:创建一个查询男女学生人数、最大年龄、最小年龄和平均年龄的SQL查询,查询名为L88。 注意: ,(Select语句中可以包含计算字段; ,(在Select语句中重新指定字段标题的方法是:原标题 As 新标题 例89:创建一个查询各个班级男女学生人数、最大年龄、最小年龄和平均年龄的SQL查询,查询名为L89。 ,(SQL子查询 所谓子查询就是包含在另一个Select语句中的Select语句。 其主要有以下两种使用方法: (1)在Select语句中使用 (2)在查询设计视图中使用 (1)在Select语句中使用 直接将构成子查询的Select语句包含在另一个Select语句的Where子句中; 例90:创建一个查询大于平均年龄的学生基本信息的SQL查询,查询名为L90。 37/77 NCRE二级Access数据库程序设计讲义(刘春立) 例91:创建一个查询年龄最小男生基本信息的SQL查询,查询名为L91。 例92:创建一个查询9803班年龄最大女生基本信息的SQL查询,查询名为L92。 例93:创建一个查询年龄最大和最小的学生基本信息的SQL查询,查询名为L93。 注意:在一个查询中可以包含多个子查询。 例94:创建一个查询最早入校的学生中年龄最大的学生基本信息的SQL查询,查询名为L94。 注意:在一个子查询中还可以包含子查询。 注意:以上两个问题较深,暂时属于非考试内容,了解即可。 (2)在查询设计视图中使用 在查询设计视图的“准则”行和“或”行中包含Select子查询语句。 例95:在查询设计视图中重建例90、例91、例92、例93和例94 ,查询名分别为L95_1、L95_2、L95_3、 L95_4和L95_5。 第三节 操作查询 一、运行查询 二、编辑查询 ,(编辑数据源(添加或移去) ,(添加字段 ,(删除字段 ,(移动字段 ,(调整列宽 ,(排序 ,(设置字段属性(格式、小数位数) 本章考点 ,(查询的功能、视图与分类; ,(查询准则:数据的表示、系统内部函数的语法与运算符的运算规则; ,(选择查询的创建:无条件选择查询、有条件选择查询与分组汇总查询; ,(计算字段的添加方法; ,(交叉表查询的创建; ,(参数查询的创建; ,(操作查询的创建:生成表查询、删除查询、更新查询与追加查询; ,( SELECT语句的一般语法规则; ,(子查询的创建; 10(查询的编辑(字段的添加、删除、移动、排序和属性设置)。 考试分值: 笔试:8,10分 机试:35,45分 38/77 NCRE二级Access数据库程序设计讲义(刘春立) 第四章 窗体 第一节 认识窗体 第二节 使用向导创建窗体 第三节 自定义窗体 第四节 美化窗体 本章考点 第一节 认识窗体 一、窗体的概念 二、窗体的类型 三、窗体的视图 四、窗体的组成 五、窗体与表和查询的关系 一、窗体的概念 又称窗口,是系统和用户之间的接口,它为用户使用系统,对数据库中的数据进行各种操作提供了一 个简单、形象、易懂的界面。 一个软件的操作界面就是由各种功能不同的窗体组成的。 二、窗体的类型 根据窗体的样式,分为以下,类: ,(纵栏式窗体:一个窗口只显示一个记录,格式可自由设计。 ,(表格式窗体:以表格方式显示记录。 ,(数据表窗体:以表格方式显示记录,但OLE型数据不显示。 ,(主,子窗体:分别在不同的窗口中显示有关联的主子表中数据。 ,(图表窗体:以图表形式显示表中数据。 ,(数据透视表窗体:以交叉表格式显示表中数据。 三、窗体的视图 显示窗体不同内容的窗口。 ,(设计视图:显示窗体结构,用于设计窗体。 ,(窗体视图:用于观察窗体运行时的状态。 ,(数据表视图:以表格方式显示窗体数据源。 四、窗体的组成 一个窗体由多个部分组成,每个部分称为节。 一个窗体可以包含以下五类节: ,(主体:位于窗体中间,用于设置窗体的主要部分。 ,(窗体页眉:位于窗体顶部,用于设置窗体标题。 ,(窗体页脚:位于窗体底部,用于显示窗体状态及说明信息。 ,(页面页眉:位于窗体页眉下部,主体上部,用于设置窗体打印时的页头信息。 ,(页面页脚:位于窗体页脚上部,主体下部,用于设置窗体打印时的页脚信息。 39/77 NCRE二级Access数据库程序设计讲义(刘春立) 注意:一个窗体必须有主体节,其它节可根据需要设置。 五、窗体与表和查询的关系 窗体的实质是用户对数据进行处理的界面,它将复杂的数据处理问题变的简单、形象。 在Access中,表和查询都是表示数据的对象,故窗体处理的数据源既可以来源于表,也可以来源于查询。 窗体可以没有数据源。 由于查询的数据源是表,故对于有数据源的窗体,其最终处理对象是表中数据。 第二节 使用向导创建窗体 一、自动创建窗体向导 二、窗体向导 三、数据透视表向导 四、图表向导 一、自动创建窗体向导 用于快速创建简单的(单数据源,且不能自由选择字段)纵栏式、表格式和数据表式窗体。 ,(单击数据库窗口中的 “新建”按钮; ,(在弹出的“新建窗体”对话框中选择“自动创建窗体”中的一种类型; ,(在数据源组合框中选择数据源; ,(保存并指定窗体名称。 例,:分别创建以“学生”表、“教师”表为数据源的纵栏式窗体,名称分别为LF01_1和LF01_2。 例,:分别创建以“学生”表、“教师”表为数据源的表格式窗体,名称分别为LF02_1和LF02_2。 例,:分别创建以“学生”表、“教师”表为数据源的数据表式窗体,名称分别为LF03_1和LF03_2。 二、窗体向导 根据用户需求灵活(多数据源,且可自由选取字段)创建各种类型(纵栏式、表格式、数据表式和主子窗体)的窗体。 ,(启动“窗体向导”; ,(选择数据源(多)以及字段; ,(分别确定窗体布局(类型)和样式; ,(指定窗体标题(也即窗体名称)。 例,:分别创建包含学生编号、姓名、性别、年龄和照片信息的纵栏式、表格式和数据表式窗体,名称分别为LF04_1、LF04_2和LF04_3。 例,:分别创建包含教师编号、姓名、性别、工作时间、职称和系别信息的纵栏式、表格式和数据表式窗体,名称分别为LF05_1、LF05_2和LF05_3。 例,:分别创建包含学生编号、姓名、课程名称、和成绩信息的学生选课纵栏式、表格式和数据表式窗体,名称为LF06_1、LF06_2和LF06_3。 例,:分别创建包含学生基本信息、所选课程信息和成绩信息的学生选课嵌入式和链接式主子窗体,名称分别为LF07_1和LF07_2。 三、数据透视表向导 创建以类似于交叉表的格式显示表中数据的窗体。 ,(启动“数据透视表向导”; ,(选择数据源(多)以及相关字段(行标题、列标题和总计项字段); 40/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(在“版式”对话框中分别指定行标题、列标题和总计项; ,(保存并指定窗体标题(名称)。 例,:创建一个显示不同年龄男女学生人数的数据透视表窗体,名称为LF08。 例,:创建一个显示男女团员与非团员人数的数据透视表窗体,名称为LF09。 例10:创建一个显示各个系不同职称男女教师人数的数据透视表窗体,名称为LF10。 例11:创建一个显示选修各门课程的男女团员与非团员平均成绩的数据透视表窗体,名称为LF11。 四、图表向导 创建以图表形式显示表中数据的窗体。 图表的实质是以图形的形式输出分组总计查询的结果。 ,(启动“图表向导”; ,(在数据源组合框中选择数据源(单); ,(选择分组和统计字段; ,(选择图表类型; ,(设置布局(指定字段性质); ,(指定图表标题; ,(保存并指定窗体名称。 例12:创建一个显示不同年龄学生人数的柱型图表窗体,名称为LF12。 例13:创建一个显示不同年龄男女学生人数的柱型图表窗体,名称为LF13。 例14:创建一个显示各系不同职称教师人数的柱型图表窗体,名称为LF14。 例15:创建一个显示不同年龄学生人数的饼型图表窗体,名称为LF15。 第三节 自定义窗体 使用向导创建的窗体,其结构和功能基本都是系统设定的,比较固定,往往不符合用户的需求。 使用窗体设计视图可以设计出自己所需要的功能和样式的窗体,这称为自定义窗体。 本节内容 一、自定义窗体的创建方法 二、窗体数据源的设置 三、窗体结构的设置 四、控件的使用 五、窗体和控件的属性 六、窗体类型的设置 七、窗体和控件的事件 一、自定义窗体的创建方法 ,(打开窗体设计视图; ,(设置窗体数据源; ,(设置窗体结构; ,(设置窗体类型; ,(添加控件; ,(设置窗体和控件的属性; ,(设置窗体和控件的事件; ,(保存。 41/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、窗体数据源的设置 ,(在“新建窗体”对话框的数据源组合框中设置。 ,(在窗体“属性”对话框中设置 (1)选定窗体(单击窗体设计视图左上角的窗体选定按钮); (2)打开“属性”对话框:选择“视图”菜单中的“属性”(或工具栏上的“属性”按钮,或右击快捷 菜单中的“属性”); (3)在“数据”选项卡的“记录源”组合框中指定数据源。 注意: ,(窗体的数据源可以是表、查询或Select语句。 ,(一个窗体只能有一个数据源。 三、窗体结构的设置 一个窗体必须有主体节,可根据需要添加其它各节。 窗体页眉,页脚和页面页眉,页脚的添加和去除: (1)选择视图菜单中的相应项; (2)右单击窗体设计视图标题栏,在弹出的快捷菜单中选择相应项。 注意:节的添加和去除方法相同。 四、控件的使用 ,(常用控件及其功能 ,(控件的类型 ,(控件的添加方法 ,(常用控件及其功能 (1)标签:显示操作说明或提示信息; (2)文本框:显示、输入或更新数据; (3)复选框、选项按钮和切换按钮:显示或输入开关信息; (4)选项组:内含一组复选框、选项按钮和切换按钮,用于多项选择(固定); (5)列表框和组合框:用于多项选择(非固定); (6)命令按钮:用于某项操作的执行; (7)图像:显示固定图像; (8)绑定对象框:显示表中的OLE对象型数据; (9)未绑定对象框:显示数据库外部文件中的OLE对象型数据; (10)子窗体,子报表:用于创建嵌入式主子窗体和报表; (11)直线和矩形:用于窗体修饰; (12)选项卡:用于窗体信息的分类显示。 ,(控件的类型 根据其与数据源的关系,窗体控件分为以下,类: (1)结合型控件 (2)非结合型控件 (3)计算型控件 (1)结合型控件 数据源为表或查询中的字段。 用于显示、输入和更新表中字段的数据。 例如:文本框、复选框、选项按钮、切换按钮、选项组、列表框、组合框、绑定对象框。 (2)非结合型控件 42/77 NCRE二级Access数据库程序设计讲义(刘春立) 无数据源。 用于显示窗体的操作提示或说明信息以及窗体外观的修饰。 例如:标签、命令按钮、图像、未绑定对象框、直线、矩形、选项卡。 (3)计算型控件 数据源为一个表达式。 除绑定对象框外,所有的结合型控件都可用作计算型控件。 ,(控件的添加方法 (1)工具箱的使用 (2)结合型控件的添加 (3)非结合型控件的添加 (4)计算型控件的添加 (1)工具箱的使用 ,(打开 (1)选择视图菜单中的“工具箱”; (2)单击工具栏上的“工具箱”按钮。 ,(关闭 与打开方法相同。 也可以直接单击“工具箱”窗口右上角的“关闭”按钮。 ,(移动 直接拖动到合适的位置。 ,(控件的锁定 双击欲锁定的控件按钮。 (2)结合型控件的添加 结合型控件有以下,种添加方法: ,)自动添加 ,)手动添加 ,)自动添加 直接将数据源字段列表窗体中的字段拖动到窗体的适当位置。 数据源字段列表窗体的打开与关闭: ? 选择“视图”菜单中的“字段列表”; ?单击工具栏上的“字段列表”按钮。 例16:创建一个显示学生基本信息的纵栏式窗体,名称为LF16。 注意:结合型和计算型控件的类型是可以改变的,方法是:选择“格式”或右键菜单中的“更改为”,然 后再选择一种类型。 以下两例要求数据源为查询: 例17:创建一个显示不同年龄男女学生人数(交叉表样式)的纵栏式窗体,名称为LF17。 例18:创建一个显示学生选课成绩信息的纵栏式窗体,名称为LF18。 以下两例要求数据源为Select语句: 例19:创建一个显示女团员学生信息的纵栏式窗体,名称为LF19。 例20:创建一个显示各班级学生人数、最大年龄、最小年龄、平均年龄的纵栏式窗体,名称为LF20。 ,)手动添加 将工具箱中的相应控件按钮拖动到窗体的适当位置,然后再设置控件的数据源。 控件数据源的设置方法: ?选定控件,打开控件的属性窗口; ?设置“控件来源”属性为相应字段。 43/77 NCRE二级Access数据库程序设计讲义(刘春立) 例21:使用手动法重建例16、例17、例18、例19、例20,名称分别为LF21_1、 LF21_2、 LF21_3、 LF21_4、 LF21_5。 (3)非结合型控件的添加 直接从工具箱中拖动到窗体上。 例22:美化例21所建窗体:在窗体页眉节中加上相应的标题,在适当位置添加一幅图片,使用直线和矩形分隔信息。 例23:创建一个显示学生信息的窗体,要求学生的基本信息、简历与照片分别在不同的选项卡中显示。 (4)计算型控件的添加 直接从工具箱中添加一个有数据源的控件,设置其“控件来源”属性值为一个表达式即可。 注意:计算型控件的数据源表达式必须以等号“=”开头。 例24:创建一个显示教师工龄信息的纵栏式窗体,要求只显示教师编号、姓名、性别、工龄、职称和系别,名称为LF24。 例25:创建一个显示学生基本信息的纵栏式窗体,要求只显示班级、姓名、性别、新年龄(年龄,,)、团员(显示“团员”或“非团员”),名称为LF25。 五、窗体和控件的属性 ,(窗体常用属性 ,(控件常用属性 注意:不用记忆各种属性名称,知道其意义即可,操作时在属性窗口中显示。 ,(窗体常用属性 主要是格式属性:标题、滚动条、记录选定器、浏览按钮、分隔线、自动调整、自动居中、边框样式、控制框、最大最小化按钮、关闭按钮、宽度、图片和图片类型等。 例26:通过设置窗体属性美化以上所建窗体,以使其更符合用户需求。 ,(控件常用属性 标题、名称、边距(左、上)、宽度、高度、颜色(前景、背景、边框)、字体(名称、大小、粗细、倾斜、下划线)等。 例27:通过设置控件属性美化以上所建窗体,以使其更符合用户需求。 六、窗体类型的设置 ,(纵栏式窗体 ,(表格式窗体 ,(数据表式窗体 ,(嵌入式主子窗体 ,(图表窗体 ,(纵栏式窗体 将窗体的“默认视图”属性设置为“单一窗体”(默认)。 ,(表格式窗体 将窗体的“默认视图”属性设置为“连续窗体”。 设计时需将所有控件排列为一行,并在窗体页眉节区设置列标题。 例28:创建一个显示教师信息的表格式窗体,名称为LF28。 以下三例数据源为查询: 例29:创建一个显示学生选课成绩信息(学生编号、姓名、课程名称、成绩)的表格式窗体,名称为LF29。 例30:创建一个显示学生选课成绩汇总信息(学生编号、姓名、选修课程数、最高成绩、最低成绩、平均成绩)的表格式窗体,名称为LF30。 例31:创建一个显示各班级选修各门课程平均成绩信息(交叉表:班级为行标题,课程名称为列标题,成绩为总计项)的表格式窗体,名称为LF31。 44/77 NCRE二级Access数据库程序设计讲义(刘春立) 以下两例数据源为Select语句: 例32:创建一个显示各系不同职称人数的表格式窗体,名称为LF32。 例33:创建一个显示各班级学生年龄信息(班级、人数、最大年龄、最小年龄、平均年龄)的表格式窗体,名称为LF33。 ,(数据表式窗体 将窗体的“默认视图”属性设置为“数据表”。 例34:将例28,例33修改为数据表式窗体。 ,(嵌入式主子窗体 (1)将窗体类型设置为纵栏式窗体; (2)在窗体适当位置添加主表信息; (3)在窗体适当位置添加一个“子窗体,子报表”控件; (4)在子窗体向导中指定子窗体数据源及字段和标题; (5)美化窗体; (6)保存。 例35:创建一个显示学生选课成绩信息的主子窗体,要求在主窗体中显示学生基本信息,在子窗体中显示所修课程名称和成绩,名称为LF35。 例36:创建一个显示选修各门课程的学生成绩信息的主子窗体,要求在主窗体中显示课程基本信息,在子窗体中显示选修该课程的学生和成绩信息,名称为LF36。 ,(图表窗体 选择“插入”菜单中的“图表”,在窗体上添加一个图表控件,在启动的图表向导中根据提示操作即可。 例37:在窗体设计视图中重建例12,例15。 七、窗体和控件的事件 ,(事件的概念 ,(系统常用事件 ,(事件响应的设置 ,(事件的概念 所谓事件就是窗体或控件能够识别的来自于用户或系统的行为。 窗体上的各个控件之间,以及窗体与窗体之间是有联系的,这种联系必须通过事件才能实现,它是系统各元素之间的纽带。 ,(系统常用事件 (,)键盘事件:键按下、键释放、击键 (,)鼠标事件:单击、双击、鼠标按下、鼠标移动、鼠标释放 (,)对象事件:获得焦点、失去焦点、更新前、更新后、更改 (,)窗口事件:打开、关闭、加载 (,)操作事件:删除、插入前、插入后、成为当前、不在列表中、确认删除前、确认删除后 ,(事件响应的设置 事件发生后能够产生的行为(操作),称为事件响应。 事件响应由用户设置,也即系统是否响应窗体或控件的某个事件,由用户决定。 事件响应的设置方法: 打开窗体或控件的“属性”对话框,在“事件”选项卡中设置欲设事件属性的值为某个宏或过程(模块)。 例38:创建一个含有,个命令按钮的窗体,要求当单击按钮时分别打开,个不同的窗体,名称为LF38。 45/77 NCRE二级Access数据库程序设计讲义(刘春立) 第四节 美化窗体 一、自动套用格式 二、添加当前日期和时间 三、窗体中控件的对齐 一、自动套用格式 选择“插入”菜单中的“自动套用格式”。 例39:创建一个显示学生基本信息的纵栏式窗体,分别套用不同的格式观察其效果,名称为LF39。 二、添加当前日期和时间 选择“插入”菜单中的“日期和时间”。 例40:在LF39窗体的窗体页眉和窗体页脚节区分别添加系统日期和时间。 思考:系统时间为什么是静态的, 三、窗体中控件的对齐 选择“格式”菜单中的“对齐”、“大小”、“水平间距”、“垂直间距”。 例41:创建一个名为LF41的窗体,添加,个宽度为,厘米高度为,厘米的命令按钮,其中第一个命令按钮的上边距为,厘米左边距为,厘米,其它命令按钮以它为基准排成一行,各命令按钮的间距为0.5厘米。 例42:创建一个名为LF42的窗体,添加,个宽度为,厘米高度为,厘米的命令按钮,其中第一个命令按钮的上边距为,厘米左边距为,厘米,其它命令按钮以它为基准排成一列,各命令按钮的间距为0.5厘米。 本章考点 ,(窗体的组成和结构; ,(窗体的视图; ,(窗体的创建(自定义); ,(常用控件的功能与性质; ,(控件的添加; ,(控件类型的更改; ,(窗体和控件数据源的设置; ,(窗体和控件常用属性的设置; ,(计算字段的设置; 10(窗体和控件的事件; 11(窗体的美化。 考试分值: 笔试:4,10分 机试:0,30分 46/77 NCRE二级Access数据库程序设计讲义(刘春立) 第五章 报表 第一节 认识报表 第二节 使用向导创建报表 第三节 自定义报表 本章考点 第一节 认识报表 一、报表的概念 二、报表的视图 三、报表的组成 四、报表的类型 一、报表的概念 以一定的格式打印输出表中数据的对象。 与窗体的区别: 报表专用于在纸张上打印输出数据,不能与用户交互;而窗体的主要功能是通过与用户的交互实现表中数据的浏览、更新、插入、删除、汇总和统计。 二、报表的视图 ,(设计视图 用于创建和编辑报表。 ,(打印预览视图 用于查看报表的页面数据输出形态。 ,(版面预览视图 用于查看报表的版面设置。 三、报表的组成 ,(主体:用于设置需要在报表中央输出的主要数据。 ,(报表页眉:用于设置需要在报表首部输出的信息(一般为报表标题或整个报表的统计汇总数据)。 ,(报表页脚:用于设置需要在报表尾部输出的信息(一般为整个报表的统计汇总数据) 。 ,(页面页眉:用于设置需要在报表每页顶部输出的信息(一般为页码、打印日期、和输出数据的列标题)。 ,(页面页脚:用于设置需要在报表每页底部输出的信息(一般为页码、打印日期)。 ,(组页眉:用于设置需要在分组报表的每个分组上部输出的信息(一般为分组标题)。 ,(组页脚:用于设置需要在分组报表的每个分组下部输出的信息(一般为分组统计数据)。 注意:除主体节外,其它节都为可选项,可根据需要添加或去除。 四、报表的类型 ,(纵栏式报表 ,(表格式报表 ,(主子报表 ,(图表报表 ,(标签报表 47/77 NCRE二级Access数据库程序设计讲义(刘春立) 第二节 使用向导创建报表 一、自动创建报表向导 二、报表向导 三、图表向导 四、标签向导 一、自动创建报表向导 快速创建简单的(单数据源,且不能自由选择字段)纵栏式和表格式报表。 ,(选择数据库窗口中的“新建”按钮; ,(在“新建报表”对话框中选择“自动创建报表”中的一种类型; ,(在数据源组合框中选择数据源; ,(保存并指定报表名称。 例,:创建一个输出学生基本信息的纵栏式和表格式报表,名称分别为LR01_1和LR01_2。 例,:创建一个输出教师基本信息的纵栏式和表格式报表,名称分别为LR02_1和LR02_2。 例,:创建一个输出不同年龄男女学生人数信息的纵栏式和表格式报表,名称分别为LR03_1和LR03_2。 例,:创建一个输出学生选课汇总信息(学生编号、姓名、所选课程数、最高成绩、最低成绩、平均成绩)的纵栏式和表格式报表,名称分别为LR04_1和LR04_2。 二、报表向导 自动创建内容丰富(多数据源,且可根据需要自由选取字段)、格式多样(纵栏式、表格式、可分组、可统计、可排序)的报表。 ,(启动“报表向导” ; ,(选择数据源以及字段; ,(指定报表主从方式(多表数据); ,(指定报表分组方式; ,(指定排序及汇总方式; ,(指定报表布局和样式; ,(指定报表标题(也即报表名称)。 例,:创建一个输出教师职称信息(教师编号、姓名、性别、系别、职称、学历)的纵栏式和表格式报表,名称分别为LR05_1和LR05_2。 例,:创建一个输出学生选课成绩信息(学生编号、姓名、课程名称、成绩)的纵栏式和表格式报表,名称分别为LR06_1和LR06_2。 例,:分别创建输出课程信息和选修各门课程的学生及成绩信息的总计与非总计分组报表(按成绩升序),名称分别为LR07_1和LR07_2。 例,:分别创建输出男女团员与非团员学生基本信息和其选修课程及成绩信息的总计与非总计分组报表(按成绩降序),名称分别为LR08_1和LR08_2。 三、图表向导 以图表的形式打印输出表中的数据。 图表的实质是以图形的形式输出分组总计查询的结果。 ,(启动“图表向导” ; ,(在数据源组合框中选择数据源(单); ,(选择图表所需字段(分组和总计) ; ,(选择图表类型; 48/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(设置图表布局(指定字段性质); ,(指定图表标题; ,(保存并指定报表名称 。 例,:创建一个输出各系不同职称人数的拄型图表报表,名称为LR09。 例10:创建一个选修各门课程的男女学生平均成绩的拄型图表报表,名称为LR10。 四、标签向导 以标签的形式打印输出表中的数据。 ,(启动“标签向导”; ,(在数据源组合框中选择数据源(单); ,(设置标签布局和外观; ,(确定标签内容(所需字段); ,(指定排序方式; ,(指定标签标题(也是报表名称)。 例11:创建一个输出教师编号、姓名、职称和电话号码的标签报表,名称为LR11。 例12:创建一个输出学生选课成绩信息的标签报表,名称为LR12。 第三节 自定义报表 一、纵栏式报表的设计 二、报表的编辑 三、报表和控件属性的设置 四、表格式报表的设计 五、计算控件的设置 六、报表排序与分组 七、多列(标签)报表的设计 八、主子报表设计 一、纵栏式报表的设计 ,(打开报表设计视图; ,(设置数据源(同窗体); ,(设置报表结构(同窗体); ,(添加控件(同窗体); ,(编辑报表; ,(设置报表和控件属性(同窗体); ,(保存并指定报表名称。 例13:创建一个输出学生基本信息的纵栏式报表,名称为LR13。 以下两例要求数据源为查询: 例14:创建一个输出各系不同职称教师人数(交叉表样式)的纵栏式报表,名称为LR14。 例15:创建一个输出学生选课成绩汇总信息(学生编号、姓名、选修课程数、最高成绩、最低成绩、平均 成绩)的纵栏式报表,名称为LR15。 以下两例要求数据源为Select语句: 例16:创建一个输出9803班女团员学生信息的纵栏式报表,名称为LR16。 例17:创建一个输出班级学生年龄信息(班级、人数、最大年龄、最小年龄、平均年龄)的纵栏式报表, 名称为LR17。 49/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、报表的编辑 ,(设置报表格式:选择“格式”菜单中的“自动套用格式”。 ,(添加背景图案:设置报表的“图片”属性。 ,(添加日期和时间:选择 “插入”菜单中的“日期和时间”。 ,(添加页码:选择“插入”菜单中的“页码”。 ,(添加分页符:直接从工具箱中添加。 ,(绘制线条和矩形:直接从工具箱中添加。 ,(控件的对齐:格式菜单中的方式、大小、水平间距、垂直间距。 例18:修改报表LR15,使一页只输出一个主题信息,并给报表加标题“学生选课成绩汇总信息”,且报 表标题与主题之间用直线分隔,打印时每页底部中间都有页码,报表尾部有打印日期,最后给报表加一幅 背景图片。 三、报表和控件属性的设置 与窗体属性的设置方法相同。 例:通过修改属性美化例18所修改过的报表LR15。 四、表格式报表的设计 与纵栏式报表的设计方法基本相同,不同的是需将主体节中的控件排列为一行,并在页面页眉节区设 置列标题。 例19:将报表LR15修改为表格式报表。 五、计算控件的设置 与窗体中计算控件的设置方法相同。 例20:创建一个输出教师工龄信息的表格式报表,要求只显示教师编号、姓名、性别、工龄、职称和系别, 名称为LR20。 例21:创建一个输出学生基本信息的表格式报表,要求只显示班级、姓名、性别、新年龄(年龄,,)、 团员(显示“团员”或“非团员”),名称为LR21。 六、报表排序与分组 ,(报表排序 ,(报表分组 ,(报表排序 (1)打开报表的设计视图; (2)选择“视图”菜单中的“排序与分组”; (3)在“排序与分组”对话框中设置排序字段与方式; (4)保存。 注意:最多可对10个字段进行排序。 例22:创建一个按照性别和年龄升序输出学生基本信息的表格式报表,名称为LR22。 ,(报表分组 按选定的字段值是否相等将记录分成若干个组打印输出。 与报表排序基本相同,不同的是需设置分组字段和分组属性。 主要分组属性的意义: (1)组页眉:是否需要组页眉; (2)组页脚:是否需要组页脚; (3)组间距:各分组之间的距离 50/77 NCRE二级Access数据库程序设计讲义(刘春立) (4)保持同页:一个分组之内的数据是否保持在一页输出。 例23:创建一个输出各系教师基本信息的分组报表,名称为LR23。 例24:创建一个输出各班级男女学生年龄信息的分组报表,要求各分组分别统计学生人数、最大年龄、最 小年龄和平均年龄,名称为LR24。 例25:创建一个输出学生选课成绩信息的分组报表,要求分别统计每个学生的选修课程数、最高成绩、最 低成绩和平均成绩,名称为LR25。 七、多列(标签)报表的设计 与一般简单报表的设计方法基本相同,不同之处是在“文件”菜单的“页面设置”对话框中设置打印 输出列数为多列。 例26:创建一个输出学生选修各门课程成绩的4列标签报表(数据源是一个交叉表查询),名称为LR26。 八、主子报表设计 ,(子报表的概念 ,(创建方法 ,(子报表的概念 插在其他报表中的报表称为子报表。 包含子报表的报表称为主报表,主报表中除了可以包含子报表外,还可以包含子窗体。 一个主报表中可以包含多个子报表或子窗体。 子报表或子窗体中还可以再包含子报表或子窗体,但最多只能包含两级。 ,(创建方法 (1)使用工具箱的“子窗体/子报表”控件向导。 例27:创建一个输出学生及其选修课程与成绩的主子报表,名称为LR27。 (2)将已建立的报表或窗体拖动到主报表的指定位置。 例28:使用方法(2)重建LR27。 本章考点 ,(报表的视图和组成; ,(报表的排序与分组; ,(子报表的概念; ,(自定义报表的创建; ,(报表的编辑; ,(报表和控件的属性设置; ,(计算控件的使用; ,(报表数据的统计和汇总。 考试分值: 笔试:2,6分 机试:0,30分 51/77 NCRE二级Access数据库程序设计讲义(刘春立) 第六章 数据访问页 第一节 认识数据访问页 第二节 创建数据访问页 第三节 编辑数据访问页 本章考点 第一节 认识数据访问页 一、数据访问页的概念 二、数据访问页的视图 一、数据访问页的概念 又称Web页,俗称网页,简称页,类型为HTML,是为了实现数据库数据的迅速收集和共享,而将数据 库中的数据发布到因特网上的数据库对象。 二、数据访问页的视图 ,(页视图 查看所生成的数据访问页样式。 ,(设计视图 创建和编辑数据访问页。 第二节 创建数据访问页 一、自动创建 二、使用“数据页向导”创建 一、自动创建数据访问页 自动创建简单(单数据源)的纵栏式数据访问页。 ,(单击数据库窗口中的“新建”按钮; ,(在“新建数据访问页”对话框中选择“自动创建数据页:纵栏式”; ,(在数据源组合框中指定数据源; ,(保存并指定页名称。 例,:创建一个显示学生基本信息的页,名称为LP01。 例,:创建一个显示学生选课成绩汇总信息的页,名称为LP02。 二、使用“数据页向导”创建 自动创建一个复杂(多数据源且可进行汇总和统计)的数据访问页。 ,(单击数据库窗口中的“新建”按钮; ,(在“新建数据访问页”对话框中选择“数据页向导”; ,(选择数据源及字段; ,(指定分组字段; ,(指定排序方式; ,(指定页标题; 52/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(保存并指定页文件名称。 例,:创建一个按照性别分组显示学生基本信息的页,名称为LP03。例,:创建一个按照课程名称分组显 示学生选课成绩信息的页,要求结果按“成绩”升序,名称为LP04。 第三节 编辑数据访问页 一、添加控件 直接从工具箱中添加。 标签、滚动文字 二、外观设计 (1)主题:选择“格式”菜单中的“主题”。 (2)背景:选择“格式”菜单中的“背景”。 三、设置超链接 直接从工具箱中添加。 本章考点 ,(数据访问页的概念; ,(自动创建数据访问页; ,(使用向导创建数据访问页; ,(数据访问页的编辑; ,(超链接的设置; ,(数据访问页的外观设置。 考试分值:笔试:2分 机试:无 53/77 NCRE二级Access数据库程序设计讲义(刘春立) 第七章 宏 第一节 认识宏 第二节 宏的创建 第三节 宏的运行和编辑 本章考点 第一节 认识宏 一、宏的概念 二、宏的功能 三、宏的分类 四、常用宏 一、宏的概念 宏是一种能自动执行的操作序列,其中的每个操作都能够实现一个特定的功能。 使用宏的主要目的是实现事件响应,使窗体和控件之间的联系得以实现,从而开发出完整的数据库应 用程序。 二、宏的功能 ,(打开和关闭对象; ,(窗体操作(移动、改变大小、最大化、最小化、还原); ,(改变对象的焦点; ,(设置和更新对象及其属性值; ,(复制、删除和重命名对象; ,(菜单项功能的启用与禁止; ,(自定义菜单; ,(显示说明性和警告性消息。 三、宏的分类 ,(操作序列宏 按顺序执行一系列操作的宏。 ,(条件宏 能根据条件选择执行不同操作的宏。 ,(宏组 若干个宏的集合。用于宏的分类管理。一个数据库应用系统一般需要设计很多个宏,不便于管理和 维护,可以根据用途将其分类并组织为若干个宏组。 四、常用宏 ,(打开对象:OpenTable、OpenQuery 、OpenForm、OpenReport ,(关闭对象:Close ,(退出Access:Quit ,(记录定位:GotoRecord ,(设置对象属性值:SetValue 54/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(控制显示:Maximize、Minimize、Restore ,(通知或警告:Beep、MsgBox 第二节 宏的创建 一、操作序列宏的创建 二、条件宏的创建 三、宏组的创建 四、自动运行宏的创建 一、操作序列宏的创建 ,(打开宏设计视图:单击“新建”按钮; ,(在“操作”列中设置操作序列; ,(在“操作参数”栏中设置操作参数; ,(在“备注”列中为每个操作加注释信息; 注意:注释信息对宏的运行不起作用,一般添加该项操作的功能和作用等解释性信息,为日后的阅读和维护提供帮助。 ,(保存。 例,:分别创建浏览学生信息和教师信息的纵栏式窗体,并在窗体上添加,个命令按钮,分别实现记录的浏览、记录的添加、关闭窗体、退出Access,窗体名称分别为LM01和LM02。 例,:在例,所建窗体上各添加,个命令按钮,单击按钮则关闭窗体而打开另一窗体。 例,:设计一个加法练习窗体,名称为LM03。提示:用,个文本框实现操作数的输入和结果的显示,单击命令按钮实现运算。 二、条件宏的创建 与操作序列宏的创建方法基本相同,不同之处是需要在条件列中设置操作所需要的条件。 “条件”列的添加与去除方法: (,)选择“视图”菜单中的“条件项”; (,)单击工具栏上的“条件”按钮。 注意:如果希望条件值为真时,顺序运行一系列操作,只需为序列中第一个操作指定条件,其它操作在条件列中输入省略号。 例,:将LM01窗体改造成一个链接式主子窗体。在窗体上添加,个切换按钮,单击按钮则打开或关闭选课成绩子窗体。 例,:将LM03窗体改造成一个能实现多种算术运算练习的窗体。 三、宏组的创建 与操作序列宏的创建方法基本相同,不同之处是需要在“宏名”列中分别指定各成员宏的宏名,在“操作”列中设置各成员宏的操作序列。 “宏名”列的添加与去除方法: (1)选择“视图”菜单中的“宏名项”; (2)单击工具栏上的“宏名”按钮。 注意: (1)保存宏组时,指定的名字是宏组的名字。显示在数据库窗中中的宏和宏组列表中。要引用宏组中的某个宏,格式:宏组名.宏名 (2)运行宏组时,不是运行宏组中每一个宏,而是宏组中的第一个宏。 例,:将例,,例,所建宏按窗体分类组织为若干个宏组。 55/77 NCRE二级Access数据库程序设计讲义(刘春立) 四、自动运行宏的创建 在数据库启动时自动运行的宏。 创建方法与其他宏的创建方法相同,只是保存时命名为autoexec。 例,:创建一个自动运行宏,实现打开数据库时自动打开窗体LM01。 注意: ,(其功能与“工具”菜单中“启动”项的功能相似。 ,(打开数据库时按住Shift键可取消自动运行宏的执行。 第三节 宏的运行和编辑 一、运行 ,(在数据库窗口中双击宏名; ,(在数据库窗口中选定宏,单击“运行”按钮; ,(选择“工具”菜单中的“宏”,再选择“执行宏”,指定要运行的宏名。 注意:以上3种运行方式仅用于宏的调试,宏的主要用途是作为事件响应自动运行。 二、编辑 打开宏设计视图直接修改。 本章考点 ,(宏的概念和分类; ,(宏设计视图的结构; ,(常用的宏操作; ,(宏的创建(操作序列宏、条件宏和宏组); ,(宏的运行方法(事件响应)。 考试分值: 笔试:4,6分 机试:0,4分 56/77 NCRE二级Access数据库程序设计讲义(刘春立) 第八章 模块 第一节 模块的基本概念 第二节 模块的创建 第三节 VBA数据类型与数据元素 第四节 VBA流程控制语句 第五节 过程调用与参数传递 第六节 变量属性与自定义类型 第七节 VBA数据库编程 本章考点 第一节 模块的基本概念 一、模块的概念 二、模块的分类 三、模块的组成 四、将宏转化为模块 一、模块的概念 模块是一个为了实现事件响应,以完成数据库应用系统的设计,而编写的VBA (可视化基础应用语言)代码集合。 宏和模块都能实现事件响应。宏简单易学,但功能有限,只能实现一个简单的应用系统;模块虽复杂,但功能强大,它除了能实现宏所能实现的所有功能外,还可以实现宏所不能实现的功能,适于较复杂应用系统的设计。 二、模块的分类 ,(类模块:窗体和报表模块 局部作用。作用范围为所属窗体或报表内部,生命周期随窗体或报表的打开而开始、关闭而结束。 主要用于实现本窗体或报表的功能以及与其它对象的联系。 ,(标准模块:公共模块 全局作用。作用范围为整个应用程序,生命周期随应用程序的运行而开始、关闭而结束。 主要用于放置一些供类模块调用的公共变量或过程。 三、模块的组成 一个模块由若干个过程组成。 为了响应某事件而编写的VBA代码,称为事件过程。模块设计主要就是编写事件过程。 过程分为以下两类: ,(Function函数过程 ,(Sub子过程 ,(Function函数过程 就是自定义函数。有返回值。不能作为独立的事件过程,主要供其它过程调用。 其格式如下: Function 函数名(参数表列) 程序代码 57/77 NCRE二级Access数据库程序设计讲义(刘春立) End Function ,(Sub子过程 又称子程序。一般实现一个简单的功能,无返回值。既可以作为独立的事件过程也可以供其它过程调 用。 其格式如下: Sub 子过程名(参数表列) 程序代码 End Sub 四、将宏转换为模块 ,(窗体或报表中的宏 ,(全局宏 ,(窗体或报表中的宏 (1)在设计视图中打开窗体或报表; (2)选择“工具”菜单中的“宏”,单击“将窗体的宏转换为Visual Basic代码”或“将报表的宏转换 为Visual Basic代码”; (3)单击“确定”按钮。 例1:将窗体LM01中的宏转化为模块,并观察其内容。 ,(全局宏 (1)在数据库窗口中选择要转换的宏; (2)选择“文件”菜单中的“另存为”; (3)指定模块名并选择保存类型为“模块”; (4)单击“确定”和“转换”按钮。 例2:将宏LM04转化为模块,并观察其内容。 第二节 模块的创建 一、基本创建方法 二、VBE窗口的打开方法 一、基本创建方法 ,(打开VBE(VB代码编辑)窗口; ,(输入并编辑程序; ,(保存。 二、VBE窗口的打开方法 ,(类模块 (,)在数据库窗口中选择某个窗体或报表,然后单击工具栏上的“代码”按钮; (,)在设计视图中为窗体或报表创建事件代码。 例3:将窗体LM03的功能改用类模块实现。 ,(标准模块 选择数据库窗口中的“模块”对象,然后单击“新建”按钮。 58/77 NCRE二级Access数据库程序设计讲义(刘春立) 第三节 VBA数据类型与数据元素 一、VBA数据类型 二、VBA常量 三、VBA变量 四、VBA表达式 五、VBA函数 一、VBA数据类型 数据的基本性质称为数据类型。 ,(VBA支持的数据类型 ,(数据类型转换函数 ,(VBA支持的数据类型 数据类型 标识符 声明符 占用字节 字段类型 字节型 Byte , 0,255 1515整型 Integer % ,2-1 , -2 3131长整型 Long & , -2,2-1 单精度实型 Single ! , 7位精度 双精度实型 Double # , 15位精度 货币型 Currency @ , 4位精度 字符串型 String $ ,,字符 0,65535个 布尔型 Boolean , 是否型 日期型 Date , 日期,时间 变体型 Variant (通用型)其类型随数据而变化 59/77 NCRE二级Access数据库程序设计讲义(刘春立) ,(数据类型转换函数 函数 功能 CByte 转字节型(Byte) CInt 转整型(Integer) CLng 转长整型(Long) CSng 转单精度实型(Single) CDbl 转双精度实型(Double) CCur 转货币型(Currency) CStr 转字符串型(String) CBool 转布尔型(Boolean) CDate 转日期型(Date) CVar 转变体型(Variant) 二、VBA常量 在程序运行过程中其值不会发生变化的数据量。 在VBA中主要有以下,种常量: ,(一般常量 ,(符号常量 ,(系统常量 ,(内部常量 ,(一般常量 与Access相同: 数值型:直接表示 字符型:双(单)引号定界 日期型:字符“,”定界 布尔型:真(True)、假(False) ,(符号常量 使用一个符号(字符串)来替代一个常量。 定义格式:Const 符号常量名=常量值 例,:设计一个名为LMP04的窗体,其功能是根据输入的圆半径,分别计算出圆周长、圆面积和圆球体积。 使用符号常量的好处: (1)可以提高程序的可读性和清晰性; (2)使程序易于修改。 ,(系统常量 系统启动时就建立的符号常量。 如:True、False、Yes、No、On、Off、Null。 ,(内部常量 系统内部预先定义的符号常量。 内部常量都以前缀ac开头。 60/77 NCRE二级Access数据库程序设计讲义(刘春立) 三、VBA变量 在程序运行过程中其值可以发生变化的数据量。 其实质是一个存放数据的容器,在不同的时间可以将不同的数据存放在其中,变量的值就是其中存放的数据。 为相互区别,每个变量都有一个名字,通过变量名访问变量的值。 ,(变量的定义 ,(数组 ,(对象变量 ,(变量的定义 格式,:变量名[类型说明符]=表达式 格式,:Dim 变量名 [as 类型标识符] 说明: (1)变量类型是指变量中数据的类型; (2)若省略类型标识,则变量类型为变体类型; (3)格式,是使用时临时定义,格式,是先定义后使用,程序清晰度高,建议使用格式,; (4)可在模块设计窗口顶部的数据声明区加Option Explicit语句以禁止使用格式,。 例,:设计一个名为LMP05的窗体,单击窗体上的命令按钮则定义一个变量X,并将X,次变化后的值分别显示在,个文本框中。 ,(数组 一组连续变量的集合。 整个数组有一个数组名,每一个成员称为数组元素,其实质是变量。 在VBA中数组主要有以下,类: (1)一维数组 (2)二维数组 (1)一维数组 定义:Dim 数组名([下标下限 to]下标上限) [as 类型标识符] 说明: ?圆括号确定数组中元素的个数,其中“下标下限 to 下标上限”用以指定数组元素编号(下标)的最小值和最大值; ?若省略“下标下限”,则默认下限为0; ?数组的类型就是数组各元素的类型,若确省则为变体类型; ?各元素的引用方式为:数组名(下标)。 例,:设计一个名为LMP06的窗体,单击窗体上的命令按钮则定义一个含有,个元素的整型数组X,并将X两次变化后的值分别显示在两组文本框中。 (2)二维数组 二维数组的实质是一个由多个同类型变量组成的矩阵。 定义:Dim 数组名([下限1 to] 上限1, [下限2 to] 上限2) [as 类型标识符] 说明: ?“下限1”和“上限1”指定数组行数和行号范围;?“下限2”和“上限2”指定数组列数和列号范围;?元素引用方式:数组名(下标1,下标2) 例,:设计一个名为LMP07的窗体,单击窗体上的命令按钮,则将一个,行,列的整型数组X的各元素值分别显示在窗体中的对应文本框中。 ,(对象变量 Access建立的数据库对象及其属性,可被看作变量来使用。 对象的引用格式: 61/77 NCRE二级Access数据库程序设计讲义(刘春立) Forms(或Reports)!窗体名(或报表名)!控件名[.属性名] (1)控件常用属性 (2)特殊对象--DoCmd (1)控件常用属性 标题: Caption 控件值: Value 宽度: Width 高度: Height 上边距: Top 左边距: Left 是否可用:Enabled 是否可见:Visible 前景色: Forecolor 背景色: Backcolor 字体: FontName 字号: Fontsize 例,:设计一个名为LMP08的窗体,其中有一标签,其显示内容为“举例”,有3组8个命令按钮分别实 现标签的移动、缩放,和其字体的缩放。 (2)特殊对象---DoCmd 功能: 通过调用包含在内部的方法来实现VBA编程中对Access的操作。 调用格式: DoCmd.方法名 [参数列表] 主要方法: ?打开对象:OpenForms、OpenReport ?关闭对象:Close ?退出Access:Quit ?记录定位:GotoRecord ?对象操作:CopyObject、DeleteObject、Rename ?窗口操作:Maximize、Minimize、MoveSize ?改变控件焦点:GoToControl ?发出警告声:Beep 例,:将第七章例,所建窗体功能改用模块实现,窗体另存为LMP09。 四、VBA表达式 与Access相同。 五、VBA函数 ,(数学函数 ,(字符串函数 ,(日期/时间函数 ,(类型转换函数 ,(输入函数 ,(消息函数 ,(数学函数 (1)绝对值:Abs (2)取整: 负数取小值:Int、负数取大值:Fix (3)平方根:Sqr (4)随机数:Rnd 生成一个0,0.999999之间的随机数。 62/77 NCRE二级Access数据库程序设计讲义(刘春立) 例10:设计一个名为LMP10的窗体,在窗体上添加一个红色矩形框,使当窗体运行时矩形框的位置可随机 变化。 提示:设置窗体的计时器触发(Timer)事件变化矩形框的位置,通过窗体的计时器间隔(TimerInterval) 属性调整变化间隔时间。 例11:设计一个名为LMP11的窗体,在窗体上添加一个标签,使其能动态显示系统时间。 ,(字符串函数 (1)求子串:InStr (2)求长度:Len (3)字符串截取: 左:Left、右:Right、任意:Mid (4)空格生成:Space (5)大小写转换: 小转大:Ucase、大转小:Lcase (6)空格删除: 首:Ltrim、尾:Rtrim、首尾:Trim ,(日期/时间函数 (1)求系统日期和时间 日期:Date、时间:Time、日期和时间:Now (2)截取日期分量 年:Year、月:Month、日:Day、星期:Weekday (3)截取时间分量 时:Hour、分:Minute、秒:Second ,(类型转换函数 (1)字符串转字符代码(ASCII码):ASC (2)字符代码转字符:CHR (3)数值转字符串:STR (4)字符串转数值:VAL ,(输入函数 格式:InputBox(提示信息[,标题][,字符表达式][,左边距][,上边距]) 说明: (1)用于接收用户从键盘上输入的数据; (2)函数返回值为从键盘上输入的数据,类型自动匹配; (3)“提示信息”是显示在对话中用于提示用户输入的信息; (4)“标题”是对话框标题栏上显示的内容; (5)“字符表达式”是默认输入内容; (6)“左边距”是对话框距屏幕左边的距离; (7)“上边距”是对话框距屏幕上边的距离。 ,(消息函数 格式:MsgBox(消息,[,样式][,标题]) 说明: (1)该函数用于显示操作提示或反馈消息,以提示用户做出反映; (2) “消息”是显示在对话中的信息; (3)“样式”决定消息框内的按钮和图标的种类和数目,它是“按钮类型”、“图标类型”、“缺省按 钮”,个数值之和。 63/77 NCRE二级Access数据库程序设计讲义(刘春立) ? 按钮类型 值 符号常量 按钮类型 , VbOkOnly “确定” , VbOkCancel “确定”和“取消” , VbAbortRetryIgnore “终止”、“重试”和“忽略” , VbYesNoCancel “是”、“否”和“取消” , VbYesNo “是”、“否” , VbRetryCancel “重试”、“取消” ? 图标类型 值 符号常量 图标 16 VbCritical 危险 32 VbQuestion 疑问 48 VbExclamation 警告 64 VbInformation 消息 ? 缺省按钮 值 符号常量 缺省按钮 0 VbDefaultButton1 第,个 256 VbDefaultButton2 第,个 512 VbDefaultButton3 第,个 (4) “标题”是对话框标题栏上显示的内容; (5)函数返回值 根据用户对出现的对话框的反映动作,函数返回以下不同的值: 64/77 NCRE二级Access数据库程序设计讲义(刘春立) 值 符号常量 所选按钮 1 VbOk “确定” 2 VbCancel “取消” 3 VbAbort “终止” 4 VbRetry “重试” 5 VbIgnore “忽略” 6 VbYes “是” 7 VbNo “否” 第四节 VBA流程控制语句 一、语句的概念 二、语句的书写规则 三、语句的类型 四、注释语句 五、声明语句 六、赋值语句 七、流程控制语句 一、语句的概念 能够完成某项操作的一条命令。 一个程序由若干个语句组成。 二、语句的书写规则 ,(一般一行写一个语句; ,(若语句太长,一行写不下,可以用续行符“_”将语句连续写在下一行; ,(可以用冒号将多个语句分隔写在一行。 三、语句的类型 ,(注释语句; ,(声明语句; ,(赋值语句; ,(流程控制语句 四、注释语句 ,(功能 对程序及程序中的语句的功能进行解释,为程序的阅读提供参考。 注释语句在程序运行时不执行。 ,(格式 65/77 NCRE二级Access数据库程序设计讲义(刘春立) 格式一:rem 注释字符串 必须单独占一行。 格式二:’ 注释字符串 既可以单独占一行也可以加在语句的尾部。 五、声明语句 用于定义符号常量、变量、数组或过程的语句。 六、赋值语句 ,(功能 用于给变量赋值。 ,(格式 [Let] 变量名,表达式 七、流程控制语句 ,(概念 ,(选择结构程序设计 ,(循环结构程序设计 ,(概念 控制程序执行流程的语句。 程序结构主要分为顺序、选择(分支)和循环三种结构。 顺序结构就是按照语句的书写顺序依次执行;选择结构是根据某个条件的成立与否分别选择执行不同 的语句序列;循环结构就是重复执行一组语句。 流程控制语句就是为了实现选择结构和循环结构而提供的语句。 ,(选择(分支)结构程序设计 (1)if 语句 (2)Select Case语句 (3)可以实现选择操作的函数 (1)if 语句 ? 格式一 If <条件> Then <语句序列> End If 功能:实现单分支程序结构。 注意:当语句序列只有一个语句时,可写为:If <条件> Then <语句> 执行流程: 假 条件 真 语句序列 例12:设计一个名为LMP12的窗体,其功能是根据输入的圆半径分别计算圆周长、圆面积和圆球体积,若 圆半径?,则显示错误提示信息并重新输入。 66/77 NCRE二级Access数据库程序设计讲义(刘春立) 例13:设计一个有容错机制的名为LMP13的加法练习窗体。 ?格式二 If <条件> Then <语句序列,> Else <语句序列,> End If 功能:实现双分支程序结构。 注意:当语句序列只有一个语句时,可写为:If <条件> Then <语句1> Else <语句2> 执行流程: 真 假 条件 语句序列语句序列 , , 例14:设计一个有容错机制的名为LMP14的加减法练习窗体。 ?格式三 If <条件,> Then <语句序列,> ElseIf <条件,> then <语句序列,> ElseIf <条件,> then <语句序列,> „„ End If 功能:实现多分支程序结构。 执行流程: 真 假 条件 , 真 假 语句序列条件 , , 真 假 语句序列 条件 , , …… 语句序列 , 67/77 NCRE二级Access数据库程序设计讲义(刘春立) 例15:设计一个有容错机制的名为LMP15的算术运算综合练习窗体。 例16:用分支嵌套重新设计例15。 (2)Select Case语句 格式:Select case <测试表达式> case <匹配表达式1> <语句序列1> case <匹配表达式2> <语句序列2> „„ case <匹配表达式n> <语句序列n> case else <语句序列n+1> End Select 功能:实现多分支程序结构。 说明: ?“测试表达式”可以是数值表达式或字符表达式,通常为变量; ?“匹配表达式”必须与“测试表达式”的类型相同; ? “匹配表达式”称为域值,可以是下列形式之一: ? (<表达式1>[,<表达式2>]„„ 列表匹配。各“表达式”值为“或”关系,即当“测试表达式” 的值与它们中任意一个相同时,条件为真。 ? ( <表达式1> to <表达式2> 范围匹配。若“测试表达式”的值在“表达式1”至“表达式2”之间,条件为真。 ? (is <关系表达式> 条件匹配。当“测试表达式”满足“关系表达式”指定的条件时,条件为真。 注意:以上三种形式可组合使用。 执行流程: = 真 测试表达式 匹配表达式1 语句组1 假 = 真 匹配表达式2 语句组2 假 …… …… 假 = 真 匹配表达式n 语句组n 假 真 是否有else, 语句组n+1 假 68/77 NCRE二级Access数据库程序设计讲义(刘春立) 例17:用Select语句重新设计例15。 例18:某运输公司对用户计算运费,路程越远,每公里运费越低,标准如下: S,250 没有折扣 250?S,500 2%折扣 500?S,1000 5%折扣 1000?S,2000 8%折扣 2000?S,3000 10%折扣 3000?S 15%折扣 设计窗体LMP18,根据输入的基本运费、货物重量和运输距离,计算总运费。 (3)可以实现选择操作的函数 ? iif函数 ? switch函数 ? choose函数 ? iif函数 格式: iif(条件表达式,表达式1,表达式2) 功能: “条件表达式”为真值,函数返回“表达式1”的值;否则,函数返回“表达式2”的值。 例19:用iif函数重新设计例14。 ? Switch函数 格式: switch(条件表达式1,表达式1[,条件表达式2,表达式2]„„[条件表达式n,表达式n]) 功能: 从左至右分别计算并判断各“条件表达式”的值,如果为真,则函数返回对应表达式的值。 例20:用Switch函数重新设计例15。 ? choose函数 格式: choose(索引式,选项1[,选项2,„„, 选项n]) 功能: 根据索引式的值来返回选项列表中的某个值。索引式值为1,返回选项1;索引式值为2,返回选项2, 依次类推。 例21:设计一个名为LMP21的窗体,其功能是判断输入的日期是星期几,若不输入则为系统日期。 ,(循环结构程序设计 (1)当型循环 (2)直到型循环 (3)步长循环 (4)循环嵌套 (,)当型循环 ?格式一 ?格式二 ?格式三 ?注意事项 ?格式一 Do While 〈表达式〉 语句组 69/77 NCRE二级Access数据库程序设计讲义(刘春立) Loop 执行流程: 假 表达式 真 语句组 例22:设计窗体LMP22,根据用户指定的n值,求表达式1+2+3+„„+n的值。 ?格式二 Do Until 〈表达式〉 语句组 Loop 执行流程: 真 表达式 假 语句组 例23:用格式二重新设计例22。 例24:设计窗体LMP24,根据用户指定的n值,求n!。 ?格式三 While 条件表达式 语句组 Wend执行流程: 与格式,相同。 例25:用格式三重新设计例22。 例26:设计窗体LMP26,根据用户指定的n值,求表达式1-3+5-7+„„+(-)n的值。 ?注意事项 ?(格式,和格式,可以在循环体中使用Exit Do语句强制退出循环,而格式,则不可以。 例27:设计窗体LMP27,其功能是输入一个正整数,判断其是否素数。 ?(格式,是与其它版本的兼容格式,建议不用。 (2)直到型循环 ?格式一 70/77 NCRE二级Access数据库程序设计讲义(刘春立) ?格式二 ?格式一 Do 语句组 Loop While <表达式> 执行流程: 语句组 表达式 真 假 例28:用该格式重新设计例22。 例29:设计窗体LMP29,求解兔子繁殖问题。有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月又生一对兔子。假设所有兔子都不死,问两年后一共有多少对兔子, ?格式二 Do 语句组 Loop Until <表达式> 执行流程: 语句组 表达式 假 真 例30:用该格式重新设计例22。 例31:设计窗体LMP25,求解猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩下一个桃子了。问第一天猴子共摘下多少桃子, (3)步长循环 格式: For 循环变量=初值 To 终值 [Step 步长] 语句组 Next [循环变量] 71/77 NCRE二级Access数据库程序设计讲义(刘春立) 执行流程: 循环变量,初值 假 循环条件成立, 真 语句组 循环变量增加步长 当步长>0时,循环条件为:循环变量<=终值;当步长<0时,循环条件为:循环变量>=终值。 说明: ?步长为1时,关键字Step可以省略。一般步长为整数。 例32:用步长循环重新设计例22。 ?循环过程中可以设置条件使用Exit For强行终止循环。 例33:用步长循环重新设计例27。 (4)循环嵌套 一个循环的循环体中又包含另一个循环,这种结构称为循环嵌套。包含另一个循环的循环称为外层循 环,被包含的循环称为内层循环。 一个循环的循环体中可以嵌套多个循环。 内层循环还可以嵌套另一个循环。 各种循环语句允许相互嵌套。 执行流程: 假 条件表达式, 真 语句序列 当直语句序列 型到循型 环 循 假 环 条件表达式, 真 语句序列 72/77 NCRE二级Access数据库程序设计讲义(刘春立) 例34:设计窗体LMP34,其功能是输出n以内的所有素数,n由用户指定。 例35:设计窗体LMP35,求解百钱买百鸡问题。我国古代数学专著《算经》中有一道题:“鸡翁一,值钱 五;鸡母一,值钱三;鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何,”。 例36:设计窗体LMP36,其功能是将从键盘上输入的10个整数,按由小到大的顺序输出。 第五节 过程调用与参数传递 一、过程调用 二、参数传递 一、过程调用 ,(子过程 ,(函数过程 ,(子过程 定义格式: [Public|Private][Static] Sub 子过程名([形参表列]) 语句序列 End Sub 说明: (1)Public和Private表示子过程是公用的还是私用的,公用过程可在整个程序范围内被调用,私用过 程只能在所定义的模块范围内被调用。 (2)Static表示该过程中的局部变量是静态变量,在过程被调用后其值仍然保留; (3)“形参表列”的一般形式是: 变量名, [As 类型],„„? 可以在过程中使用Exit Sub语句强制退出子过程。 调用格式: 格式,:Call 子过程名([实参表列]) 格式,:子过程名 [实参表列] 例37:设计一个打开指定窗体的子过程。 ,(函数过程 定义格式: [Public|Private][Static] Function 子过程名([形参表列]) [As 类型] 语句序列 [函数名=表达式] End Function 说明: (1)函数属性和参数与子过程相同; (2)“函数名=表达式”的作用是使函数返回表达式的值; (3)可以在函数中使用Exit Function语句强制退出函数过程。 调用格式: 格式,:函数过程名([实参表列]) 格式,:函数过程名 [实参表列] 例38:设计一个求阶乘的函数过程,函数返回值为求得的阶乘值,若有错误则返回0。 例39:设计一个判断素数的函数过程。 73/77 NCRE二级Access数据库程序设计讲义(刘春立) 二、参数传递 ,(传值调用 ,(传址调用 ,(传值调用 定义子过程或函数过程时,参数名前若指定属性ByVal,则参数传递方式为按值传递,称为传值调用。 传值调用时,将实参的值传递给形参变量,形参变量值的改变不影响实参变量的值。 例40:设计一个求两个非负整数的最大公约数的函数过程。 ,(传址调用 定义子过程或函数过程时,参数名前若指定属性ByRef,则参数传递方式为按地址传递,称为传址调用。 传址调用时,将实参的地址传递给形参变量,对形参变量的改变就是对实参变量的改变。 注意:若实参是常量、函数或表达式,则仍为传值调用。 例41:设计一个交换两个变量值的子过程。 例42:设计一个将一个大于2的偶数分解为两个素数的子过程。 第六节 变量属性与自定义类型 一、局部变量 在一个过程内部定义的变量。其作用域为定义它的过程内部。 例43:测试局部变量的作用域。 若定义时指定属性Static,则为静态局部变量,其作用域是局部的,但生存期是永久的(过程结束后其值保留,下次调用时延续其值)。 例44:设计一个随机数生成函数。 二、模块变量 在窗体或模块内的过程外定义的变量。 其作用域为整个窗体或模块,即本窗体或本模块内的所有过程都能访问它。 例45:测试模块变量的作用域。 三、全局变量 在标准(公共)模块中的数据声明部分用Public或Global定义的变量。 其作用域为整个程序,可以被程序中任何一个模块和窗体访问。 其生存期是永久的。 例46:测试全局变量的作用域。 注意:当各种同名变量发生冲突时,在低级别变量作用域内,低级别变量有效。 四、自定义类型 又称用户定义数据类型。由若干个标准类型组成,一般用于保存数据表中的一条纪录,故又称纪录类型。 定义格式: Type 新类型名 成员名1 As 类型 74/77 NCRE二级Access数据库程序设计讲义(刘春立) 成员名2 As 类型 „„ End Type 例47:分别定义一个存放学生纪录的变量和数组,并将其值显示在窗体的对应文本框中。 第七节 VBA数据库编程 一、DAO技术 DAO(数据访问对象)是VBA提供的一种数据访问接口,使用它可以灵活地访问数据库并进行各种操 作。 ,(DAO库的引用 ,(DAO模型结构 ,(使用方法 ,(DAO库的引用 (1)打开VBE窗口; (2)选择“工具”菜单中的“引用”项; (3)在“引用”对话框中选择“Microsoft DAO 3.6 Object Library”并确定。 ,(DAO模型结构 数据库引擎,最高层对 象,可创建多个工作区 工作区对象,一 个工作区可打错误对象,表示 开多个数据库。 程序出错时的DBEngine Error(s) 错误信息。 Workspace(s 数据库对象,一 ) 个数据库可打查询对象,其功 开多个表或查能与纪录集对 询。 Database(s) Querydef(s象相似。 ) 纪录集对象,一 个纪录集包含 RecordSet(s) 多个字段对象, 它提供了许多 字段对象,可实能实现纪录常 Field(s) 现字段的编辑。 规操作的方法。 ,(使用方法 (1)创建工作区 (2)打开数据库 (3)选择纪录集 (4)浏览纪录 (5)操作纪录 75/77 NCRE二级Access数据库程序设计讲义(刘春立) (6)关闭和回收纪录集与数据库 (7)举例 (1)创建工作区 Dim 工作区变量 As Workspace Set 工作区变量=DBEngine.Workspace(序号) 此步可省略,若省略则默认为打开0号工作区。 (2)打开数据库 Dim 数据库变量 As Database Set 数据库变量=工作区变量.OPenDatabase(数据库名) 若打开当前数据库,则前两步可用以下语句替代: Set 数据库变量=CurrentDB() (3)选择纪录集 Dim 纪录集变量 As RecordSet Set 纪录集变量=数据库变量.OpenRecordSet(表名,查询名,SQL语句) (4)浏览纪录 通过纪录集对象的相应属性和方法可实现纪录的浏览。 访问字段:Fields(字段名,字段编号) 注意:第一字段编号为,,以此类推。 纪录定位: 前移:MovePrevious 后移:MoveNext 首纪录:MoveFirst 尾纪录:MoveLast 纪录n:Move n 测试状态:文件首:BOF 文件尾:EOF (5)操作纪录 编辑纪录:Edit 该方法使纪录进入可编辑状态,之后可通过Fields(字段)属性编辑数据。 添加纪录:AddNew 该方法使纪录进入追加状态,之后可将数据写入纪录的对应字段属性中。 更新纪录:Update 编辑和添加的数据只是临时存放在缓冲区中,在接到更新命令后,才真正实现。 删除纪录:Delete (6)关闭和回收纪录集与数据库 关闭:Close 回收:纪录集或数据库对象名=Nothing (7)举例 例48:使用DAO技术设计一个实现纪录的浏览、编辑、添加和删除的名为LMP48的窗体。 二、ADO技术 DAO只能用于本地数据库连接,它没有远程连接能力。 ADO(活动数据对象)既能实现本地连接,也能实现远程连接,是一种替代DAO的数据库连接新技术。 ,(ADO库的引用 ,(ADO模型结构 ,(使用方法 ,(ADO库的引用 (1)打开VBE窗口; 76/77 NCRE二级Access数据库程序设计讲义(刘春立) (2)选择“工具”菜单中的“引用”项; (3)在“引用”对话框中选择“Microsoft ActiveX Data Objects 2.1 Library”并确定。 ,(ADO模型结构 Error(s) 错误对象,连接对象,用 是程序出错于建立与数 信息。 据源的连接。 Connection 命令对象,可 Command 执行一个参 字段对象,数查询或 是纪录集中SQL语句。 RecordSet 的字段数据 信息。 纪录集对象, Field(s) 是查询结果。 ,(使用方法 本章考点 ,(模块的基本概念; ,(创建模块并编写常用的事件过程; ,(数据类型与数据元素; ,(基本流程控制语句的语法; ,(过程的调用与参数传递; ,(变量属性与自定义类型; DAO与ADO技术。 ,( 考试分值: 笔试:26,30分 机试:0,30分 77/77
本文档为【NCRE二级Access数据库程序设计讲义】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_511210
暂无简介~
格式:doc
大小:235KB
软件:Word
页数:0
分类:互联网
上传时间:2017-09-26
浏览量:23