您的当前位置:首页Access数据库

Access数据库

2020-11-17 来源:智榕旅游


第2章 Access数据库基础

Microsoft Access作为一种关系型数据库管理系统,是中小型信息管理系统的理想开发环境,在当前数据库领域,已有越来越多的人开始采用Access。它是一个功能强大的数据库管理系统和MIS(Management Information System)系统开发工具,具有界面友好、易学易用、开发简单、接口灵活等特点。本章主要介绍进行Access数据库开发所需要的基础知识。

2.1 数据库理论基础

2.1.1 数据库概述

数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。

通常所说的数据库系统则是指在计算机系统中引入了数据库后的系统构成,一般由数据库、数据库管理系统及其开发工具、应用系统、数据管理员和用户构成的。

2.1.2 关系型数据库简介

按照数据关系模型的不同,数据库可分层次性、网状型和关系型3种类型。其中关系型数据库是最重要的、目前应用最为广泛的数据库类型。关系数据库早已成为发展的主流, 几乎所有新推出的数据库管理系统产品都是关系型的。关系型数据库在计算机数据管理的发展史上是一个重要的里程碑,这种数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,目前较大的信息系统都是建立在结构化数据库设计之上的。下面我们阐述关系数据库定义和常见的关系型数据库产品。

1. 关系数据库的定义

IBM公司的E.F.Codd在1976年6月发表了“关于大型共享数据库数据的关系模型”论文,首先概述了关系数据模型及其原理,并把它用于数据库系统中。他指出,关系型数据库是指一些相关的表和其他数据库对象的集合。这个定义表达了三部分含义。第一,在关系数据库中,信息被存放在二维表格结构的表(Table)中,一个关系数据库包含多个数据表,每一个表又包含行(记录)和列(字段)。可以将表想象为一个电子表格,其中和行对应的是记录,和列对应的是字段。第二,这些表之间是相互关联的。表之间的这种关联性是由主键和外键所体现的参照关系实现的。第三,数据库不仅仅包含表,而且包含了其他数据库对象,如:视图、存储过程、索引等。如表2-1就是一个典型的关系型数据表。

Access数据库开发实例导航 表2-1 雇员工资表

雇员ID 08000102 08000305 雇员工资号 08000102 08000305 雇员姓名 陈令玢 付佳 所属部门 销售部 服务部

2.1.3 常见的关系数据库

现在比较流行的大中型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix等,常用的小型数据库有Access、Pradox、Foxpro等,现在个人用户比较常用的主要是基于中小型数据库的SQL Server和本书将重点介绍的Access。 2.1.4 SQL语言基础

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,大多数流行的关系型数据库管理系统,如Oracle、Sybase、Microsoft SQL Server、Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。下面,我们就来详细介绍一下SQL语言的基本知识。

1. SQL语言概述

SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data defintion)和数据控制(Data Control)功能于一体。

在SQL语言中有两个基本的概念——基本表和视图。基本表是本身独立存在的表,在SQL中一个关系就对应一个表。一个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。而视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。在介绍了SQL的基本概念后会给出常用的SQL语句。

2. 常用的SQL语句

(1)SELECT语句

在众多的SQL命令中,SELECT语句是使用最频繁的。SELECT语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。简单的SELECT语句语法格式如下:

SELECT [ALL | DISTINCT ] Column1 [, Column2,etc] FROM Table_Name [WHERE Condition]

[ORDER BY Column ASC | DESC];

SELECT语句中位于SELECT关键词之后的字段名用来决定哪些字段将作为查询结果返回。用户可以按照自己的需要选择任意字段,还可以使用通配符“*”来设定返回表格中的所有字段。可选的ALL和DISTINCT关键词用来决定是否保留结果数据中重复的记录行。

SELECT语句中位于FROM关键词之后的表名称用来决定将要进行查询操作的目标表。

12

第2章 Access数据库开发基础 对于简单的单表查询则只须指定目标表名称即可,对于多表查询和嵌套查询则要复杂的多。

SELECT语句中的WHERE可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。在WHERE条件从句中,可以使用如表2-2所列的运算符来设定查询标准。

表2-2 运算符

运算符 = > < >= <= <> LIKE 意义 等于 大于 小于 大于等于 小于等于 不等于 找出满足给定匹配条件的字符串 其中LIKE运算符在WHERE条件从句中非常重要。LIKE运算符的功能非常强大,通过使用LIKE运算符可以找出满足给定匹配条件的字符串。在进行匹配时可以使用“%”匹配零个或多个字符;使用“_”匹配任意单个字符;“\\”定义转义字符,以去掉特殊字符的特定含义,使其被作为普通字符看待。在WHERE条件从句中还可以使用测试指定字段值是否为空值的IS [NOT] NULL语句。还有一些复杂的语句可以在WHERE条件从句中使用,此处不一一给出了。

SELECT语句中的ORDER BY可选从句可以强制将查询结果按指定字段进行升序或降序排列。在排序时可以指定多个字段,则会依次对结果按照指定的字段进行排序。

下面是一个简单数据查询的例子,从employee数据表中查询所有名以“T”开头的姓名并按照姓氏以升序排列。

SELECT firstname, lastname FROM employee

WHERE firstname LIKE ‘T%’ ORDER BY firstname ASC;

对于SELECT语句的查询操作,还可以使用预定义的聚合函数把一列中的值进行聚合运算,返回单值的函数或是对结果进行计数、分组等操作。还可以以内连接、自连接、外连接和复合条件连接等方式进行多个表的连接查询。另外,多个SELECT语句可以嵌套或进行SQL的集合操作。

(2)CREATE、DROP、ALTER语句

这3个语句用来实现数据定义功能,数据定义包括域定义、索引的定义、视图的定义、基本表的定义和数据库的建立与撤消。下面简单介绍各个定义的语法。

① 域定义

SQL中的域相当于一般的编程语言中的基本数据类型,在SQL语言中的基本域如表2-3所示。

表2-3 SQL中的基本域

域 char(n) varchar(n) 固定长度的字符串 可变长字符串 13

说明 Access数据库开发实例导航 int smallint numeric(p,d) 域 Real double precision date time interval 整数 小整数类型 定点数,小数点左边p位,右边q位 续表

说明 浮点数 双精度浮点数 日期(年、月、日) 时间(小时、分、秒) 两个date或time类型数据之间的差

可以使用CREATE DOMAIN语句定义域,语法格式为:

CREATE DOMAIN Domain_Name Base_Damain

其中Domain_Name为新定义域的名称,而Base_Damain则是新域所派生自的域。例如下面的语句定义了一个基于varchar的名为user_ID的域。

CREATE DOMAIN user_ID varchar(20)

② 基本表的定义

基本表是本身独立存在的表,在SQL中可以定义、修改和删除表,语法格式依次如下。

CREATE TABLE Table_Name (

Column1 Domain [DEFAULT Default_Value] [NOT NULL | IDENTITY] [,Column1 Domain [DEFAULT Default_Value] [NOT NULL | IDENTITY]] …… [,PRIMARY KEY (Column_Name [,Column_Name] …)] [,FOREIGN KEY (Column_Name [,Column_Name] …) REFERENCES Table_Name (Column_Name [,Column_Name]…)] [,CHECK (Condition)]);

ALTER TABLE Table_Name

[ADD …] [DROP …] [MODIFY …] ;

DROP TABLE Table_Name;

在CREATE语句中,创建一个新表时定义表中的各个字段的名称,所属的域(也就是数据类型)还可以指定字段属性,字段属性包括字段的缺省值、是否允许为空和是否为标识值。缺省值是该字段默认情况下的值,使用DEFAULT关键词指定;空值表示没有任何值,可以使用NULL和NOT NULL进行控制;标识字段是唯一标识表中每条记录的特殊字段,只能把NUMERIC型或INT型字段设为标识字段;其他的关于主键、外键、引用及CHECK约束也是用来实现数据完整性的。在ALTER语句中,则通过ADD、DROP、MODIFY子语句添加、删除或修改表中的字段。

下面的CREATE语句首先创建一个包含firstname、lastname、employee_ID和age 4个字段的employee表,并定义了主键。接下来的ALTER语句修改表的定义,在表中添加了gender字段。最后删除employee表。

CREATE TABLE employee ( firstname char[15],

lastname char[15] not null, 14

第2章 Access数据库开发基础 employee_ID char[15], age int, primary key (employee_ID));

ALTER TABLE employee ADD gender char[6];

DROP TABLE employee;

③ 数据库的建立与撤消

数据库的建立与撤消的语法相对简单,如下:

CREATE DATABASE Database_Name; DROP DATABASE Database_Name;

(3)INSERT、UPDATE、DELETE语句

这3个语句用来实现数据的修改功能,依次实现数据的插入、更新和删除。下面逐个介绍。

① 插入数据

向表或视图中添加一个新记录,要使用INSERT语句,语法格式如下:

INSERT [INTO] {Table_Name | View_Name} [(Column_List)] {DEFAULT VALUES | Values_List | Select_Statement};

在插入记录时,要确保字段列表与值的列表相对应。例如,demo表中只有两个字段为col1和col2,则插入一条记录时,INSERT语句可以如下,其中val1和val2分别为与col1和col2相对应的字段值。

INSERT INTO demo {col1, col2} VALUES {val1, val2 };

如果在使用INSERT语句向一个表中插入一条新记录,但有某一字段没有提供数据。在这种情况下,有下面的4种可能:

 如果该字段有一个缺省值,该值会被使用。

 如果该字段可以接受空值,而且没有缺省值,则会被插入空值。  如果该字段不能接受空值,而且没有缺省值,就会返回错误。

 如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段

的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。

上面的这个例子是最为简单的插入数据的操作,还可以使用子查询语句,插入其结果,达到一次插入多条记录的效果。

② 更新数据

要修改表中已经存在的一条或多条记录,应使用UPDATE语句,语法如下:

UPDATE Table_Name | View_Name

SET Column1 = expression | Select_Statement [,Column1 = expression | Select_Statement]… [WHERE clause];

WHERE子句来选择更新特定的记录,如果不提供WHERE子句,则所有的记录都将被更新。下面的例子只更新employee表中名字为Tomas的记录的age字段。

UPDATE employee SET age=’27’ WHERE firstname=’ Tomas’;

③ 删除数据

要从表中删除一个或多个记录,需要使用DELETE语句,语法如下:

DELETE [FROM] {table_name|view_name} [WHERE clause];

WHERE子句用来选择要删除的记录。如果不提供WHERE子句,则所有的记录都将被

15

Access数据库开发实例导航 删除。下面的例子只删除employee表中名字为Tomas的记录。

DELETE employee WHERE firstname=’ Tomas’;

2.2 Access结构和工作界面

2.2.1 Access的内部结构

在Access数据库中,任何一个有名称的事物都可以称之为一个对象。通常,一个Access数据库包括表、查询、窗体、报表、宏、模块和页几种对象,这些对象用于收集、存储和操作不同的信息。每一个对象都不是对立的,而只是作为Access数据库的一部分存在,数据库则是这些对象的集合。

1. 表

表是数据库中存储数据的最基本的对象,常称为“基表”,是构成数据库的一个重要组成部分。Access中的表是二维表,每个表都有键(关键字可以为一个字段或多个字段),以使表中的记录唯一(记录不能重复,它与实体一一对应)。在Access 2002中,一个表有设计视图和数据表视图两种视图方式:

(1)设计视图

用于创建和修改表的结构,它为用户提供了方便的可视化定义表的方法。用户只要像填空回答问题一样,将表中每个字段的信息进行描述,例如字段名和字段数据类型等,用户甚至可以指定字段数据的默认值、数据的有效性,系统就会自动生成一个符合用户要求的表,而无需输入更多复杂的SQL语句。用户还可以随时根据实际情况的变化对表结构进行修改。主键的建立、表和表之间关系的定义也非常方便的。Access 2002内的Northwind数据库的“产品”表的设计视图如图2-1所示。

(2)数据表视图

使用表的数据表视图可以查看、输入、修改或删除表中的数据。对数据进行筛选或排序,打印或将数据导出为其他格式的文件(如Excel),“产品”表的数据表视图如图2-2所示。

图2-1 表的设计视图 图2-2 数据表视图

16

第2章 Access数据库开发基础 2. 查询

查询是Access数据库的主要组件之一,而查询功能也是Access数据库软件中最强的一项功能。Access用户可利用查询工具,通过指定特殊字段、定义字段的顺序、建立计算表达式并输入条件以及定义每个字段的筛选条件等来选择想要的查询记录,对存储在Access表中的有关信息进行提问。还可以使用查询作为窗体、报表和的记录源。在Access 中有下列几种查询:

(1)选择查询

选择查询是最常见的查询类型,它从一个或多个表中检索数据,并且在可以更新记录的数据表中显示结果。也可以使用选择查询来对记录进行分组,并且对记录作总计、计数、平均值以及其他类型的聚合计算。

(2)参数查询

参数查询是一种可以重复使用的查询,每次使用时都可以改变其条件,每当运行一个参数查询时,Access都会显示一个对话框,提示用户输入新的条件。

(3)交叉表查询

使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交叉表查询计算数据的总计、平均值、计数或其他类型的总和。

(4)操作查询

操作查询可以从查询表创建新的数据库表,或者对一个表进行重大的改变。操作查询允许用户在表中添加或者删除记录,或者基于在查询设计网格中所输入的表达式对数据进行改变。也就是说,操作查询不像选择查询那样只是查看、浏览满足检索条件的记录。而是要对满足条件的记录进行更改。操作查询包括4种类型:删除查询、更新查询、追加查询和生成表查询。

(5)SQL查询

SQL查询是用户使用SQL语句的表达式创建的查询。可以用结构化查询语言(SQL)来查询、更新和管理Access数据库。

3. 窗体

窗体是Access中用户和应用程序之间的主要界面,用户对数据库的如何操作都可以通过窗体来完成。通过创建数据输入窗体可以向表中输入数据;创建切换面板,用来打开其他窗体或报表;创建自定义对话框,控制数据的输出、显示或执行某项操作,窗体中的大部分信息来自基表或查询。图2-3是Access 2002内的Northwind数据库中的“客户”窗体。

17

Access数据库开发实例导航

图2-3 “客户”窗体

4. 报表

报表是以打印的表格表现用户数据的一种有效的方式。在Access中,有关报表的打印工作都是通过报表对象来实现的,它负责报表的设计,实现报表的打印。用户可以在报表设计视图窗口中控制每个对象的大小和显示方式,对报表对象的各项内容进行设计和修改,按照用户所需的方式完成打印工作。如图2-4是Northwind数据库中的“各类产品”报表。

5. 模块

模块是Access中实现数据库复杂管理功能的有效工具。模块基本上是由声明、语句和过程组成的集合,它们作为一个已命名的单元存储在一起。模块提供独立的动作流程,并且允许捕捉错误,而宏无法实现这些功能。使用Visual Basic可以编制各种对象的属性、方法,以实现细致的操作和复杂的控制功能。Access 有两种类型的模块:标准模块和类模块。图2-5是Access 2002内的Northwind数据库中的启动模块在Visual Basic窗口中显示的结果。

图2-4 各类“产品报表” 图2-5 启动模块

18

第2章 Access数据库开发基础 2.2.2 Access的工作界面

1. Access的工作窗口

启动Access 2002后,没有打开任何文件时显示工作窗口如图2-6所示。其中包括标题栏、菜单栏、工具栏、状态栏和任务窗格等,同其他的Windows应用程序的工作窗口大体相同。

图2-6 Access 2002的工作界面

2. “数据库”窗口

“数据库”窗口是Access文件的命令中心。在这里可以创建和使用Access数据库或Access项目中的任何对象。当用户打开或是新建一个数据库或项目时,都会打开“数据库”窗口。典型的“数据库”窗口如图2-7所示,由标题栏、工具栏、对象列表、组列表和右侧的窗格组成。

图2-7 “数据库”窗口

“数据库”窗口的状态栏和工具栏与工作窗口的类似。在对象列表中单击某一个对象类型,就可以在右侧窗格中显示数据库中该类型对象的列表,以便用户查看和操作该类型对象。另外,当在“数据库”窗口的状态栏、工具栏或是对象列表和组列表上单击鼠标右键时,会弹出如图2-8所示的菜单,而在右侧窗格区单击鼠标右键时,会弹出如图2-9所示的菜单供

19

Access数据库开发实例导航 用户使用。

图2-8 弹出菜单 图2-9 弹出菜单

2.3 Access基本操作

在本章余下的部分将简单的介绍一些Access的基本操作,这些操作包括创建数据库、创建表、操作表、创建查询、窗体设计、使用报表、使用宏以及数据传递等。本节的操作如无另外说明,各个示例操作都是在Access 2002内带的Northwind数据库中进行的,而数据库格式则采用默认的Access 2000版本。 2.3.1 创建数据库

1. 设计数据库

为了创建一个结构完善、高效且易于维护的数据库,在创建之前要进行仔细认真的数据库设计工作。设计Access关系数据库首先应根据用户的需求对数据管理系统进行分析和研究,全面规划,然后再根据数据库系统的设计规范创建数据库,否则将直接影响着系统的性能。一个成功的数据库设计方案应该将用户的需求充分融入其中,数据库的设计一般遵循以下几个步骤:

(1) 确定创建数据库所要完成任务的目的。 (2) 确定创建数据库中所需要的表。 (3) 确定每个表中需要的字段。 (4) 确定各个表之间的关系。 (5) 优化设计。

(6) 输入数据并创建其他数据库对象。

(7) 使用Access分析工具改进数据库的设计。

当然,上面给出的只是设计数据库所遵循的一般步骤,对于特殊的情况,其步骤可能会有所增减或是先后次序有所改变,不管怎样都是以设计一个优秀的数据库为目的。

20

第2章 Access数据库开发基础 2. 创建数据库

Microsoft Access提供两种创建Access数据库的方法:可以先创建一个空数据库,然后再添加表、窗体、报表及其他对象,这是最灵活的方法,但需要分别定义每一个数据库要素。也可以使用“数据库向导”仅一次操作即可为所选数据库类型创建必要的表、窗体及报表,这是开始创建数据库的最简单的方法。无论哪一种方法,在数据库创建之后,都可以随时修改或扩展数据库。

(1)新建空数据库

① 在“新建文件”任务窗格中的“新建”栏选择“空数据库”命令,此时会弹出如图2-10所示的“文件新建数据库”对话框,在其中指定数据库的位置,并输入新数据库的文件名称即可。

图2-10 “新建文件数据库”对话框

② 单击“文件新建数据库”对话框的“创建”按钮,Access会在指定位置创建一个空数据库,并在“数据库”窗口中打开它,此时数据库中没有任何对象,如图2-11所示,用户可以在“数据库”窗口为新数据库创建需要的对象。

图2-11 “数据库”窗口中的新数据库

(2)使用“数据库向导”

21

Access数据库开发实例导航 ① 在“新建文件”任务窗格中的“根据模板新建”栏目下,单击“通用模板”选项。此时会弹出如图2-12所示的“模板”对话框。在模板对话框中“常用”和“数据库”两个选项卡。在“常用”选项卡中可以选择“控数据库”、“现有数据库”和“新数据库”等常用选项,在“数据库”选项卡中则提供了各种数据库类型。这里选择了“订单入口”数据库类型。

图2-12 “模板”对话框

② 选中数据库类型,单击“确定”按钮后,会弹出“文件新建数据库”对话框,用来指定数据库的名称和位置。

③ 在指定了数据库的名称和位置,单击“创建”按钮。接下来会出现“数据库向导”对话框,它将引导用户一步一步地创建数据库的各种对象。对于不同的数据库库类型,“数据库向导”中的选项会有不同,但是具体的步骤大致一样。对于上面选中的“订单入口”数据库类型的“数据库向导”如图2-13所示,在对话框中显示了,订单入口数据库将存储的表为:客户信息、订单信息、订单明细、付款信息、产品信息和我的公司信息。

图2-13 “数据库向导”对话框

④ 单击“下一步”按钮,会弹出如图2-14所示的对话框。该对话框用来选定数据库中不同的表需要的字段,在对话框中列出了该类型数据库中在每个表中可能需要的字段名称,

22

第2章 Access数据库开发基础 用户只需选择需要的字段即可。

图2-14 选择表中的字段

⑤ 选择完表中的字段后,单击“下一步”按钮,会出现如图2-15所示的对话框,用来确定屏幕的显示样式。不同的显示样式可以在对话框左侧的窗口中预览,这里选择“标准”样式。

⑥ 单击“下一步”按钮,接下来弹出的如图2-16对话框用来选择打印报表所用的样式,不同的显示样式可以在对话框左侧的窗口中预览,这里选择“正式”样式。

图2-15 确定屏幕显示样式

23

Access数据库开发实例导航

图2-16 确定打印报表样式

⑦ 单击“下一步”按钮,接下来弹出的如图2-17对话框用来指定数据库的标题,可以选择是否在报表上加一幅图片。

图2-17 指定数据库标题

⑧ 以上基本完成了使用向导构建数据库所需的信息。这时候会出现如图2-18所示的对话框。在其中选中“是的,启动该数据库”复选框,单击“完成”按钮即可启动该数据库。

⑨ 最后,“数据库向导”开始创建“订单入口”数据库。在创建的过程中可能需要用户输入一些相关信息。完成后,会显示如图2-21所示的“主切换面板”,利用它就可以执行相关的输入或查看数据、预览报表等操作。

24

第2章 Access数据库开发基础

图2-18 完成构建数据库 图2-21 主切换面板

3. 其他数据库操作

数据库的其他操作有保存数据库、打开已有的数据库,这些操作都相对简单,此处就不再介绍了。另外,通过选择“文件”菜单中的“数据库属性”命令,可以查看数据库的基本属性。例如上面创建的订单入口数据库的属性如图2-22所示,数据库属性对话框中有常规、摘要、统计、内容和自定义5个类别,分别显示不同方面的属性。

图2-22 “数据库属性”对话框

2.3.2 创建和使用表

1. 创建表

表是关系型数据库管理系统的基本结构。创建表的方式十分灵活,可以使用“表向导”从各种预先定义好的表中为待创建的表选择字段;可以在“设计”视图中创建表,在此可以添加字段,定义每个字段如何显示或处理数据,并创建主键;还可以将数据直接输入到空的数据表中,保存时,Access将分析数据并自动为每一字段指定适当的数据类型及格式。

(1)使用“表向导”创建表

① 在“数据库”窗口中单击“对象”下的“表”选项,双击右侧窗口中的“使用向

25

Access数据库开发实例导航 导创建表”项目。

② 此时弹出如图2-23所示的“表向导”对话框。用户可以在向导的示例表中选择合适的表,选定之后,再选择准备包含在新表中的示例字段。

图2-23 表向导

接下来“表向导”提示指定表的名称和是否用“表向导”设置主键,如图2-24所示。

图2-24 指定表名称

③ 单击“下一步”按钮,“表向导”提示确定新表是否与数据库中其他的表相关,缺省情况下不相关,如图2-25所示。可以单击关系按钮在弹出的关系对话框中选择关系如图2-26所示。

26

第2章 Access数据库开发基础

图2-25 确定新表与已有表的关系 图2-26 “关系”对话框

④ 接下来“表向导”对话框提示以上是向导创建表所需的全部信息,请用户选择向导创建完表之后的操作。用户可以修改表的设计、直接向表中输入数据或是利用向导创建的窗体向表中输入数据。如图2-27所示,单击“完成”创建该表。

图2-27 选择创建表后的动作

(2)在“设计”视图中创建表

① 在“数据库”窗口中单击“对象”下的“表”选项,双击右侧窗口中的“使用设计器创建表”项目。会出现如图2-28所示的表设计器。

图2-28 表设计器

27

Access数据库开发实例导航 ② 在表设计器中定义表中的每个字段。若要将字段插入到表中,请单击要在其下方插入字段的行,然后单击工具栏上的“插入行”或在单击鼠标右键后弹出的菜单中选择“插入行”命令。在“字段名称”列中单击,然后为该字段键入唯一的名称。在“数据类型”列中,保留默认值(文本);或单击“数据类型”列并单击箭头,然后选择所需的数据类型。在“说明”列中键入有关此字段的说明。在字段中添加数据时,此说明将显示在状态栏上,并且将包含在表的“对象定义”中。

③ 定义表的主键。选择将要定义为主键的一个或多个字段,单击工具栏上的“主键”按钮或在鼠标右键菜单中选择“主键”命令。定义主键不是必需的,如果没有定义主键,则在保存表时Access会询问是否让Access创建一个。

④ 最后单击工具栏上的“保存”按钮,然后为表键入一个唯一的名称。就可以打开该表往其中输入数据了。图2-29是一个简单的“学生”表,只有“姓名”和“学号”两个字段,其中“学号”字段为表的主键。

图2-29 使用设计器创建的“学生”表

(3)在数据表中输入数据创建表

① 在“数据库”窗口中单击“对象”下的“表”选项,双击右侧窗口中的“通过输入数据创建表”项目。会出现如图2-30所示的空数据表。默认的列名称是字段1、字段2等。

图2-30 空数据表

② 在数据表中输入数据。可以为每个要用的列重新命名:双击列名称,为该列键入

28

第2章 Access数据库开发基础 一个名称,然后按“Enter”键。然后将每种数据输入到相应的列中。

③ 在将数据添加到要使用的所有列后,即可单击工具栏上的“保存”按钮,保存数据表。同样,Access将询问是否要创建一个主键。这样一个新表就创建成功了。

2. 使用表

数据表的使用包括编辑表中的数据、更改表的外观、查看表中的数据以及打印等。下面一一介绍。

(1)编辑表中记录

编辑表中的记录时,通常在“数据表”视图中完成。编辑表中记录的常见操作有添加、修改、复制和删除记录。

① 添加记录

打开表并切换到“数据表”视图。单击空记录行的第一个字段,开始输入数据,按“Tab”键可转至下一个字段,如图2-31所示。对于自动编号的字段不能输入,对于具有默认值的字段可以按“Ctrl+Alt+Space”键输入默认值。

图2-31 添加记录

② 修改记录

图2-32 修改记录

修改记录的操作也十分简单,在“数据表”视图中选中要修改的字段或字段中的数据即

29

Access数据库开发实例导航 可。当光标位于字段上框线指针变为十字状,此时可选中字段的整个值,以输入新值替换,如图2-32所示。如果要修改某字段数据的一部分,则当光标为插入标志时,在字段数据中进行编辑即可。

③ 复制记录

在“数据表”视图中,选中要复制的数据,单击工具栏上的“复制”按钮或选择鼠标右键菜单的“复制”命令。在目标位置单击工具栏上的“粘贴”按钮或选择鼠标右键菜单的“粘贴”命令即可。

④ 删除记录

在“数据表”视图中选择要删除的记录行,可以按住鼠标左键不放,进行拖动以选中多条记录,如图2-33所示。单击工具栏的“删除记录”按钮或选择鼠标右键菜单的“删除记录”命令,在弹出的提示框中单击“是”按钮,即可删除选中记录。

图2-33 删除记录

(2)更改表的外观

用户可以对数据表的外观进行设置和更改,以满足显示和打印的需要。可以调整行高和列宽度、冻结指定列、显示或隐藏指定列以及一些其他的外观。

① 调整行高和列宽度

可以使用鼠标直接拖动行或列的边缘,以调整行高和列宽度;也可以在“格式”菜单中选择“行高”和“列宽”命令,通过在对话框中改变数值调整行高和列宽度。用鼠标调整行高如图2-34所示。“行高”对话框如图2-35所示。对于调整列宽的操作与之类似。

图2-34 调整行高

30

第2章 Access数据库开发基础 图2-35 “行高”对话框

② 冻结指定列

可以冻结数据表中的一列或多列,这样无论在表中滚动到何处,这些列都会成为最左侧的列,并且始终是可见的。

在“数据表”视图中选定要冻结的列。单击“格式”菜单上的“冻结列”或是右键菜单的“冻结列”命令即可,如图2-36所示。若要解除对所有列的冻结,请选择“格式”菜单上的“取消对所有列的冻结”命令。

图2-36 冻结指定列

③ 显示或隐藏指定列

在“数据表”视图中选中要隐藏的列。单击“格式”菜单上的“隐藏列”或是单击鼠标右键弹出的菜单中的“隐藏列”命令即可隐藏指定列。如果想取消隐藏,可以单击“格式”菜单上的“取消隐藏列”命令,在取消隐藏列中选择要取消隐藏的列,如图2-37所示。

图2-37 “取消隐藏列”对话框

④ 设置数据表格式和字体

单击“格式”菜单上的“数据表”命令,可以在出现的“设置数据表格式”对话框中更改数据表的网格线样式和背景颜色。“设置数据表格式”对话框如图2-38所示。

31

Access数据库开发实例导航 单击“格式”菜单上的“字体”命令,可以在出现的“字体”对话框中更改数据表的字体样式、大小和颜色。“字体”对话框如图2-39所示。

图2-38 “设置数据表格式”对话框 图2-39 “字体”对话框

(3)查看数据

在Access中可以很方便的定位、查找或替换数据、对数据进行排序和筛选,使得用户能够方便的查看和使用表中的数据。

① 定位

使用“编辑”菜单的“定位”命令可以很方便的定位到“数据表”视图首记录、尾记录、当前记录的下一条记录和上一条记录,以及新记录。“定位”命令的子菜单如图2-40所示。

② 查找或替换

对数据的查找和替换是通过“查找和替换”对话框来完成的,可以通过选择“编辑”菜单的“查找”命令调用该对话框,如图2-41所示。

图2-40 “定位”命令子菜单 图2-41 “查找和替换”对话框

如果没有找到搜索项,会弹出如图2-42所示的提示框。

图2-42 搜索结束提示框

③ 对数据进行排序

在“数据表”视图中显示表的数据时,可以使用Access排序功能对记录进行排序,默认的情况下以表的主键进行排序。用户可以选择以特定的字段进行排序。只需选中用来排序的字段,单击“记录”菜单的“排序”命令的子菜单中的“升序排序”命令或“降序排序”命

32

第2章 Access数据库开发基础 令即可。图2-43是“产品”表按照“单价”字段进行降序排序的结果。

图2-43 排序结果

④ 筛选记录

Access通过筛选可以显示与用户条件匹配的记录,而不是显示表中所有的记录。Access有按内容筛选、按窗体筛选、输入筛选目标和高级筛选/排序等几种筛选方法。下面简单地介绍一下按内容筛选。

按内容筛选将数据表中包含选定值的记录检索出来。操作步骤较为简单,在“数据表”视图中打开要进行筛选的表,选中特定的数据以决定返回哪些记录,选择“记录”菜单的“筛选”命令的子菜单中的“按选定内容筛选”命令,此时,表中将只显示经过筛选的记录。如图2-44是“产品”表按照选定的“类别”字段中的“饮料”进行筛选的结果。

图2-44 筛选结果

2.3.3 创建查询

使用查询可以按照不同的方式查看、更改和分析数据,也可以用查询作为窗体、报表和数据访问页的记录源。Access可以通过使用“查询向导”创建查询和在“设计视图”中创建查询两种方式建立查询。

(1)使用“查询向导”创建查询

① 在“数据库”窗口中单击“对象”下的“查询”选项,双击右侧窗口中的“使用查询向导创建查询”项目。

② 在弹出的“简单查询向导”对话框中选择要进行查询的表或查询和用来查询的字

33

Access数据库开发实例导航 段,如图2-45所示。

图2-45 简单查询向导

③ 单击“下一步”按钮,弹出指定查询标题和创建查询后的动作的对话框,可以选择打开查询从而查看查询的结果,如图2-46所示。

上面的步骤是使用“简单查询向导”创建一个查询的过程,事实上Access提供了多种查询向导来实现查询功能。如果想要使用这些向导创建查询,可以单击“数据库”窗口的“新建”命令按钮,此时会弹出如图2-47所示的“新建查询”对话框,可以选择想要使用的查询向导创建查询。可以看出,可以使用的查询向导有:简单表查询向导、交叉表查询向导、查找重复项查询向导、查找不匹配项查询向导。

图2-462 指定查询标题 图2-47 “新建查询”对话框

(2)在“设计视图”中创建查询

① 在“数据库”窗口中单击“对象”下的“查询”选项,双击右侧窗口中的“在设计视图中创建查询”项目或在“新建查询”对话框中选择“设计视图”项目。

② 此时会弹出如图2-48所示的查询设计视图,通过在“显示表”对话框中选择要进

34

第2章 Access数据库开发基础 行查询的表和视图将其添加到查询设计视图中。

图2-48 查询设计视图

③ 关闭“显示表”对话框,在“查询设计视图”中将查询字段添加到“字段”网格行中,可以通过在上方的来源表中选中字段双击或鼠标拖动将其添加到“字段”网格行中,或者在“字段”网格行的下拉列表中进行选择。同时指定该字段的排序方式、是否显示以及条件。例如这里设计了一个查询如图2-49所示。其中条件一栏中用来填写查询结果要满足的表达式,可以单击工具栏的“生成器”按钮,在弹出的“表达式生成器”中生成条件表达式,“表达式生成器”如图2-50所示。

图2-49 设计查询 图2-50 表达式生成器

④ 设计完成后,单击工具栏上的“运行”按钮运行该查询,或是选择右键菜单的“数据表视图”命令都可以查看查询结果。如果满足需要,则可以保存它。在设计视图中通过选择右键菜单的“SQL视图”可以切换到SQL语句创建查询的视图,如图2-51所示。

35

Access数据库开发实例导航 图2-51 SQL视图

上面介绍了如何用“查询设计视图”创建选择查询,通过在工具栏中选择不同的查询类型可以创建不同类型的查询,其他类型的查询与选择查询的操作大体相同,只是可能会稍显繁琐。工具栏中的查询类型如图2-52所示。

图2-52 查询类型

2.3.4 窗体设计

窗体是主要用于在数据库中输入和显示数据的数据库对象,也可以将窗体用作切换面板来打开数据库中的其他窗体和报表,或者用作自定义对话框来接受用户的输入及根据输入执行操作。下面介绍如何用不同的方法创建窗体。

(1)使用“自动窗体”命令创建窗体

使用“自动窗体”命令是最简单的创建窗体的方法。在“数据库”窗口的表或查询对象中,选择一个表或查询,单击工具栏的“自动窗体”按钮。则会自动创建一个窗体。如图2-53所示,是使用“自动窗体”命令为“产品”表创建的窗体。

事实上,使用“自动窗体”命令创建窗体,还可以以如下方式实现:

① 在“数据库”窗口单击“对象”下的“窗体”选项。单击“数据库”窗口工具栏上的“新建”按钮。

② 这时会出现如图2-540所示的“新建窗体”对话框,选择自动创建窗体的类型,有纵栏式、表格式、数据表、数据透视表和数据透视图五种类型可供选择。接下来,选择含要作为窗体数据来源的表或查询,单击“确定”按钮,则会自动生成用户选定类型的窗体。

图2-53 “产品”表的自动窗体 图2-54 “新建窗体”对话框

(2)使用向导创建窗体

在“数据库”窗口单击“对象”下的“窗体”。单击“数据库”窗口工具栏上的“新建”

36

第2章 Access数据库开发基础 按钮。将出现的“新建窗体”对话框,在该对话框中选择“窗体向导”,单击“确定”。此时会出现“窗体向导”对话框,它将引导用户一步步完成窗体的创建,用户选择做的只是在依次出现的对话框中进行选择。图2-55是使用“窗体向导创建的“订单1”窗体。

图2-55 创建的“订单1”窗体

(3)在“设计”视图中自行创建窗体

使用“设计”视图自行创建窗体,可以创建出个性化的满足用户特定要求的窗体,另外使用向导创建的窗体可以以“设计”视图打开,进行修改,如图2-56是上面创建的“订单1”窗体在“设计”视图中打开的情况。当然,使用“设计”视图创建窗体相对于前两种方式就要麻烦许多。限于篇幅和本书的主题,这里就不具体介绍如何在“设计”视图中自行创建窗体了。

图2-56 在“设计”视图中打开窗体

2.3.5 使用报表

报表是以打印格式展示数据的一种有效方式。在Access中有3种方式可以创建报表,分别为使用自动报表基于一个表或查询创建报表、用向导基于一个或多个表或查询创建报表、在“设计”视图中手动创建报表。下面具体介绍前两种方式。

(1)使用自动报表创建

① 在“数据库”窗口中,单击“对象”下的“报表”选项。单击“数据库”窗口工具栏上的“新建”按钮。

② 这时会出现如图2-57所示的“新建报表”对话框中,根据需要选择纵栏式或表格式

37

因篇幅问题不能全部显示,请点此查看更多更全内容