- MS Access 教程
- MS Access - 首页
- MS Access - 概述
- MS Access - 关系数据库管理系统 (RDBMS)
- MS Access - 对象
- MS Access - 创建数据库
- MS Access - 数据类型
- MS Access - 创建表
- MS Access - 添加数据
- MS Access - 查询数据
- MS Access - 查询条件
- MS Access - 操作查询
- MS Access - 创建查询
- MS Access - 参数查询
- MS Access - 备选条件
- MS Access - 数据关联
- MS Access - 创建关系
- 一对一关系
- 一对多关系
- 多对多关系
- MS Access - 通配符
- MS Access - 计算表达式
- MS Access - 索引
- MS Access - 数据分组
- MS Access - 数据汇总
- MS Access - 连接
- MS Access - 重复记录查询向导
- 不匹配记录查询向导
- MS Access - 创建窗体
- MS Access - 修改窗体
- MS Access - 导航窗体
- MS Access - 组合框
- MS Access - SQL 视图
- MS Access - 格式设置
- MS Access - 控件和属性
- MS Access - 报表基础
- MS Access - 报表格式设置
- MS Access - 内置函数
- MS Access - 宏
- MS Access - 数据导入
- MS Access - 数据导出
- MS Access 有用资源
- MS Access 快速指南
- MS Access - 有用资源
- MS Access - 讨论
MS Access 快速指南
MS Access - 概述
Microsoft Access 是微软提供的数据库管理系统 (DBMS),它结合了关系型 Microsoft Jet 数据库引擎、图形用户界面和软件开发工具。它是 Microsoft Office 套件应用程序的成员,包含在专业版和更高版本中。
Microsoft Access 只是微软整体数据管理产品战略的一部分。
它以基于 Access Jet 数据库引擎的自身格式存储数据。
与关系数据库一样,Microsoft Access 也允许您轻松链接相关信息。例如,客户和订单数据。但是,Access 2013 还补充了其他数据库产品,因为它具有几个强大的连接功能。
它还可以直接导入或链接到存储在其他应用程序和数据库中的数据。
顾名思义,Access 可以直接处理来自其他来源的数据,包括许多流行的 PC 数据库程序、许多桌面、服务器、小型机或大型机上的 SQL(结构化查询语言)数据库,以及存储在互联网或内联网 Web 服务器上的数据。
Access 还可以理解和使用各种其他数据格式,包括许多其他数据库文件结构。
您可以直接导出到和导入来自文字处理文件、电子表格或数据库文件的数据。
Access 可以与大多数支持开放数据库连接 (ODBC) 标准的流行数据库一起使用,包括 SQL Server、Oracle 和 DB2。
软件开发人员可以使用 Microsoft Access 开发应用程序软件。
Microsoft Access 存储信息,称为数据库。要使用 MS Access,您需要遵循以下四个步骤:
数据库创建 - 创建您的 Microsoft Access 数据库并指定您将存储哪种数据。
数据输入 - 创建数据库后,可以将每一天的业务数据输入 Access 数据库。
查询 - 这是一个花哨的术语,基本上描述了从数据库中检索信息的过程。
报表(可选) - 数据库中的信息以漂亮的演示文稿形式组织,可以打印在 Access 报表中。
体系结构
Access 将任何可以命名的东西称为对象。在 Access 桌面数据库中,主要对象是表、查询、窗体、报表、宏、数据宏和模块。
如果您使用过桌面计算机上的其他数据库系统,您可能已经看到过“数据库”这个术语,它仅指存储数据的那些文件。
但在 Access 中,桌面数据库(.accdb)还包括与存储数据相关的所有主要对象,包括您定义的用于自动使用数据的对象。
MS Access - 关系数据库管理系统 (RDBMS)
就布局和导航方面而言,Microsoft Access 具有其他 Microsoft Office 产品的外观和感觉,但 MS Access 是一个数据库,更具体地说是一个关系数据库。
在 MS Access 2007 之前,文件扩展名是*.mdb,但在 MS Access 2007 中,扩展名已更改为*.accdb。
早期版本的 Access 无法读取 accdb 扩展名,但 MS Access 2007 及更高版本可以读取和更改早期版本的 Access。
Access 桌面数据库(.accdb 或 .mdb)是一个功能齐全的 RDBMS。
它提供管理大量数据所需的所有数据定义、数据操作和数据控制功能。
您可以将 Access 桌面数据库(.accdb 或 .mdb)用作单个工作站上的独立 RDBMS,也可以在网络上以共享客户端/服务器模式使用。
桌面数据库还可以充当公司内网上网页显示数据的的数据源。
当您使用 Access 桌面数据库构建应用程序时,Access 就是 RDBMS。
数据定义
现在让我们了解什么是数据定义:
在文档或电子表格中,您通常可以自由定义文档或电子表格中每个单元格的内容。
在文档中,您可以包含文本段落、表格、图表或以多种字体显示的多个数据列。
在电子表格中,您可以顶部使用文本数据来定义用于打印或显示的列标题,并且您可能在同一列中具有各种数字格式,具体取决于行的功能。
RDBMS 允许您定义您拥有的数据类型以及如何存储数据。
您通常还可以定义 RDBMS 可以用来确保数据完整性的规则。
例如,验证规则可以确保用户无法意外地在应包含数字的字段中存储字母字符。
数据操作
在 RDBMS 中处理数据与在文字处理或电子表格程序中处理数据非常不同。
在文字处理文档中,您可以包含表格数据并在文档中的数据上执行有限的一组函数。
您还可以搜索原始文档中的文本字符串,并使用 ActiveX 控件包含来自其他应用程序的表格、图表或图片。
在电子表格中,某些单元格包含确定所需结果的函数,在其他单元格中,您输入为函数提供源信息的数据。
您可以搜索单个表中的信息,或请求对多个相关表进行复杂的搜索。
您可以使用单个命令更新单个字段或许多记录。
您可以编写使用 RDBMS 命令获取您想要显示的数据并允许用户更新数据的程序。
RDBMS 为您提供了许多处理数据的方法。例如:
Access 使用强大的 SQL 数据库语言来处理表中的数据。使用 SQL,您可以定义解决特定问题所需的信息集,包括可能来自许多表的数据。
数据控制
电子表格和文字处理文档非常适合解决单用户问题,但当多个人需要共享数据时,它们很难使用。
当您需要与他人共享信息时,RDBMS 使您可以灵活地允许多个用户读取或更新您的数据。
旨在允许数据共享的 RDBMS 还提供了一些功能,以确保不会有两个人同时更改相同的数据。
最好的系统还允许您对更改进行分组(也称为事务),以便所有更改或没有任何更改都显示在您的数据中。
您可能还想确保在您输入所有订单之前,其他人无法查看订单的任何部分。
因为您可以与其他用户共享 Access 数据,所以您可能需要对允许各种用户查看或更新的内容设置一些限制。
MS Access - 对象
MS Access 使用“对象”来帮助用户列出和组织信息,以及准备特别设计的报表。当您创建数据库时,Access 提供表、查询、窗体、报表、宏和模块。Access 中的数据库由许多对象组成,但以下是主要对象:
- 表
- 查询
- 窗体
- 报表
这些对象共同允许您输入、存储、分析和编译您的数据。以下是 Access 数据库中主要对象的摘要:
表
表是一个用于定义和存储数据的对象。当您创建新表时,Access 会要求您定义字段,也称为列标题。
每个字段必须具有唯一名称和数据类型。
表包含存储不同类型数据的字段或列,例如名称或地址,以及收集有关主题特定实例的所有信息的记录或行,例如有关客户或员工的所有信息等。
您可以定义主键(每个记录具有唯一值的字段)以及每个表上一个或多个索引,以帮助更快地检索数据。
查询
一个提供来自一个或多个表的数据的自定义视图的对象。查询是从一个或多个表中搜索和编译数据的一种方式。
运行查询就像向数据库询问详细问题一样。
当您在 Access 中构建查询时,您正在定义特定的搜索条件以查找您想要的确切数据。
在 Access 中,您可以使用图形化的查询示例工具,也可以编写结构化查询语言 (SQL) 语句来创建查询。
您可以定义查询来选择、更新、插入或删除数据。
您还可以定义从一个或多个现有表中的数据创建新表的查询。
窗体
窗体是桌面数据库中的一个对象,主要用于数据输入或显示,或用于控制应用程序执行。您可以使用窗体来自定义应用程序从查询或表中提取数据的显示。
窗体用于输入、修改和查看记录。
窗体如此频繁使用的原因是它们是一种引导人们正确输入数据简单方法。
当您在 Access 中的窗体中输入信息时,数据会准确地进入数据库设计者想要将其放入的一个或多个相关表中。
报表
报表是桌面数据库中用于格式化、计算、打印和汇总所选数据的一个对象。
您可以在打印之前在屏幕上查看报表。
如果窗体用于输入目的,则报表用于输出。
任何你计划打印的内容都应该生成一份报表,无论是姓名和地址列表、某个时期的财务摘要,还是一组邮寄标签。
报表之所以有用,是因为它们允许你以易于阅读的格式呈现数据库的组件。
你甚至可以自定义报表的样式,使其更具视觉吸引力。
Access允许你从任何表或查询创建报表。
其他MS Access对象
现在让我们来看看其他MS Access对象。
宏
这个对象是对一个或多个操作的结构化定义,你希望Access响应定义的事件执行这些操作。Access宏是一个执行某些任务的脚本。例如,要创建一个打开报表的按钮,可以使用一个会触发OpenReport操作的宏。
你可以在宏中包含简单的条件,以指定宏中的一个或多个操作应该执行还是跳过。
你可以使用宏来打开和执行查询、打开表或打印或查看报表。
你还可以从宏中运行其他宏或Visual Basic过程。
数据宏可以直接附加到表事件,例如插入新记录、编辑现有记录或删除记录。
Web应用程序中的数据宏也可以是独立的对象,可以从其他数据宏或宏对象调用。
模块
模块是桌面数据库中的一个对象,包含使用Visual Basic编写的自定义过程。模块提供更清晰的操作流程,并允许你捕获错误。
宏中可以完成的所有操作,在模块中也可以完成,但是你不会得到提示每个操作需要什么的宏界面。
模块功能强大得多,如果你计划为多用户环境编写代码,则必不可少,因为宏不能包含错误处理。
模块可以是包含可以从应用程序任何地方调用的函数的独立对象,也可以直接与窗体或报表关联,以响应关联窗体或报表上的事件。
Ms Access - 创建数据库
本章将介绍启动Access和创建数据库的基本过程。本章还将解释如何使用模板创建桌面数据库以及如何从头开始构建数据库。
要从模板创建数据库,我们首先需要打开MS Access,你将看到以下屏幕,其中显示了不同的Access数据库模板。
要查看所有可能的数据库,你可以向下滚动,也可以使用搜索框。
让我们在搜索框中输入“项目”,然后按Enter键。你将看到与项目管理相关的数据库模板。
选择第一个模板。你将看到与该模板相关的更多信息。
选择与你的需求相关的模板后,在**文件名**字段中输入名称,如果需要,你还可以指定文件的其他位置。
现在,按下“创建”选项。Access将下载该数据库模板并打开一个新的空白数据库,如下面的屏幕截图所示。
现在,单击左侧的导航窗格,你将看到此数据库附带的所有其他对象。
单击“项目”导航并选择菜单中的“对象类型”。
你现在将看到所有对象类型——表、查询等。
创建空白数据库
有时,数据库需求非常具体,使用和修改现有模板比从头开始创建数据库需要更多工作。在这种情况下,我们使用空白数据库。
**步骤1** - 现在让我们从打开MS Access开始。
**步骤2** - 选择“空白桌面数据库”。输入名称并单击“创建”按钮。
**步骤3** - Access将创建一个新的空白数据库,并打开一个也是完全空白的表。
Ms Access - 数据类型
表中的每个字段都有属性,这些属性定义字段的特性和行为。字段最重要的属性是其数据类型。字段的数据类型决定了它可以存储什么类型的数据。MS Access支持不同类型的数据,每种数据都有其特定的用途。
- 数据类型决定了用户可以在任何给定字段中存储的值的类型。
- 每个字段只能存储由单个数据类型组成的数据。
以下是一些你通常会在典型的Microsoft Access数据库中使用的最常见的数据类型。
数据类型 | 描述 | 大小 |
---|---|---|
短文本 | 文本或文本和数字的组合,包括不需要计算的数字(例如电话号码)。 | 最多255个字符。 |
长文本 | 冗长的文本或文本和数字的组合。 | 最多63,999个字符。 |
数字 | 用于数学计算的数值数据。 | 1、2、4或8字节(如果设置为复制ID,则为16字节)。 |
日期/时间 | 100年到9999年的日期和时间值。 | 8字节 |
货币 | 货币值和用于涉及具有小数点后一到四位数据的数学计算的数值数据。 | 8字节 |
自动编号 | 每当向表中添加新记录时,由Microsoft Access分配的唯一顺序(递增1)编号或随机编号。 | 4字节(如果设置为复制ID,则为16字节)。 |
是/否 | 是和否值以及仅包含两个值之一的字段(是/否、真/假或开/关)。 | 1位。 |
如果你使用的是早期版本的Access,你会注意到这两种数据类型的区别。
在Access 2013中,我们现在有两种数据类型——短文本和长文本。在早期版本的Access中,这些数据类型分别称为文本和备注。
文本字段称为短文本,备注字段现在称为长文本。
以下是一些你可以在Access中选择的其他更专业的数据类型。
数据类型 | 描述 | 大小 |
---|---|---|
附件 |
文件,例如数码照片。每个记录可以附加多个文件。此数据类型在早期版本的Access中不可用。 |
大约2 GB。 |
OLE对象 |
OLE对象可以存储图片、音频、视频或其他BLOB(大型二进制对象) |
大约2 GB。 |
超链接 |
存储为文本并用作超链接地址的文本或文本和数字的组合。 |
最多8,192(超链接数据类型的每个部分最多可以包含2048个字符)。 |
查找向导 |
“设计”视图中“数据类型”列中的“查找向导”条目实际上不是数据类型。选择此条目时,将启动一个向导来帮助你定义简单或复杂的查找字段。 简单的查找字段使用另一个表的内容或值列表来验证每行单个值的内容。复杂的查找字段允许你在每行中存储多个相同数据类型的值。 |
取决于查找字段的数据类型。 |
计算 |
你可以创建一个使用来自一个或多个字段的数据的表达式。你可以从表达式中指定不同的结果数据类型。 |
你可以创建一个使用来自一个或多个字段的数据的表达式。你可以从表达式中指定不同的结果数据类型。 |
这些就是你在Microsoft Access表中创建字段时可以选择的所有不同数据类型。
Ms Access - 创建表
创建数据库时,你将数据存储在表中。因为其他数据库对象非常依赖表,所以你应该始终先设计数据库,创建所有表,然后再创建任何其他对象。在创建表之前,请仔细考虑你的需求,并确定你需要的所有表。
让我们尝试创建第一个表,用于存储有关员工的基本联系信息,如下表所示:
字段名称 | 数据类型 |
---|---|
员工ID | 自动编号 |
名字 | 短文本 |
姓氏 | 短文本 |
地址1 | 短文本 |
地址2 | 短文本 |
城市 | 短文本 |
州 | 短文本 |
邮编 | 短文本 |
电话 | 短文本 |
电话类型 | 短文本 |
让我们现在将所有这些字段的数据类型设置为短文本,并在Access中打开一个空白数据库。
这就是我们上次结束的地方。我们创建了数据库,然后Access自动打开了这个表的表数据表视图。
现在让我们转到“字段”选项卡,你将看到它也已自动创建。ID(自动编号字段)充当我们的唯一标识符,并且是该表的主键。
ID字段已经创建,我们现在想将其重命名以适应我们的条件。这是一个员工表,这将是员工的唯一标识符。
单击功能区中的**名称和标题**选项,你将看到以下对话框。
将此字段的名称更改为**EmployeeID**,使其更具体地指向此表。如果需要,输入其他可选信息,然后单击“确定”。
我们现在拥有标题为“员工ID”的员工ID字段。这自动设置为自动编号,因此我们实际上不需要更改数据类型。
现在让我们通过单击**单击以添加**来添加更多字段。
选择**短文本**作为字段。当你选择短文本时,Access将自动突出显示该字段名称,你只需键入字段名称即可。
键入**FirstName**作为字段名称。同样,添加所有必需的字段,如下面的屏幕截图所示。
添加所有字段后,单击“保存”图标。
你将看到**另存为**对话框,你可以在其中为表输入表名。
在“表名”字段中输入表名。这里的`tbl`前缀代表表。让我们单击“确定”,你将在导航窗格中看到你的表。
表设计视图
正如我们已经使用**数据表视图**创建了一个表一样。我们现在将使用**表设计视图**创建另一个表。我们将在此表中创建以下字段。这些表将存储各种图书项目的某些信息。
字段名称 | 数据类型 |
---|---|
项目ID | 自动编号 |
项目名称 | 短文本 |
主编 | 短文本 |
作者 | 短文本 |
项目状态 | 短文本 |
合同 | 附件 |
项目开始日期 | 日期/时间 |
项目结束日期 | 日期/时间 |
预算 | 货币 |
项目备注 | 长文本 |
现在让我们转到“创建”选项卡。
在“表格”组中,单击“表格”,您会发现这与数据表视图完全不同。在此视图中,您可以并排看到**字段名称**和**数据类型**。
现在我们需要将**ProjectID**设为该表的主键,因此我们选择**ProjectID**,然后单击功能区中的**主键**选项。
您现在可以看到该字段旁边出现一个小钥匙图标。这表示该字段是表主键的一部分。
让我们保存此表并为其命名。
单击“确定”,您现在可以看到此表在数据表视图中的样子。
让我们单击功能区左上角的数据表视图按钮。
如果您想更改此表或任何特定字段,则不必总是返回到设计视图进行更改。您也可以在数据表视图中更改它。让我们按照以下屏幕截图所示更新 PStatus 字段。
单击“确定”,您将看到更改。
Ms Access - 添加数据
Access 数据库与 Microsoft Office Word 文档或 Microsoft Office PowerPoint 文档不同。Access 数据库是一个对象的集合,例如表、窗体、报表、查询等,这些对象必须协同工作才能使数据库正常运行。我们现在已经创建了两个表,其中包含数据库中所有必要的字段和字段属性。要在 Access 中查看、更改、插入或删除表中的数据,您可以使用表的“数据表视图”。
数据表是一种简单的方法,可以以行和列的形式查看数据,无需任何特殊格式。
每当您创建一个新的 Web 表时,Access 都会自动创建两个视图,您可以立即开始使用它们进行数据输入。
在数据表视图中打开的表类似于 Excel 工作表,您可以将数据键入或粘贴到一个或多个字段中。
您无需显式保存数据。当您将光标移动到同一行中的新字段或移动到另一行时,Access 会将您的更改提交到表中。
默认情况下,Access 数据库中的字段设置为接受特定类型的数据,例如文本或数字。您必须输入字段设置为接受的数据类型。如果不这样做,Access 将显示一条错误消息 -
让我们通过打开已创建的 Access 数据库,向表中添加一些数据。
在功能区中选择**视图→数据表**视图选项,并添加一些数据,如下面的屏幕截图所示。
同样,也向第二个表添加一些数据,如下面的屏幕截图所示。
您现在可以看到,在数据表视图中插入新数据和更新现有数据非常简单,就像在电子表格中工作一样。但是,如果您想删除任何数据,则需要首先选择整行,如下面的屏幕截图所示。
现在按删除按钮。这将显示确认消息。
单击**是**,您将看到所选记录已被删除。
Ms Access - 查询数据
查询是对数据结果的请求,以及对数据的操作。您可以使用查询来回答简单问题、执行计算、组合来自不同表的数据,甚至添加、更改或删除表数据。
随着表大小的增长,它们可能包含数十万条记录,这使得用户无法从该表中挑选出特定记录。
使用查询,您可以对表的 数据应用过滤器,以便仅获取所需信息。
用于从表中检索数据或进行计算的查询称为选择查询。
添加、更改或删除数据的查询称为操作查询。
您还可以使用查询为窗体或报表提供数据。
在一个设计良好的数据库中,您希望使用窗体或报表呈现的数据通常位于多个不同的表中。
查询的棘手之处在于,您必须了解如何构建查询才能实际使用它们。
创建选择查询
如果您只想查看表中某些字段的数据,或同时查看多个表的数据,或者只是根据特定条件查看数据库,则可以使用**选择**查询。现在让我们来看一个简单的示例,在这个示例中,我们将创建一个简单的查询,该查询将从**tblEmployees**表中检索信息。打开数据库并单击“创建”选项卡。
单击**查询设计**。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。
在 tblEmployees 表中,双击您希望作为查询结果看到的那些字段。将这些字段添加到查询设计网格中,如下面的屏幕截图所示。
现在单击“设计”选项卡上的“运行”,然后单击“运行”。
查询运行,并仅显示查询中指定的字段中的数据。
Ms Access - 查询条件
查询条件可帮助您从 Access 数据库中检索特定项目。如果项目与您输入的所有条件匹配,则该项目将显示在查询结果中。当您想要根据字段中的值限制查询的结果时,可以使用查询条件。
查询条件是一个表达式,Access 将其与查询字段值进行比较,以确定是否包含包含每个值的记录。
某些条件很简单,并使用基本运算符和常量。其他条件很复杂,并使用函数、特殊运算符和字段引用。
要向查询添加一些条件,必须在设计视图中打开查询。
然后,确定要为其指定条件的字段。
示例
让我们来看一个简单的示例,在这个示例中,我们将在查询中使用条件。首先打开 Access 数据库,然后转到“创建”选项卡并单击“查询设计”。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。
现在让我们向查询网格添加一些字段,例如 EmployeeID、FirstName、LastName、JobTitle 和 Email,如下面的屏幕截图所示。
现在让我们运行您的查询,您将只看到这些字段作为查询结果。
如果您只想查看那些职位为市场协调员的人员,则需要为此添加条件。让我们再次转到“查询设计”,并在 JobTitle 的“条件”行中输入“市场协调员”。
现在让我们再次运行您的查询,您将看到只检索了市场协调员的职位。
如果您想为多个字段添加条件,只需在多个字段中添加条件即可。假设我们只想检索“市场协调员”和“会计助理”的数据;我们可以指定 OR 行运算符,如下面的屏幕截图所示 -
现在让我们再次运行您的查询,您将看到以下结果。
如果您需要使用**AND**运算符的功能,则必须在“条件”行中指定其他条件。假设我们想要检索所有会计助理,但只有姓氏为“Pollard”的市场协调员职位。
现在让我们再次运行您的查询,您将看到以下结果。
Ms Access - 操作查询
在 MS Access 和其他 DBMS 系统中,查询不仅可以显示数据,还可以对数据库中的数据执行各种操作。
操作查询是可以一次添加、更改或删除多条记录的查询。
额外的好处是,您可以在运行操作查询之前预览查询结果。
Microsoft Access 提供 4 种不同类型的操作查询 -
追加
更新
删除
创建表
操作查询无法撤消。您应该考虑使用更新查询备份任何将要更新的表。
创建追加查询
您可以使用追加查询从一个或多个表中检索数据,并将该数据添加到另一个表中。让我们创建一个新表,我们将向其中添加来自**tblEmployees**表的数据。这将是用于演示目的的临时表。
让我们将其命名为**TempEmployees**,它包含如下面的屏幕截图所示的字段。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。双击您希望显示的字段。
让我们先运行您的查询以显示数据。
现在让我们返回查询设计并选择**追加**按钮。
在“查询类型”中,选择“追加”选项按钮。这将显示以下对话框。
从下拉列表中选择表名,然后单击“确定”。
在查询网格中,您可以看到在“追加到”行中,默认情况下会选择所有字段,除了**Address1**。这是因为**TempEmployee**表中没有 Address1 字段。因此,我们需要从下拉列表中选择字段。
让我们看看 Address 字段。
现在让我们运行您的查询,您将看到以下确认消息。
单击**是**以确认您的操作。
当您打开**TempEmployee**表时,您将看到所有数据都已从 tblEmployees 添加到 TempEmployee 表中。
Ms Access - 创建查询
让我们在本节中了解如何创建查询。
创建更新查询
您可以使用更新查询更改表中的数据,并且可以使用更新查询输入条件来指定应更新哪些行。更新查询使您有机会在执行更新之前查看已更新的数据。让我们再次转到“创建”选项卡并单击“查询设计”。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。
在“设计”选项卡上的“查询类型”组中,单击“更新”,然后双击要更新值的字段。假设我们要将“Rex”的 FirstName 更新为“Max”。
在“设计”网格的“更新”行中,输入更新的值,并在“条件”行中添加要更新的原始值,然后运行查询。这将显示确认消息。
单击**是**,然后转到数据表视图,您将看到第一条记录 - FirstName 现在已更新为“Max”。
创建删除查询
您可以使用删除查询从表中删除数据,并且可以使用删除查询输入条件来指定应删除哪些行。删除查询使您有机会在执行删除操作之前查看将要删除的行。让我们再次转到“创建”选项卡并单击“查询设计”。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。
在“设计”选项卡上的“查询类型”组中,单击“删除”,然后双击**EmployeeID**。
在“设计”网格的“条件”行中,键入 11。在这里,我们要删除 EmployeeID 为 11 的员工。
现在让我们运行查询。此查询将显示确认消息。
单击**是**,然后转到数据表视图,您将看到指定的员工记录已被删除。
创建创建表查询
您可以使用创建表查询从存储在其他表中的数据创建新表。让我们再次转到“创建”选项卡并单击“查询设计”。
在“表”选项卡上的“显示表”对话框中,双击**tblEmployees**表,然后关闭对话框。
选择要复制到另一个表的所有字段。
在“查询类型”中,选择“创建表”选项按钮。
您将看到以下对话框。输入要创建的新表的名,然后单击“确定”。
现在运行您的查询。
您现在将看到以下消息。
点击是,您将在导航窗格中看到一个新创建的表。
Ms Access - 参数查询
查询最大的优点是可以保存并反复运行相同的查询,但是如果您反复运行相同的查询,只是更改了条件,那么您可能需要考虑让查询接受参数。
如果您需要频繁运行特定查询的不同变体,请考虑使用参数查询。
参数查询以交互方式检索信息,提示最终用户在运行查询之前提供条件。
您还可以指定参数应接受的数据类型。
您可以为任何参数设置数据类型,但是为数字、货币或日期/时间数据设置数据类型尤其重要。
当您指定参数应接受的数据类型时,如果用户输入错误的数据类型(例如,在需要货币时输入文本),则会看到更有帮助的错误消息。
如果将参数设置为接受文本数据,则任何输入都将解释为文本,并且不会显示任何错误消息。
示例
现在让我们通过创建一个参数查询来看一个简单的示例。让我们打开您的数据库,并在“创建”选项卡中选择“查询设计”。
双击tblProjects并关闭显示对话框。
选择您想作为查询结果显示的字段,如下面的屏幕截图所示。
在查询设计网格中,“项目开始日期”列的“条件”行中,键入[输入项目开始日期]。“[输入项目开始日期]”字符串是您的参数提示。方括号表示您希望查询请求输入,显示的文本为“输入项目开始日期”。
现在让我们运行您的查询,您将看到以下提示。
现在让我们输入以下日期。
单击“确定”进行确认。
结果,您将看到2007年2月1日开始的项目的详细信息。让我们转到设计视图并再次运行查询。
输入与上面屏幕截图中相同的日期,然后单击“确定”。您现在将看到2008年5月1日开始的项目的详细信息。
Ms Access - 备选条件
查询有很多优点。您可以保存并反复运行相同的查询,并且很多时候您想添加备选条件。
您可以通过以下两种方式添加备选条件:
- 您可以使用 OR 运算符组合两组条件。
- 您也可以使用查询设计网格,但是不必在同一行上指定条件,您需要在多行中将其分开。
示例
让我们来看一个备选条件的简单示例。打开数据库,并在“创建”选项卡中选择查询设计。
双击tblEmployee并关闭“显示表”对话框。
双击所有您想作为查询结果显示的字段。
您现在可以看到,备选条件在“LastName”字段的不同行中指定。运行此查询时,您将看到姓氏为Pollard或Manning的员工。现在让我们运行此查询。
正如您所看到的,由于备选条件,只有两名员工被检索到。
如果您想在多个字段中添加备选条件,则必须为所有字段使用不同的行。现在让我们添加另一个备选条件,我们可以检索姓氏为Pollard或Manning或职位为会计助理的员工信息。
现在让我们运行此查询。
您现在将看到以下结果。
Ms Access - 关联数据
在本章中,我们将了解关联数据的基本知识。在讨论和创建不同数据之间的关系之前,让我们回顾一下为什么我们需要它。这一切都回到了规范化。
规范化
数据库规范化,或简称为规范化,是组织关系数据库的列(属性)和表(关系)以最大限度地减少数据冗余的过程。它是将数据拆分到多个表中以提高整体性能、完整性和寿命的过程。
规范化是组织数据库中数据的过程。
这包括根据旨在保护数据并通过消除冗余和不一致的依赖性来使数据库更灵活的规则创建表并在这些表之间建立关系。
现在让我们来看一下包含数据的下表,但问题是此数据相当冗余,这增加了数据输入过程中出现错字和措辞不一致的可能性。
CustID | 姓名 | 地址 | 饼干 | 数量 | 价格 | 总计 |
---|---|---|---|---|---|---|
1 | Ethel Smith | 弗吉尼亚州阿灵顿市梅因街12号,22201 S | 巧克力曲奇 | 5 | $2.00 | $10.00 |
2 | Tom Wilber | 伊利诺伊州培肯市橡树大道1234号,61555 | 巧克力曲奇 | 3 | $2.00 | $6.00 |
3 | Ethil Smithy | 弗吉尼亚州阿灵顿市梅因街12号,22201 | 巧克力曲奇 | 5 | $2.00 | $10.00 |
为了解决这个问题,我们需要重组数据并将其分解成多个表以消除一些冗余,如下面的三个表所示。
这里,我们有一个客户表,第二个是订单表,第三个是饼干表。
这里的问题是,仅仅将数据拆分成多个表并不能帮助说明一个表中的数据如何与另一个表中的数据相关联。为了连接多个表中的数据,我们必须向Orders表添加外键。
定义关系
关系通过匹配关键列中的数据来工作,通常是两个表中名称相同的列。在大多数情况下,关系将来自一个表的主键(为每一行提供唯一标识符)与另一个表中外键中的条目匹配。表之间有三种关系类型。创建的关系类型取决于相关列的定义方式。
现在让我们来看一下三种关系类型:
一对多关系
一对多关系是最常见的关系类型。在这种类型的关系中,表 A 中的一行可以与表 B 中的许多匹配行相关联,但是表 B 中的一行只能与表 A 中的一行匹配。
例如,“客户”表和“订单”表之间存在一对多关系:每个客户可以下许多订单,但每个订单都只来自一个客户。
多对多关系
在多对多关系中,表 A 中的一行可以与表 B 中的许多匹配行相关联,反之亦然。
您可以通过定义第三个表(称为连接表)来创建这种关系,其主键由表 A 和表 B 的外键组成。
例如,“客户”表和“饼干”表之间存在多对多关系,该关系由这两个表与“订单”表之间的一对多关系定义。
一对一关系
在一对一关系中,表 A 中的一行最多只能与表 B 中的一行匹配,反之亦然。如果相关的列都是主键或具有唯一约束,则会创建一对一关系。
这种关系并不常见,因为大多数以这种方式相关的信息都存储在一个表中。您可以使用一对一关系来:
- 将表分成多列。
- 出于安全原因隔离表的一部分。
- 存储短期数据,只需删除表即可轻松删除。
- 存储仅适用于主表子集的信息。
Ms Access - 创建关系
在本章中,我们将了解创建相关表之间关系的必要性。良好数据库设计的目标之一是消除数据冗余。
为了实现这个目标,您将数据分成多个基于主题的表,以便每个事实只表示一次。
为此,所有相互关联的公共字段都放在一个表中。
为了正确执行此步骤,您必须首先了解表之间的关系,然后在 Access 数据库中指定这些关系。
为什么要创建表关系?
当您需要在数据库对象中使用表时,MS Access 使用表关系来连接表。在创建其他数据库对象(如窗体、查询、宏和报表)之前,您应该创建表关系的原因有很多。
要使用多个表中的记录,您通常必须创建一个连接表的查询。
查询通过将第一个表的主键字段中的值与第二个表中的外键字段匹配来工作。
设计窗体或报表时,MS Access 使用从您已定义的表关系中收集的信息,为您提供明智的选择,并使用适当的默认值预填充属性设置。
设计数据库时,您将信息分成多个表,每个表都有一个主键,然后向相关的表添加引用这些主键的外键。
这些外键主键配对构成了表关系和多表查询的基础。
现在让我们向您的数据库中添加另一个表,并使用“表设计”将其命名为tblHRData,如下面的屏幕截图所示。
单击上面的屏幕截图中的保存图标。
输入tblHRData作为表名,然后单击确定。
现在创建了tblHRData及其中的数据。
Ms Access - 一对一关系
现在让我们了解 MS Access 中的一对一关系。此关系用于将一个表中的一条记录与另一个表中的一条且仅一条记录关联。
现在让我们转到数据库工具选项卡。
单击关系选项。
选择tblEmployees和tblHRData,然后单击“添加”按钮将其添加到我们的视图中,然后关闭显示表对话框。
要在这两个表之间创建关系,请使用鼠标,单击并按住tblEmployees中的EmployeeID字段,然后将其拖放到我们想要关联的字段上,方法是将鼠标悬停在tblHRData中的EmployeeID正上方。释放鼠标按钮后,Access 将打开以下窗口:
上面的窗口将 tblEmployees 的 EmployeeID 与 tblHRData 的 EmployeeID 关联起来。现在让我们单击创建按钮,现在这两个表已关联。
关系现在会自动保存,无需单击“保存”按钮。既然我们已经创建了最基本的关系,那么让我们现在转到表侧查看此关系发生了什么。
让我们打开tblEmployees表。
在这里,在每条记录的左侧,默认情况下您会看到一个小加号。创建关系时,Access 将自动向该表添加一个子数据表。
让我们单击加号,您将看到与该记录相关的信息位于tblHRData表中。
单击保存图标并打开tblHRData,您将看到我们输入的数据已经在这里。
MS Access 一对多关系
你的大多数关系很可能是一对多关系,其中一张表中的一条记录可能与另一张表中的多条记录相关联。
创建一对多关系的过程与创建一对一关系的过程完全相同。
首先,我们点击设计选项卡上的清除布局选项来清除布局。
我们首先添加另一个表tblTasks,如下面的截图所示。
点击保存图标,输入tblTasks作为表名,然后转到关系视图。
点击显示表选项。
添加tblProjects和tblTasks,然后关闭显示表对话框。
我们可以再次执行相同的过程来关联这些表。点击并按住tblProjects中的ProjectID,将其一直拖到tblTasks中的ProjectID。释放鼠标后,会弹出一个关系窗口。
点击创建按钮。现在我们已经创建了一个非常简单的关系。
MS Access 多对多关系
在本章中,让我们了解多对多关系。为了表示多对多关系,必须创建一个第三张表,通常称为连接表,它将多对多关系分解为两个一对多关系。为此,我们还需要添加一个连接表。让我们首先添加另一个表tblAuthers。
现在让我们创建一个多对多关系。我们有多个作者参与多个项目,反之亦然。如你所知,我们在tblProjects中有一个Author字段,因此我们为此创建了一个表。我们不再需要这个字段了。
选择Author字段并按删除按钮,你将看到以下消息。
点击是。现在我们将不得不创建一个连接表。此连接表包含两个外键,如下面的截图所示。
这些外键字段将是链接在一起的两张表(tblAuthers和tblProjects)的主键。
要在Access中创建复合键,请选择这两个字段,然后从表工具设计选项卡中,可以直接点击主键,这将标记这两个字段。
这两个字段的组合是表的唯一标识符。现在让我们将此表保存为tblAuthorJunction。
将多对多关系组合在一起的最后一步是返回关系视图,并通过点击显示表来创建这些关系。
选择上面三个突出显示的表,然后点击添加按钮,然后关闭此对话框。
点击并拖动tblAuthors中的AuthorID字段,将其放置在tblAuthorJunction表AuthorID的顶部。
你正在创建的关系是Access将视为一对多关系的关系。我们还将强制执行引用完整性。现在让我们启用级联更新,并像上面的截图一样点击创建按钮。
现在让我们按住ProjectID,将其拖放到tblAuthorJunction的ProjectID顶部。
我们将强制执行引用完整性和级联更新相关字段。
以下是多对多关系。
MS Access 通配符
通配符是特殊字符,可以代表文本值中未知的字符,对于查找具有相似但不完全相同数据的多个项目非常方便。通配符还可以帮助根据指定的模式匹配获取数据库。
Access支持两套通配符字符,因为它支持两种结构化查询语言标准。
- ANSI-89
- ANSI-92
通常,当对Access数据库(例如*.mdb和*.accdb文件)运行查询和查找和替换操作时,使用ANSI-89通配符。
当对Access项目(连接到Microsoft SQL Server数据库的Access文件)运行查询时,使用ANSI-92通配符。Access项目使用ANSI-92标准,因为SQL Server使用该标准。
ANSI-89通配符字符
下表列出了ANSI-89支持的字符:
字符 | 描述 | 示例 |
---|---|---|
* | 匹配任意数量的字符。你可以在字符字符串中的任何位置使用星号(*)。 | wh* 查找what、white和why,但不查找awhile或watch。 |
? | 匹配任何单个字母字符。 | B?ll 查找ball、bell和bill。 |
[ ] | 匹配括号内的任何单个字符。 | B[ae]ll 查找ball和bell,但不查找bill。 |
! | 匹配括号中不存在的任何字符。 | b[!ae]ll 查找bill和bull,但不查找ball或bell。 |
- | 匹配任何一个字符范围。必须按升序指定范围(A到Z,而不是Z到A)。 | b[a-c]d 查找bad、bbd和bcd。 |
# | 匹配任何单个数字字符。 | 1#3S 查找103、113和123。 |
ANSI-92通配符字符
下表列出了ANSI-92支持的字符:
字符 | 描述 | 示例 |
---|---|---|
% | 匹配任意数量的字符。它可以用作字符字符串中的第一个或最后一个字符。 | wh% 查找what、white和why,但不查找awhile或watch。 |
_ | 匹配任何单个字母字符。 | B_ll 查找ball、bell和bill。 |
[ ] | 匹配括号内的任何单个字符。 | B[ae]ll 查找ball和bell,但不查找bill。 |
^ | 匹配括号中不存在的任何字符。 | b[^ae]ll 查找bill和bull,但不查找ball或bell。 |
- | 匹配任何一个字符范围。必须按升序指定范围(A到Z,而不是Z到A)。 | b[a-c]d 查找bad、bbd和bcd。 |
示例
现在让我们来看一个使用这些通配符的简单示例,方法是打开查询设计。
添加突出显示的表,然后关闭显示表对话框。
在查询网格中添加要作为查询结果显示的字段。
运行你的查询。
让我们再次转到查询设计并添加项目名称提示。
现在运行你的查询,让我们假设你不知道确切的项目名称,但你知道项目名称包含单词“potion”。点击确定。
上述步骤不会生成任何结果。这是因为Access正在查找项目名称字段中的精确匹配。它正在查找名称中包含单词potion的项目。
如果你希望用户可以输入通配符来替换未知字符,则需要调整条件并包含运算符like。
运行查询时,用户可以使用通配符替换任意数量的字符。
让我们假设你知道单词potion出现在标题中的某个位置,但你不确定确切位置。
你可以添加一个*来替换单词potion之前的任意数量的字符,然后在之后添加另一个*。点击确定。
最好让用户知道他们可以输入哪些通配符。但有些用户可能不知道他们可以和不可以输入哪些通配符。在这种情况下,你可以自己输入通配符。
在这种情况下,在Like运算符和我们的参数提示之间,我们可以添加这些通配符,现在我们必须用一种非常特定的方式来编写它。在引号中的like单词之后,输入我们正在使用的通配符。在本例中,我们使用“*”来替换任意数量的字符。现在我们将将其添加到参数中。为此,我们需要使用与号(&)符号和一个空格。现在我们将重复此步骤并添加另一个与号(&),因为我们将该通配符连接到用户为项目名称输入的任何条件,然后是引号中的“*”。
现在让我们再次运行我们的查询。在提示中输入单词potion,无需任何通配符。
查询现在将跟踪此处输入内容两侧的通配符。我们只需键入potion并按Enter键。
现在我们得到了我们想要的结果,无论用户输入什么,结果都将相同。
假设我们想要查找标题中包含单词“the”的所有项目。然后,你只需要键入该单词并按Enter键或点击确定。
通过此查询,查找名称中包含单词“the”的项目变得更容易。第二级结果还可能包括包含单词“mother”(其中“the”是该单词的一部分)的项目名称。
MS Access 计算表达式
在MS Access中,表达式就像Excel中的公式。它由许多元素组成,这些元素可以单独使用或组合使用以产生结果。表达式可以包含运算符、常量、函数和标识符。
表达式可以用于执行各种任务,从检索控件的值或向查询提供条件,到创建计算控件和字段或定义报表的组级别。
在本章中,我们将重点关注创建一种非常特殊的表达式,称为计算表达式。我们将创建几个计算字段,这些字段将计算和显示数据库本身中未存储的数据,而是从存储的单独字段计算得来。
现在我们有一个新的Access数据库,其中包含更多要计算的数据。
示例
让我们尝试一个例子来理解这一点。我们将从多个表中检索一些信息——tblCustomers、tblOrders、tblOrdersDetails和tblBooks,并查看各种字段。
现在让我们运行查询,你将看到以下结果。
我们想要一个非常简单的子计计算,它将订购的书籍数量乘以书籍的零售价。最好用一个名称来称呼这个字段,以开始每个表达式或任何表达式。让我们称之为subtotal。
完整的表达式(Subtotal: [tblOrdersDetails]![QTY]*[tblBooks]![RetailPrice])包括表名,首先是方括号内的tblOrdersDetails,因为我们的数量字段位于此处。现在感叹号告诉Access在该表中查找QTY字段,并将其乘以tblBooks中的零售价字段。
让我们尝试运行你的查询,你将在最后看到子计字段。
假设我们想要计算我们的销售税。在查询网格中,我们将像以前一样进行操作,这次我们将该字段简单地称为Tax,让我们将Subtotal乘以9%的税率。
让我们再次运行你的查询,你将在最后看到新的Tax字段。
MS Access 索引
索引是一种数据结构,一种专为提高数据检索速度而设计的数据结构。如果你经常搜索表或按特定字段对表的记录进行排序,可以通过为该字段创建索引来加快这些操作的速度。Microsoft Access在表中使用索引的方式与你在书中使用索引查找数据的方式相同。
- 在某些情况下,例如主键,Access 会自动为您创建索引。
- 在其他情况下,您可能需要自己创建索引。
- 索引根据您选择编制索引的字段存储记录的位置。
- Access 从索引中获取位置后,可以通过直接移动到正确的位置来检索数据。
- 这样,使用索引比扫描所有记录以查找数据要快得多。
- 索引可以加快查询搜索速度,但它们也可能在添加或更新记录时降低性能。
现在让我们看看 Microsoft Access 默认创建哪些索引,以及如何自己创建它们以及如何删除任何不必要的索引。打开我们已创建的 Access 数据库中的 **tblEmployees** 表。
- 我们还没有真正在这个数据库中使用索引,但这并不意味着我们没有任何索引。
- 事实上,在 Access 中设置为主键的任何字段都会自动编制索引。
- Access 根据字段名称创建额外的辅助索引。
现在让我们转到“文件”菜单并选择“选项”。
您将看到 Access 选项窗口。
转到 **对象设计器**,您将看到一个标记为“导入/创建时自动索引”的部分,在文本框中您将看到 ID;key;code;num。默认情况下,Access 会自动为以这些名称开头或结尾的字段添加辅助索引,这适用于您导入的字段以及您手动创建的字段。
如果要使任何字段编制索引,可以转到 **字段** 选项卡。
选择要编制索引的任何字段,然后选中“字段验证”部分中的“已编制索引”复选框。您还可以选择其他创建或删除索引的选项。您可以返回 **设计视图**。
您可以通过选择任何字段来调整索引。您还可以在下面的字段属性区域中查看它们的索引方式。任何在“已编制索引”旁边选择“否”的字段都表示该字段没有索引。您可以通过单击下拉菜单并选择其他两个选项 - **是(允许重复)** 和 **是(不允许重复)** 来更改它。
最后一个选项 **是(不允许重复)** 表示 Access 将自动禁止该字段中的重复值。现在让我们为我们的姓氏字段创建一个索引。
让我们选择要编制索引的 **LastName** 并选择 **是(允许重复)**。保存后,Access 将创建该索引。您可以查看和调整表索引的另一个区域是 **显示/隐藏** 组中的表设计区域。
如果单击此“索引”按钮,将弹出一个特殊视图,显示为此表创建的所有索引。
现在,tblEmployees 有两个索引——一个基于主键字段自动创建的索引,另一个是我们刚刚为 LastName 字段创建的索引。这些是在 Microsoft Access 表中处理索引的不同方法。
Ms Access - 数据分组
在本章中,我们将介绍如何在 Access 中计算一组记录。我们已经创建了一个字段,该字段逐行或逐记录计算以创建行总计或小计字段,但是如果我们想按一组记录而不是按单个记录计算呢?我们可以通过创建所谓的 **聚合查询** 来实现。
聚合查询
聚合查询,也称为总计查询或汇总查询,是对总和、质量或组特定事项的总结。它可以是总额或总金额,也可以是一组或子集的记录。聚合查询可以执行许多操作。这是一个简单的表格,列出了一些按一组记录进行总计的方法。
序号 | 聚合函数和说明 |
---|---|
1. | Sum 添加字段值 |
2. | Avg 字段值的平均值 |
3. | Min 最低(最小)字段值 |
4. | Max 最高(最大)字段值 |
5. | Count 值的计数(记录) |
6. | StDev 字段值的标准差,包括日期/时间字段 |
7. | Var 字段值的方差,包括日期/时间 |
让我们打开您的数据库,转到查询设计,并包含以下表 -
关闭此对话框,以下两个字段将如以下屏幕截图中的查询网格中所示显示。
这是一个简单的查询,我们只显示两个字段——**图书标题**和**数量**,当我们运行它时,我们看到了数据库中的每一个单独的订单。
现在让我们运行此查询,您将看到以下结果。
这就是图书标题重复的原因。此处已为每本书下达了单独的订单,并且它们订购的数量不同。让我们假设我们只想查看仅列出一次的图书标题的摘要。然后是它旁边列出的数量的总和。
现在让我们转到设计视图,在“设计”选项卡中,您将看到一个 Sigma 符号。这是您的总计按钮。
单击 sigma 符号,它将在表行中的字段下方打开另一行,您可以从此处指定如何对该查询进行分组。
我们现在将按图书标题分组,并将数量字段相加。
如果我们单击 **分组依据区域** 并进一步单击下拉菜单,所有选项都将列出。在这种情况下,我们将选择 **Sum** 选项,然后运行您的查询。
您现在可以看到每本书以及书名旁边显示的所有单独订单。
Access 中的连接
我们学习了规范化的过程,将信息存储在单独的字段中。有时您想一起查看或查看数据,例如将名字和姓氏字段组合为单个字段。您可以通过创建一个连接一个或多个字符串的计算字段来一起显示该信息。您还可以添加其他字符,例如逗号或句点。
要在 Access 中进行连接,您可以使用两个不同的运算符 **&** 和 **+** 号。
& 将组合两个字符串为一个,而 + 号将组合两个字符串并传播 NULL 值,例如,如果一个值为 NULL,则整个表达式将评估为 null。
示例
让我们来看一个简单的例子来理解使用查询设计创建新查询的过程。这将是一个非常简单的查询,它从我们的客户表中提取信息。
现在让我们添加 **tblCustomers** 表关闭该显示表对话框。我们将尝试使用一些简单的命名字段进行一些连接。
现在让我们添加名字和姓氏字段并运行查询。
如您所见,名字和姓氏被分成两个不同的字段。
我们需要将此信息一起显示。
返回 **设计视图**,在第三个字段中创建一个名为 **全名** 的新字段。现在,添加全名并键入连接这两个字段的表达式。
让我们运行查询,您将看到一个新的计算字段。
它可以将这两个字段的信息连接在一起,但它看起来并不完全像我们想要的那样。它将所有文本一起运行,因为它按照我们的要求执行。现在,我们将不得不要求 Access 在这两个字段的信息之间添加空格。
现在让我们返回 **设计视图** 并向此表达式添加另一个部分。
在引号内添加一个空格和另一个&。这使得 Access 获取名字字段的信息;用空格添加它,然后在最后添加姓氏字段的信息。现在,再次运行查询,您将看到以下结果。
Ms Access - 数据汇总
如果您只寻找一个特定的数字,则聚合查询非常有用,但是如果您想要类似电子表格的汇总信息,则可能需要考虑尝试交叉表查询。当您想要重组汇总数据以使其更易于阅读和理解时,请考虑使用 **交叉表查询**。
交叉表查询是一种 **选择查询**。运行交叉表查询时,结果将显示在数据表中。此数据表与其他类型的数据表的结构不同。
交叉表查询的结构可能比显示相同数据的简单选择查询更易于阅读,如下面的屏幕截图所示。
到目前为止,在 Access 中创建交叉表查询最简单的方法是简单地使用 Access 附带的向导来创建您的交叉表查询。现在让我们转到“创建”选项卡,在“查询”组中单击“查询向导”。
在上面的对话框中,您可以看到各种特殊的查询。您可以像我们到目前为止从设计视图中所做的那样,创建一个简单的查询向导。第二个是我们想要的——交叉表查询,它以紧凑的电子表格格式显示数据。现在,选择交叉表查询并单击“确定”。
向导的第一个屏幕将提示哪个表或查询包含您想要用于交叉表查询结果的字段。单击 **查询** 单选按钮并选择 **qryOrdersInformation** ——这是我们之前创建的包含小计、销售税等的查询。单击 **下一步**。
我们现在将查看该查询中的可用字段。它将提示您输入您想要作为行标题的字段值。让我们说我们想要所有不同图书标题的简单列表。现在选择图书标题字段,将其发送到您的所选字段区域,然后单击 **下一步**。
在上面的对话框中,问题是您想用什么作为列标题,这实际上取决于您想评估什么。让我们假设您想查看我们的 **按日期销售额**,选择 **TransactionDate** 并单击 **下一步**。
上面的对话框中的问题是一个专门的问题,基于我们之前选择的字段,因为我们选择了一个日期时间列。它询问我们是否要按特定间隔对我们的日期时间列信息进行分组。选择年份选项,然后单击 **下一步**。
上面的对话框中的下一个问题询问您想为行交叉点中的每一列计算什么数字。在这种情况下,我们可以按所售图书的数量选择 **quantity (QTY)** 和函数中的 Sum,然后单击 **下一步**。
向导的最后一个屏幕将询问 **您想将查询命名为什么**,然后单击 **完成** 以 **查看该查询**。
我们现在有按书的信息,以及关于总销售额的信息,例如每次销售发生的时间。
Ms Access - 联接
数据库是数据的表集合,允许它们彼此进行逻辑关系。您可以使用关系通过它们共有的字段连接表。表可以是任意数量的关系的一部分,但每个关系总是恰好有两个表。在查询中,关系由 **联接** 表示。
什么是联接
联接指定如何组合数据库中两个或多个表中的记录。从概念上讲,联接与表关系非常相似。事实上,联接对于查询来说就像关系对于表一样。
以下是我们将在本章中讨论的两种基本类型的联接:
- 内部联接
- 外部联接
两者都可以轻松地从 **查询设计视图** 创建。
内部联接
现在让我们了解 **内部联接**:
- 最常见的联接类型是内部联接,它也是 Microsoft Access 中的默认联接类型。
- 内部联接仅显示两个表的联接字段相等的那些行或记录。
- 此联接类型查看这些公共字段和其中包含的数据。它只显示匹配项。
外部联接
现在让我们了解一下什么是外连接。
- 外连接显示来自一个表的所有行,以及另一个表中连接字段相等的行或记录。
- 换句话说,外连接显示来自一个表的所有行以及另一个表中相应的行。
还有其他连接类型:
左外连接和右外连接
现在让我们了解一下左外连接和右外连接。
- 您可以选择显示所有行的表。
- 您可以创建一个左外连接,它将包含来自第一个表的所有行。
- 您可以创建一个右外连接,它将包含来自第二个表的所有行。
现在让我们转到创建选项卡,并从设计视图创建一个查询。选择tblProjects和tblTasks,然后关闭“显示表”对话框,如下图所示。
从tblProjects表中添加ProjectName字段,从tblTasks表中添加TaskTitle、StartDate和DueDate字段。
现在让我们运行查询。
我们只显示了几个项目的记录。其中一些项目有很多与该项目相关的任务,这些信息通过ProjectID字段关联。
当我们在 Microsoft Access 中创建此查询时,Access 会从我们创建的关系中获取此关系。
默认情况下,它会创建一个所谓的这两个字段之间的内连接,这两个表之间的内连接,这就是它如何将这两个表中的信息关联起来。
它只显示匹配项,因此当我们运行此查询时,tblProjects中列出的许多其他项目不会显示为我们此查询中的记录集的一部分,这是因为这两个表是如何通过内连接连接在一起的,内连接又是任何查询的默认连接。
但是,如果您想更改关系,假设您想创建一个外连接,或者换句话说,显示tblProjects中的所有项目,该表中的每条记录,以及tblTasks中的所有任务——打开连接属性;我们可以通过双击关系线来简单地做到这一点。
Access 将在“连接属性”对话框中显示左表名和右表名。
左列名和右列名,第一个单选按钮是只包含两个表中的连接字段相等的行,这就是内连接,这是创建关系时、在查询中创建连接时默认选择的,但是,您可以更改它。
我们还有另外两个选项;我们可以包含来自tblProjects的所有记录,以及来自tblTasks中连接字段相等的记录,这就是左外连接。
我们还有第三个选项,包含来自tblTasks的所有记录,以及来自tblProjects中连接字段相等的记录,这就是右外连接。
这些就是您可以轻松地从设计视图中创建的不同类型的连接。让我们选择第二个选项,即左外连接,然后单击确定。
现在让我们来看一下其他步骤:
当您查看关系线时,您将看到一个指向tblTasks中ProjectID的小箭头。当您运行此查询时,您将看到以下结果。
现在让我们再次转到设计视图并双击关系线。
在“连接属性”对话框中,选择第三个选项,即右外连接,然后单击确定。
现在看看我们的关系线。您将看到一个小箭头现在指向tblProjects中的ProjectID。当您运行此查询时,您将看到以下结果。
自连接
自连接是另一种类型的连接。自连接关联来自同一表中匹配的字段。例如,查看带有主管字段的员工表,该字段引用存储在同一表中另一个字段(员工 ID)中的相同类型的数字。
如果我们想知道 Kaitlin Rasmussen 的主管是谁,我们将不得不取该主管字段中存储的数字,并在该员工 ID 字段中查找同一表,以便知道 Charity Hendricks 是主管。
此表不是关系数据库的理想结构,因为它没有规范化。
如果我们遇到需要创建查询的情况,该查询只列出员工姓名及其主管姓名,那么除非我们创建自连接,否则我们没有简单的查询方法。
要查看自连接,请创建一个包含以下字段的表并输入一些数据。
在这里,我们想再次创建一个列表,其中包含员工的姓名,然后是主管的姓名。让我们从查询设计视图创建一个查询。
现在,添加tblEmployees表。
关闭此对话框。
现在,添加我们员工的姓名。
我们现在需要一种方法来创建此表与其自身之间的关系。为此,我们需要打开显示表对话框并再次添加 tblEmployees。
我们已在此查询视图中创建了同一表的另一个副本。现在,我们需要创建自连接。为此,请单击tblEmployees表中的主管,按住鼠标按钮,然后将其直接拖放到复制表tblEmployees_1中的EmployeeID上。然后,添加该复制表中的姓名。
现在让我们运行您的查询,您将看到以下结果。
它显示了员工的姓名以及他们主管的姓名。这就是您在 Microsoft Access 中创建自连接的方法。
Ms Access - 重复项查询向导
在本教程中,我们主要从设计视图创建了各种选择查询。但在 Access 中,我们可以使用一些特殊的查询向导来创建一些特定的选择查询。第一个是查找重复项查询向导。查找重复项查询向导将创建一个查询,用于查找单个表或查询中具有重复字段值的记录。
正如我们所讨论的那样,关系数据库旨在避免存储重复信息。但尽管有这种设计,用户有时会意外输入重复信息。
示例
在客户表中,您可以意外地两次添加相同的客户。在这种情况下,客户将具有相同的地址,但不同的客户 ID,这可能会导致报告问题。在这种情况下,您可以使用重复项查询向导快速查找可能的重复项。
现在让我们打开包含tblAuthers表的 Access 数据库,然后转到创建选项卡,在查询组中选择查询向导。
如果您看到以下屏幕截图,则有四个不同的向导可供选择。选择查找重复项查询向导,然后单击确定。
查找重复项查询向导的第一个屏幕将询问您要搜索哪些表或查询以查找可能的重复项。假设我们要检查作者表,以确保同一作者没有意外地被输入两次。因此,选择 tblAuthors 并单击下一步。
向导的第二个屏幕将询问哪些字段可能包含重复信息。
通常,您不会使用主键字段,因为当您在 Access 中将字段指定为主键时,Access 将不允许输入重复项。
我们将查看任何其他字段或字段组合。
我们可以按姓氏或姓名搜索,也可以按他们的街道地址搜索,或者更具体地说,按他们的电话号码或生日搜索。
现在让我们按姓名和生日搜索,然后单击下一步。
此向导中的下一个屏幕将询问我们希望在查询中显示哪些字段。为此,点击双箭头,所有字段都将移动到附加查询字段区域,并将添加到我们的查询结果中。
现在让我们单击下一步。它将带我们到此查询向导的最后一个屏幕。
在以下屏幕中,输入您希望如何命名查询。
默认情况下,它将将其命名为查找重复项加上您正在查询的对象的名称。在本例中为tblAuthors,但您也可以为其指定任何其他名称,然后单击完成。
在这里,Access 发现了一个可能的重复项,那就是作者 Jose Caline,他具有相同的生日、相同的地址、相同的电话号码,但不同的 AuthorID。
这个肯定是由意外输入了两次。我们现在已将所有字段添加到我们的查询中,我们可以删除该记录。我们还必须确保在另一个表中没有任何相关的记录。
选择任何记录,然后选择删除,如下面的对话框所示。
Access 将提示您:“您即将删除一条记录。”如果您想继续,请单击“是”。
如果您想查看该向导是如何创建此查询的,请进入设计视图,查看已添加到此查询的所有内容。
正如您在上图中看到的,我们有我们的字段以及姓名字段下的一些特定条件。
这就是此向导查找重复信息的方式。这是迄今为止查找重复项最简单的方法。
Ms Access - 不匹配查询向导
在 Access 中,还有另一个非常有用的向导,那就是查找不匹配查询向导。查找不匹配查询向导将创建一个查询,用于查找一个表中与另一个表中没有相关记录的记录或行。
正如我们之前讨论过的,数据如何在查询中连接,以及大多数查询是如何寻找两个或多个表之间的匹配项的。
例如,这是 Access 中的默认连接方式。如果我们使用两个表tblCustomers和tblOrders设计一个查询,并通过 CustomerIDs 连接这两个表,则此查询只会返回匹配的结果。换句话说,就是那些下过订单的客户。
有时我们不想看到匹配项,例如,我们可能不想看到数据库中的任何客户——那些尚未下过订单的客户。
- 这就是查找不匹配查询的功能。
这种类型的查询还有许多其他可能的用途。
在我们的数据库中,我们可以用它来查看哪些作者尚未撰写项目,或者您可以用它来查看哪些员工尚未选择任何健康福利。现在让我们打开包含Customers和Orders表的数据库;转到“创建”选项卡,然后单击“查询向导”按钮。
选择查找不匹配查询向导,然后单击确定。
在这种情况下,我们将查找那些尚未下过订单的客户。在第一个屏幕中,它会询问哪个表或查询包含您希望在查询结果中显示的记录。
现在我们想要一个来自tblCustomers的客户列表。选择该选项,然后单击下一步。
在接下来的屏幕中,您需要指定哪个表或查询包含相关记录。换句话说,您将哪个表用于与第一个表进行比较。为此,我们需要找到那些没有下过订单的客户。我们需要选择包含所有订单信息的表——tblOrders。现在,单击下一步。
在接下来的屏幕中,您需要指定两个表中哪些信息相同。
- 这通常是某种主键、外键、字段或关系。
- 如果您的数据库中存在现有关系,Access 将为您选择并匹配这些字段。
- 但是,如果您有其他可以连接在一起的字段,并且包含类似信息,您也可以在这里选择它们。
在这里,'tblCustomers'中的字段和'tblOrders'中的字段默认情况下都选择了CustID。现在,单击下一步。
在接下来的屏幕中,您可以选择希望在查询结果中显示的字段。
现在让我们选择所有可用的字段,然后单击双向箭头。这会将所有可用字段移动到已选字段区域。现在,单击下一步。
最后一个屏幕将允许您为查询选择名称,然后单击完成。
这里列出了一个客户,该客户尚未在我们这里下过订单。
您还可以查看查询是如何创建的。为此,您需要返回设计视图。
此向导在 tblCustomer 和 tblOrders 之间创建了一个外部连接,并在来自 tblORders 的 CustID 中添加了Is Null条件。这是为了排除某些记录。在本例中,它是那些下过订单或在 tblOrders 中有相关信息的客户。
Ms Access - 创建窗体
Access 中的窗体就像商店里的展示柜,使查看或获取所需的项目更容易。由于窗体是您可以或其他用户可以通过其添加、编辑或显示存储在 Access 桌面数据库中的数据的对象,因此窗体的设计是一个重要方面。您可以使用 Microsoft Access 中的窗体进行许多设计方面的工作。您可以创建两种基本类型的窗体:
- 绑定窗体
- 非绑定窗体
绑定窗体
现在让我们了解绑定窗体是什么:
- 绑定窗体连接到某个底层数据源,例如表、查询或 SQL 语句。
- 当人们想到窗体的用途时,通常想到的就是绑定窗体。
- 窗体用于填写或用于输入或编辑数据库中的数据。
- 绑定窗体的示例通常是用户用于输入、查看或编辑数据库中数据的窗体。
非绑定窗体
让我们看看非绑定窗体:
- 这些窗体未连接到底层记录或数据源。
- 非绑定窗体可以是对话框、切换板或导航窗体。
- 换句话说,非绑定窗体通常用于导航或与数据库整体交互,而不是与数据本身交互。
绑定窗体的类型
您可以在 Access 中创建许多类型的绑定窗体。让我们了解这些类型:
单项窗体
这是最流行的一种,在这里,记录是一次显示一条。
多项窗体
这会一次显示来自该绑定数据源的多条记录。
拆分窗体
窗体垂直或水平地分成两半。一半显示单个项目或记录,另一半显示列表或提供来自底层数据源的多条记录的数据表视图。
创建窗体
您可以使用几种方法在 Access 中创建窗体。为此,请打开您的数据库并转到创建选项卡。在“窗体”组中,在右上角,您将看到“窗体向导”按钮。
单击该按钮以启动窗体向导。
在此向导的第一个屏幕上,您可以选择要显示在窗体上的字段,并且您可以从多个表或查询中的字段中进行选择。
让我们假设我们只需要一个简单的窗体,我们将用于输入员工信息。
从表/查询下拉列表中,选择tblEmployees表。单击双箭头一次移动所有字段。
让我们只保留一个表,然后单击下一步。
窗体向导中的下一个屏幕将询问我们希望窗体采用哪种布局。我们有列式、表格式、数据表式和对齐式布局。我们将在此处选择列式布局,然后单击下一步。
在下一个屏幕中,我们需要为窗体命名。让我们将其命名为frmEmployees。
为窗体命名后,您可以打开窗体以查看窗体的样式,或者您可以开始将信息输入到您的表中。或者,您可以选择修改窗体设计的选项。让我们选择第一个选项来打开窗体以查看或输入信息,然后单击完成。
现在,请查看下面的屏幕截图。这就是您的窗体的样子。这是一个单项窗体,这意味着一次显示一条记录,此外,您可以在下面看到导航按钮,这告诉我们它正在显示 9 条记录中的第 1 条记录。如果您单击该按钮,则它将移动到下一条记录。
如果您想跳转到该窗体或该表中的最后一条记录,您可以使用该右箭头旁边的按钮,带有一条线的箭头,即最后一条记录按钮。如果您想添加新的员工信息,请转到这些记录的末尾,然后在 9 条记录之后,您将看到一个空白窗体,您可以在其中开始输入新员工的信息。
这是使用窗体向导创建窗体的一种示例。现在让我们关闭此窗体并转到“创建”选项卡。现在,我们将使用向导创建一个稍微复杂的窗体。单击“窗体向导”,这次我们将从几个不同的表中选择字段。
在此窗体向导中,让我们为表/查询选择tblProjects,并选择一些可用字段,例如 ProjectID、ProjectName、ProjectStart 和 ProjectEnd。这些字段现在将移动到“已选字段”。
现在为表/查询选择tblTasks,并将 TaskID、ProjectID、TaskTitle、StartDate、DueDate 和 PercentComplete 传递过来。单击下一步。
在这里,我们要从几个不同的对象中检索数据。我们还可以选择如何排列窗体。如果我们想创建一个平面窗体,我们可以选择按tblTasks排列,这将创建一个单一窗体,所有字段都以平面视图布局,如上所示。
但是,如果我们想根据一对多关系创建一个分层窗体,我们可以选择按 tblProjects 排列数据。
在上图窗口中,我们可以选择为tblTasks包含一个子窗体,或者我们可以将其设为链接窗体。在此链接窗体中,tblProjects 将有一个按钮,该按钮将启动第二个窗体,该窗体已过滤到我们在底层项目窗体中选择的项目。现在让我们选择带子窗体(s)的窗体,然后单击下一步。
在接下来的屏幕中,您可以为子窗体选择布局。数据表视图默认情况下被选中。数据表视图类似于表视图。现在,单击下一步。
在接下来的屏幕中,您需要为窗体命名。输入您想要的名称,然后单击完成。
Access 将为您提供窗体外观的预览。在顶部,您有主窗体上的控件,该控件来自我们的Projects表。向下看,您将看到一个子窗体。它就像窗体中的窗体。
多项窗体
您可能还希望创建特定类型的窗体。为此,您可以单击更多窗体下拉菜单。
您可以从菜单中创建多项窗体、数据表窗体、拆分窗体,甚至模态对话框窗体。这些通常是绑定窗体;选择您希望绑定到该窗体的对象。这并不适用于模态对话框窗体。
要创建此类型的窗体,您需要首先在导航窗格中选择对象。让我们在这里选择tblEmployees。
通过单击更多窗体和多项继续。
上述步骤将进一步创建一个多项窗体,列出所有员工。
拆分窗体
这种类型的窗体垂直或水平地分成相等的两半。一半显示单个项目或记录,另一半显示列表或来自底层数据源的多条记录的数据表视图。
现在让我们在导航窗格中选择tblEmployees,然后在创建选项卡上。从“更多窗体”菜单中选择拆分窗体选项,您将看到以下窗体,其中窗体垂直分割。
Ms Access - 修改窗体
我们学习了几种创建简单的数据录入窗体的方法。尽管窗体简化了数据录入过程;但它们可能无法满足您想要的其他目的。它们可能对您的预期目的而言不够吸引人或不友好。
- 创建窗体后,您可能首先想要做的事情是调整大小或移动控件。
- 您可能还需要添加或删除控件。
我们现在将讨论如何轻松修改您的窗体。
控件
它只是一个通用术语,用于描述窗体或报表上显示数据、执行操作或用于装饰(例如线条)的任何对象。换句话说,控件几乎是放置在窗体或报表上的任何东西。
以下可以被认为是控件:
- 例如标签之类的对象。
- 您可以使用非绑定或绑定文本框来添加、编辑甚至计算表达式。
- 执行诸如**保存、打开**电子邮件或**打印**等操作的命令按钮,这些按钮也称为控件。
- 它只是一个泛指表单或报表上任何对象的通用术语。
我们现在将研究使表单美观的不同方面,并了解如何编辑和修改表单。现在让我们打开我们的“多项目”表单,该表单列出了所有来自**tnlEmployees**的员工。
您可以看到员工列表,但看起来并不像一个非常用户友好的列表。我们的控件尺寸过大。它们太大,间隔太开,并没有提供非常有用的列表视图。
要编辑此表单上控件的外观,您可以使用两种表单视图。在“开始”选项卡中,单击**视图**下拉菜单。
您可以选择“布局视图”或“设计视图”,这两种视图都用于编辑表单。“表单视图”默认打开;这是您将用于交互或编辑基础数据源的视图。
要编辑表单本身的外观,我们需要先转到“布局视图”。
切换到“布局视图”后,您将看到一系列上下文选项卡出现。
在 Access 的顶部,您将看到一个标记为**“表单布局工具”**的区域,其中包含三个选项卡——“设计”选项卡、“排列”选项卡和“格式”选项卡,每个选项卡都有不同的选项来设置表单的外观。
当您用鼠标单击这些控件中的任何一个时,您会注意到 Access 将突出显示表单的特定区域,该区域内的所有控件都将被浅橙色阴影覆盖,而您选择的实际控件将比之前的控件具有更深的阴影或在其周围具有更深的橙色边框。
在这里,您可以根据需要调整控件大小,方法是单击并拖动鼠标来调整该控件的高度或宽度或两者。
在此特定表单中,当您调整任何单个控件的大小时,您也会更改表单上其余控件的大小,这是因为这些控件是如何分组的。现在让我们使用鼠标的单击和拖动功能来根据您的意愿调整所有字段。
这是从“布局视图”编辑表单中控件的高度和宽度的快速方法之一。
主题
在 Access 中,有一些基本的方法可以使用内置主题、颜色和字体样式来设置表单格式,自定义填充颜色和阴影交替行。现在让我们打开**frmEmployees**。
Access 创建的表单简单明了。它们顶部有蓝色条,背景为白色。
如果您想了解如何进一步设置这些表单的样式,您可以转到“设计视图”或“布局视图”,并浏览“设计”选项卡中“主题”区域的一些选项。
如果您单击“主题”下拉库,您可以尝试许多预先创建的主题。将鼠标悬停在其中任何一个主题上,都会预览更改颜色、字体大小和实际使用的字体等内容。要应用特定样式,只需单击鼠标即可查看其外观。
如果您喜欢该主题但想更改颜色,您可以返回到“设计”选项卡上的“主题”组并选择您喜欢的颜色。您还可以创建自定义颜色以匹配您公司的颜色。
同样,您还可以选择一系列字体样式。您可以从 Office 套件中预先内置的众多样式中选择一个,也可以自定义这些字体,选择特定的标题字体、正文字体,甚至为该字体组创建自定义名称并保存。
让我们回到**frmEmployees**。在此表单中,您会看到每隔一行都为浅灰色阴影。
此格式选项称为**“交替行颜色”**,如果您想在多行表单中调整它,请转到**“设计视图”**。
选择详细信息部分,然后转到“格式”选项卡,在“背景”组中,您应该会看到**“交替行颜色”**选项。您可以更改交替行的颜色。要查看其外观,只需转到“表单视图”或“布局视图”。
如果您根本不需要任何阴影,可以选择**“无颜色”**作为您的**“交替行颜色”**,这更像是早期 Access 版本的传统外观。
Ms Access - 导航表单
Access 包含一个导航控件,可以轻松地在数据库中的各种表单和报表之间切换。导航表单只是一个包含导航控件的表单。导航表单是任何桌面数据库的绝佳补充。
Microsoft Access 提供了多种功能来控制用户如何导航数据库。
我们已经使用导航窗格来导航我们创建的所有 Access 对象,例如表单、查询、表等。
如果您想创建自己的导航结构,并使用户更容易找到他们真正需要的特定对象,您可以构建导航表单,这是一种使用导航控件的表单,因此用户可以直接从该主导航表单中使用或查看表单和报表。
示例
现在让我们来看一个简单的示例,我们将在此示例中创建导航表单。为此,请转到“创建”选项卡;在“表单”组中,您将看到此导航下拉菜单。
在此菜单中,您将看到用于排列要在该导航表单中嵌入的表单和报表的不同布局。
一个带有水平选项卡,一个带有垂直选项卡——所有选项卡都左对齐,一个垂直选项卡布局,所有选项卡都右对齐。
有一个水平选项卡布局有两个级别,因此,如果您有很多要在顶部显示的对象,您可以使用它。
您可以同时拥有水平选项卡和垂直选项卡,左对齐或右对齐。
在以下示例中,我们将使用水平选项卡和垂直选项卡。要创建该布局或导航表单,只需单击它,Access 就会创建一个未绑定表单,其中包含一个导航控件。
要向此导航表单添加对象,最简单的方法是通过布局视图,只需将对象拖放到您希望它们出现的位置。
现在让我们从导航窗格中拖动**frmProjects**表单并将其放在顶部的“[添加新项]”上。
同样,从导航窗格中拖动**frmAuthers**表单并将其放在“添加新按钮”的左侧。
现在让我们添加与项目相关的其他表单,例如**frmSubTasks、frmCurrentProjects**等。
现在让我们在顶部添加其他选项卡。我们将首先添加**frmEmployees**表单。
现在,您将看到左侧的其他项目按钮消失了,这是因为它们附加到“项目”选项卡。您在左侧查看的所有按钮都与您在顶部选择的任何内容相关联。现在选择了“员工”选项卡,让我们将与员工相关的信息拖到左侧。
现在,我们在一张选项卡上显示项目信息,在另一张选项卡上显示员工信息。同样,您可以根据需要添加更多选项卡。您可以看到选项卡的名称不合适,因此让我们开始重命名其中一些选项卡以使它们更易于用户使用。最简单的方法是双击左侧的任何选项卡或任何按钮并重命名它,如下面的屏幕截图所示。
Ms Access - 组合框
当您在任何表单中输入数据时,从列表中选择值比记住要键入的值更快更容易。选择列表还有助于确保在字段中输入的值是合适的。列表控件可以连接到现有数据,也可以显示在创建控件时输入的固定值。在本节中,我们将介绍如何在 Access 中创建组合框。
组合框
组合框是一个对象或控件,其中包含用户可以从中选择的向下列表值。
- 组合框控件提供了一种更紧凑的方式来显示选择列表。
- 除非单击下拉箭头,否则列表是隐藏的。
- 组合框还允许您输入列表中不存在的值。
- 这样,组合框控件结合了文本框和列表框的功能。
示例
现在让我们来看一个创建组合框的简单示例。我们已为员工创建了一个表单,如下面的屏幕截图所示。
现在,我们想为“电话类型”创建一个组合框,因为我们知道电话类型应该是**家庭、手机**或**工作**。此信息应在下拉列表中可用,用户无需键入此信息。
现在让我们转到此表单的**设计视图**。选择**“电话类型”**字段并按 Delete 键。
删除“电话类型”字段后,转到“设计”选项卡。
现在让我们从“控件”菜单中选择**“使用控件向导”**选项,然后从菜单中选择组合框控件,如下面的屏幕截图所示。
现在,在您想要的位置绘制组合框,当您释放鼠标时,您将看到“组合框向导”对话框。
在这里,您有不同的数据选项;让我们选择第二个选项,我们将添加值并单击“下一步”。
输入您希望在下拉列表中显示的值,然后单击**“下一步”**。
再次单击**“下一步”**。
输入组合框的**标签**,然后单击**“完成”**。
您可以看到组合框已创建,但它没有与其他字段对齐。让我们首先通过选择所有字段,然后转到“排列”选项卡来执行此操作。
在左侧,您将看到**“堆叠”**选项。单击此按钮。
现在您可以看到字段已对齐。
为了使每个字段的大小相同,我们有不同的选项,让我们单击“大小/间距”按钮。
从下拉列表中,单击**“最短”**。
现在转到**“表单”**视图。
用户现在可以轻松地为电话类型选择任何选项。
Ms Access - SQL 视图
在本节中,我们将介绍 SQL 视图。每当您在查询设计中创建查询时,Access 都会自动为您创建 SQL 查询。这实际上是从表中检索数据。要查看在查询设计中创建查询时如何在 sql 中创建查询,让我们打开您的数据库。
从创建选项卡中选择查询设计,然后添加tblEmployees表。
选择您想作为查询结果显示的字段,然后运行查询。
现在您可以看到所有员工信息作为查询结果。您已在查询网格中选择了某些字段;同时,MS Access 也创建了一个 SQL 查询,其中包含从查询网格中获得的结果。
要查看 SQL 代码,请转到“开始”选项卡。从“视图”菜单中选择SQL 视图,您将看到查询的 SQL 代码。
示例
以下是一个示例,我们将查看正在进行的项目。
现在让我们运行您的查询。
要查看 SQL 代码,请从“视图”菜单中选择 SQL 视图。
您可以看到 Access 自动生成的 SQL 查询。这有助于从两个表中检索数据。
Ms Access - 格式设置
Access 中一个特别有用的格式设置工具是可以应用条件格式来突出显示特定数据。让我们来看一个简单的条件格式示例。
示例
在这个示例中,我们将使用数据库中的fSubCurrentProjects窗体。
此数据库中列出了所有项目,我们还添加了几个新字段,例如按时状态和逾期任务数量。此窗体是从另一个查询创建的。
在此查询中,我们连接了一个表和一个查询,该查询将显示到期日期的计数或有多少项目的任务已逾期。我们这里还有一个计算字段,它使用 IF 函数来确定到期日期的计数是否大于零。如果项目逾期,它将显示逾期字样;如果特定项目没有任何逾期任务,则显示按时字样。
示例 1
在此示例中,我们将使用上述窗体来了解如何使用条件格式突出显示特定信息。我们现在将突出显示每个当前逾期的项目。要将条件格式应用于一个或多个字段,我们需要切换到布局视图。
现在,选择按时状态字段。
现在,转到“格式”选项卡。
在此“格式”选项卡上,您应该会看到一个名为“控件格式”的组和一个用于条件格式的特殊按钮。现在让我们单击条件格式。
您现在将看到条件格式规则管理器,目前我们没有将任何规则应用于此控件。现在让我们通过单击“新建规则”按钮创建一个新规则。
您现在将看到“新建格式规则”对话框。我们将首先指定要创建的规则类型,这里我们有两个选项。第一个选项是检查当前记录中的值或使用表达式,第二个选项是将此记录与其他记录进行比较。
我们的窗体中只有两个值之一;“按时”或“逾期”,这来自给定的查询。现在让我们从第一个组合框中选择“字段值是”,然后从第二个组合框中选择“等于”。现在,在引号中键入“逾期”字样。
现在我们可以设置我们的条件格式,如果“逾期”字样出现在该字段中,我们希望该字段的外观如何。现在让我们将字体颜色更改为红色,并将其设置为粗体、斜体和下划线,这就是我们的条件规则。现在让我们单击确定,然后单击应用,再单击确定。
您可以看到“逾期”字样现在已进行了格式设置。这是一个如何创建非常基本的条件格式规则的示例。
示例 2
让我们来看另一个示例。在这里,我们将使项目的标题或名称为红色并设置为粗体、斜体和下划线。选择窗体上的项目名称控件。
现在我们将返回到“格式”选项卡,单击“条件格式”,并为该特定控件创建一个新规则,如上面的屏幕截图所示。
在这里,我们不会检查所选当前字段的值,而是将其与窗体上的另一个字段进行比较。在第一个组合框中选择“表达式是”,然后单击末尾的……按钮,如上面的屏幕截图所示。
在“表达式类别”中,您拥有此窗体上的每个对象。双击CountofDueDate。这会将引用发送到该控件或该字段,直到我们的表达式生成器和条件(如果它大于零)。现在,单击确定。
现在让我们单击确定,然后单击应用,再单击确定。
这是一个基于另一个字段中的值的字段条件格式示例。
示例 3
让我们再来看另一个条件格式的示例。让我们假设,我们想查看哪些项目逾期时间更长或逾期任务比其他逾期项目更多。选择条件格式选项。
单击“新建规则”按钮以创建新规则,然后如上图所示单击确定。
在“新建格式规则”中,我们现在将选择规则类型“与其他记录比较”。让我们进一步将条形颜色更改为红色。我们希望最短的条形代表最低值,最长的条形代表最高值。现在让我们单击确定,然后单击应用,再单击确定。
您现在可以看到已应用条件阴影,如上面的屏幕截图所示。现在让我们转到窗体视图。
Ms Access - 控件和属性
本章将介绍 Access 中可用的控件和属性。我们还将学习如何向窗体添加控件。控件是窗体或报表中用于输入、编辑或显示数据的部件。控件允许您查看和处理数据库应用程序中的数据。
最常用的控件是文本框,但其他控件包括命令按钮、标签、复选框和子窗体/子报表控件。
您可以创建不同种类和类型的控件,但所有这些控件都属于两类之一——绑定或非绑定。
绑定控件
现在让我们了解什么是绑定控件:
- 绑定控件是绑定到数据库中特定数据源(例如字段、表或查询)的控件。
- 值可以是文本、日期、数字、复选框、图片甚至图表。
- 您可以使用绑定控件来显示来自数据库中字段的值。
非绑定控件
现在让我们了解什么是非绑定控件:
- 另一方面,非绑定控件不绑定到数据源,它们仅存在于窗体本身中。
- 这些可以是文本、图片或形状,例如线条或矩形。
控件类型
您可以在 Access 中创建不同类型的控件。在这里,我们将讨论一些常见的控件,例如文本框、标签、按钮选项卡控件等。
文本框
通常,文本框中的任何内容都将绑定,但并非总是如此。
您可以使用这些控件来与数据库中存储的数据进行交互,但您也可以拥有非绑定文本框。
计算控件将根据您编写的表达式执行某种计算,并且数据不会存储在数据库中的任何位置。
它是在该窗体上即时计算和实时显示的。
标签
- 标签始终为文本且是非绑定的。
- 通常,标签不会连接到数据库中的任何源。
- 标签用于标记窗体上的其他控件,例如文本框。
按钮
- 这是另一种流行的控件类型;这些命令按钮通常执行宏或模块。
- 按钮通常用于与数据库中的数据或对象进行交互。
选项卡控件
- 选项卡控件为您提供窗体中控件或其他控件的选项卡式视图。
- 向窗体添加选项卡可以使其更井然有序且易于使用,尤其是在窗体包含许多控件的情况下。
- 通过将相关控件放在选项卡控件的不同页面上,您可以减少杂乱并简化数据处理工作。
超链接
超链接在您的窗体上创建一个指向其他内容的超链接。它可以是网页,甚至是数据库中的另一个对象或位置。
其他一些控件
现在让我们了解一些其他控件:
您还可以创建 Web 浏览器控件和导航控件、组、分页符、组合框。
您可以创建图表、线条、切换按钮、列表框、矩形、复选框、非绑定对象框架、附件、选项按钮、子窗体和子报表、绑定对象框架,甚至可以在窗体上放置图像。
示例
现在让我们通过创建一个新的空白窗体来看一下其中一些控件的简单示例。转到窗体组中的创建选项卡,然后单击空白窗体。
上述步骤将打开一个非绑定窗体,该窗体尚未附加到数据库中的任何项目。
默认情况下,它将以布局视图打开,如上面的屏幕截图所示。
现在让我们转到设计视图以添加字段。
在“设计”选项卡上,单击“属性表”。
在“属性表”中,单击下拉箭头并确保已选择“窗体”,然后转到“数据”选项卡。
在“数据”选项卡上,您将看到记录源保持为空白。让我们假设,我们想要创建一个绑定到数据库中两个不同表的窗体。现在单击……按钮。它将进一步打开它自己的查询生成器。
选择包含要显示数据的表;单击“添加”按钮,然后关闭此对话框。
现在,让我们从 tblEmployees 中选择所有字段并拖动到查询网格,同样地,从 tblHRData 中添加所有字段。
现在,单击“另存为”并为该查询命名。
让我们将其命名为qryEmployeesData,然后单击确定,然后关闭查询生成器。
您现在可以将查询作为其记录源看到。我们现在已将此窗体绑定到数据库中的对象,在本例中为 qryEmployeesData。我们现在可以开始向此窗体添加一些控件,要添加任何一个控件,请转到“设计”选项卡并从控件组中查看您的选项。
在“控件”菜单中,您将看到“使用控件向导”已突出显示,如上面的屏幕截图所示。此按钮默认情况下周围有突出显示的框。这意味着控件向导已打开。这就像一个切换开关。当您单击切换开关时,向导将关闭。再次单击它将打开向导。
现在让我们单击“标签”并将此标签拖动并输入“员工信息”,然后转到“格式”选项卡以对其进行格式设置,如下面的屏幕截图所示。
您可以选择应用粗体样式或更改标签内文本的字体大小等。此控件显示在表单的详细信息部分内。将其标签放在表单页眉部分更有意义,但该部分目前不可见。
右键单击表单背景中的任意位置,然后选择上图所示的**表单页眉**。
将此控件移动到表单页眉区域。现在让我们从“设计”选项卡创建其他一些控件。在这一点上,假设我们要将所有字段分布到两个不同的选项卡中。
在控件菜单中,您可以看到“选项卡控件”,它将在您的表单上创建选项卡。单击选项卡控件,并将其绘制到表单的详细信息部分中,如上图所示。
它将创建两个选项卡——页面 2 和页面 3,如上图所示。
现在让我们开始向此选项卡控件添加一些控件。
如果我们想查看存储在我们底层查询中的某些信息,请单击“工具”组中功能区上的**添加现有字段**选项,以查看我们底层查询中所有可用的字段。
要将现有字段添加到页面,请选择“字段列表”中所有可用的字段,如下面的屏幕截图所示。
现在,将字段拖到选项卡控件的“页面2”中,如下面的屏幕截图所示。
现在,转到“排列”选项卡并选择**堆叠**布局。
在第二页上,现在让我们从该查询中添加其余字段。
您可以浏览并调整这些控件的大小和宽度,使其看起来符合您的喜好。
完成格式设置后,单击**另存为**图标,以您想要的名字保存表单。
单击“确定”并转到“表单”视图以查看该表单中的所有信息。
选项卡控件将我们的控件或字段分成两个屏幕,以便更轻松地查看和添加信息。
Ms Access - 报表基础
本章将介绍报表的 basics 以及如何创建报表。报表提供了一种查看、格式化和汇总 Microsoft Access 数据库中信息的方法。例如,您可以为所有联系人创建简单的电话号码报表。
报表包含从表或查询中提取的信息,以及与报表设计一起存储的信息,例如标签、标题和图形。
提供基础数据的表或查询也称为报表的记录源。
如果要包含的字段都存在于单个表中,请使用该表作为记录源。
如果字段包含在多个表中,则需要使用一个或多个查询作为记录源。
示例
我们现在将通过一个简单的示例来了解创建非常简单的报表的流程。为此,我们需要转到“创建”选项卡。
在单击“报表”按钮创建基本报表之前,请确保选择了正确的查询。在本例中,您的导航窗格中选择了**qryCurrentProjects**。现在单击“报表”按钮,这将根据该查询生成报表。
您将看到报表在布局视图中打开。这提供了一种快速调整报表上显示的任何字段的大小或宽度的方法。现在让我们调整列宽,以更好地适应所有内容。
向下滚动并调整底部的页面控件。
这是一种创建非常简单报表的非常快速的方法。您还可以从报表设计视图进行一些小的更改和调整。
- 就像表单一样,报表也由各种不同的节组成。
- 您有详细信息节,大部分数据都存储在这里。
- 您还会看到页眉和页脚节;这些出现在报表中每一页的顶部和底部。
现在让我们更改报表的标题并为其命名。
单击保存图标以保存您的报表。
您将看到上述对话框。
输入报表名称,然后单击“确定”。如果要查看此报表的实际外观,可以在“打印预览”中返回“视图”按钮,然后单击“打印预览”,以查看此报表打印在纸张上或作为 PDF 文件时的外观。
使用右下角的工具,您可以放大或缩小。当您切换到打印预览时,打印预览选项卡上还会自动显示一些按钮。在缩放部分,您可以查看一页、两页;或者,如果您的报表较长,则可以一次查看四页、八页或十二页。您还可以调整一些简单的事情,例如用于打印的纸张大小、报表的页边距、方向、列数、页面设置等。这就是您可以使用“创建”选项卡上的“报表”按钮创建非常快速的简单报表的方法。
使用报表设计创建报表
报表设计是另一种在 Access 中创建快速报表的方法。为此,我们需要使用“报表设计视图”按钮,它类似于“表单设计”按钮。这将创建一个空白报表并直接将其打开到设计视图,允许您直接更改控件源并将字段添加到报表的“设计视图”。
现在让我们转到“创建”选项卡,然后单击“报表设计”按钮。
它将打开一个空白报表或未绑定报表,这意味着此报表未连接到数据库中的任何其他对象。
在“设计”选项卡的“工具”组中,选择“属性表”。这将打开“属性”窗格。
在“数据”选项卡上,为该报表分配记录源,以将其连接到数据库对象,如下面的屏幕截图所示。
从下拉列表中选择**qryLateProjects**,下一步是通过单击“设计”选项卡上的“添加现有字段”列表按钮来向此报表添加一些字段。
选择上图所示的字段。
将字段拖到报表中,如上图所示。转到“排列”选项卡,在“表格”组中,您可以选择几个选项。
有一个堆叠布局和一个表格布局,这是一种与电子表格非常相似的布局。让我们选择表格布局。
您可以看到它将所有标签都移动到了页眉区域。这些标签只会在每一页的顶部出现一次,并且数据查询将为“详细信息”节中的每条记录重复。现在,您可以进行一些调整以使您的 ProjectName 字段更宽。
如上面的屏幕截图所示,“详细信息”节和“页脚”之间有很多空间。
让我们向上拖动页脚以减少空间,如下面的屏幕截图所示。现在我们将转到“设计”选项卡,单击“视图”按钮,然后选择“报表视图”。
您现在可以看到有些项目名称不完整;您可以使用设计视图或布局视图进行调整。
这就是我们仅从设计视图创建简单报表的方法。
Ms Access - 报表格式设置
在本章中,我们将学习如何设置报表的格式。您会发现报表格式设置与表单格式设置有很多相似之处,但也有一些特定于报表的工具和技巧。现在让我们了解一下报表节和分组的概念。
为此,我们需要打开上一章中创建的报表。在这里,我们将看到这些信息中的一些是如何在报表上显示的。
在这里,我们将从报表节和分组开始。
现在让我们转到此报表的“设计视图”。
您可以看到这里没有什么可看的,只有页眉、详细信息节和页脚可见。您可以非常轻松地添加几个附加节。
右键单击报表上的任意位置,您将看到页眉/页脚和报表页眉/页脚。此特定报表没有显示报表页眉/页脚。让我们选择该选项并返回报表视图。
您可以看到它只是在报表的顶部添加了一个小的彩色区域。在“设计视图”中,通过将鼠标悬停在页眉分隔符的顶部,单击并向下拖动来展开该区域。这将为报表页眉添加更多区域。
在“报表视图”中,您现在将在报表的顶部看到更多区域,如下面的屏幕截图所示。
报表页眉和页脚控件显示在报表第一页的顶部。报表页脚控制您在报表最后一页底部看到的内容。
报表页眉和页脚与页眉和页脚不同。放置在页眉中的任何内容都将显示在每一页的顶部。同样,放置在页脚中的任何内容都将在每一页的底部重复。
现在您可以添加其他分组级别,为此,您需要确保已打开分组排序和合计区域。
在“设计”选项卡的“分组和合计”部分中,单击“分组和排序”按钮,这将在底部打开“分组、排序和合计”区域,如下面的屏幕截图所示。
您现在可以在报表中的任何控件上添加其他组或分组。现在让我们单击“添加组”。
在上图中,您可以看到报表的基础控件源,其中包含项目名称、任务标题、截止日期和完成百分比。现在假设我们想按项目对所有逾期任务进行分组,因此请从列表中选择“项目名称”。
现在,您将在详细信息部分上方看到一个额外的分组级别**项目名称标题**。项目名称无需与每个逾期任务一起显示,我们可以将此控件移到项目名称标题中。您可以选择它,然后按键盘上的**Ctrl + X**将其从详细信息部分剪切,然后单击项目名称标题背景中的任意位置,然后按**Ctrl + V**将该控件粘贴到项目名称标题中。
您现在可以转到报表视图,查看对报表中项目分组所做的调整,如下面的屏幕截图所示。
每个项目都在其自己的行上拥有自己的小级别,然后在其下方,您将看到上述项目的所有逾期任务。完成此更改后,您可以继续在布局视图中开始设置报表的格式。
如果要放大项目名称,请拖动下面的线条,并在“格式”选项卡中将字体大小更改为 20。
您可以增加控件的宽度以覆盖整个页面宽度。
要删除控件周围的边框,请单击“格式”选项卡中的“形状轮廓”,如下面的屏幕截图所示。
选择**透明**选项。
现在让我们转到设计视图,如下面的屏幕截图所示。
将任务标题调整到页面左侧,如下面的屏幕截图所示。
现在让我们使用**Ctrl+X**和**Ctrl+V**将数据从页眉部分移动到**项目名称**标题部分。
现在让我们返回报表视图。您现在将看到标签直接显示在它们所描述的控件上方。
如果您注意到,任务与下一个项目名称之间没有空格。两者之间应该有额外的空间。为此,我们需要添加**项目名称页脚**。
现在,转到设计视图。
在“分组、排序和合计”区域中,单击项目名称旁边的“更多”按钮。
您现在将找到所有关于如何按项目名称分组和排序的选项,如下面的屏幕截图所示。
这里,我们有一个名为**无页脚部分**的属性。让我们通过单击**无页脚部分**文字旁边的那个小箭头来更改该选项。
将其更改为**有页脚部分**。
如上面的屏幕截图所示,在详细信息部分下方添加了ProjectName页脚部分。这将作为该项目名称组的页脚。
现在让我们返回报表视图。
要删除详细信息部分和项目名称区域中交替区域的阴影或背景外观,请再次转到设计视图。
让我们首先更改详细信息部分,方法是单击详细信息分隔符,然后打开属性表。
在“格式”选项卡上,将**交替背景颜色**更改为**无颜色**,如下面的屏幕截图所示。
同样地,将“项目名称标题”和“项目名称页脚”的交替背景颜色更改为“无颜色”,然后转到报表视图。
您现在可以看到报表的样式。要查看您的数据将如何逐页打印,让我们转到打印预览。
打印出来就是这样。
Ms Access - 内置函数
在本章中,我们将使用内置函数。在 Access 中,大约有数百个内置函数,几乎不可能涵盖所有这些函数。在本章中,我们将介绍基本结构、语法,并使用一些更常用的函数,以及一些陷阱,以便您可以自己去探索其他一些函数。
函数
函数是一个 VBA 过程,它执行任务或计算并返回结果。函数通常可用于查询,但您还可以将函数用于其他地方。
例如,您可以在表属性中使用函数,如果您想为日期/时间字段指定默认值,可以使用日期或**Now**函数从您的系统中调出当前日期/时间信息,并自动输入该值。
您还可以在创建计算字段时在表达式中使用函数,或在窗体或报表控件中使用函数。您甚至可以在宏参数中使用函数。
函数可以很简单,不需要调用其他信息,或者只需引用表或查询中的一个字段。
另一方面,它们也可能非常复杂,具有多个参数、字段引用,甚至在另一个函数中嵌套其他函数。
现在让我们来看一些使用内置函数的例子。
日期和时间函数
现在让我们了解日期和时间函数 -
Date() 函数旨在返回当前系统日期。此函数不需要任何函数参数或其他信息。您只需编写函数名称以及开括号和闭括号即可。
有两个非常相似的内置函数 Time() 和 Now()。
Time() 函数仅返回当前系统时间,而 Now() 函数同时返回当前系统日期和时间。
根据您要跟踪、存储或查询的数据,您有三个易于使用的内置函数可以帮助完成这项任务。
现在让我们打开您的数据库,使用查询设计创建一个新查询,并添加 tblProjects 和 tblTasks。
添加来自 tblProjects 的 ProjectName 以及来自 tblTasks 的 TaskTitle、StartDate 和 DueDate,然后运行您的查询。
您现在可以看到所有项目的所有不同任务。如果您想查看截至今天的正在进行中的项目任务,那么我们必须使用**Date()**函数指定条件来查看从今天或今天之后开始的项目。
现在让我们在 StartDate 下方指定条件。
条件以运算符**大于符号**开头,后跟**等于符号**,然后是**Date 函数**。
当我们运行此查询时,所有任务都将在今天或将来发生,如下面的屏幕截图所示。
这是一个关于如何在查询条件中使用 Date() 函数的示例。
现在假设此查询在它从本周开始提取的日期方面需要更灵活。
我们确实有一些本周开始的任务,由于我们的条件,这些任务没有出现在当前列表中。它查看等于今天或今天的开始日期。
如果我们想查看本周开始、尚未完成或应在今天完成的任务,让我们返回设计视图。
在这里,我们将向这些条件添加一些附加信息。事实上,我们希望它大于或等于今天的日期减去七天。
如果我们键入减去七并运行查询,您还可以看到本周开始的任务。
DateDiff() 函数
DateDiff() 函数是另一个非常流行的日期/时间函数。DateDiff 函数返回一个 Variant (Long),指定两个指定日期之间的时间间隔数。换句话说,它计算两个日期之间的差值,您可以选择函数计算该差值的间隔。
现在假设我们想计算我们作者的年龄。为此,我们首先需要创建一个新查询并添加我们的作者表,然后添加 FirstName、LastName 和 BirthDay 字段。
我们可以通过计算他们的出生日期或生日与今天的日期之间的差值来计算人们的年龄。
让我们尝试在新字段中使用 DateDiff 函数。
让我们将其称为 Age,后跟冒号,然后编写 DateDiff 函数。
- DateDiff 函数的第一个函数参数是间隔,因此键入“yyyy”。
- 下一个函数参数是我们想要计算的第一个日期,在本例中,将是 Birthday 字段。
- 第三个函数参数是今天的日期。
现在,运行您的查询,您将看到显示每个作者年龄的新字段。
Format() 函数
Format() 函数返回一个字符串,其中包含根据格式表达式中包含的指令设置格式的表达式。以下是可在 Format() 函数中使用的用户定义格式列表。ss
设置 | 描述 |
---|---|
yyyy | 年份 |
q | 季度 |
m | 月份 |
y | 一年中的第几天 |
d | 日 |
w | 星期几 |
ww | 周 |
h | 小时 |
n | 分钟 |
s | 秒 |
现在让我们回到您的查询,并使用 Format() 函数在其中添加更多字段。
键入 Format 函数。第一个函数参数将是一个表达式,它几乎可以是任何内容。现在让我们将 birthday 字段作为第一个,接下来我们要编写我们的格式。在本例中,我们需要月份、月份、日期、日期。在引号中写下“mmdd”,然后运行您的查询。
它现在正在从 birthday 字段中获取日期,4 是月份,17 是日期。
让我们在接下来的字段中添加“mmm”和“mmmm”代替“mmdd”,如下面的屏幕截图所示。
运行您的查询,您将看到结果,如下面的屏幕截图所示。
在下一个字段中,它将返回该生日月份名称的前三个字符,在最后一个字段中,您将获得完整的月份名称。
要查看生日的月份后跟年份,让我们添加“yyyy”,如下面的屏幕截图所示。
让我们再次运行您的查询。
您现在将看到月份后跟逗号,然后是年份。
IIf() 函数
IIf() 函数是“立即 If”的缩写,此函数将表达式评估为真或假,并为每个表达式返回一个值。它最多有三个函数参数,所有参数都是必需的。
- 第一个参数是您要评估的任何表达式。
- 下一个参数代表真值部分,如果您的第一个表达式为真,则可以返回一个值或一个表达式。
- 最后一个参数是表达式为假时您希望返回的内容。
示例
让我们来看一个简单的例子。我们将使用查询设计创建一个新查询,添加 tblAuthors 表,然后添加以下字段。
您现在可以看到我们有三个字段——FirstName、MiddleInitial、LastName,然后是这个连接字段,它将所有三个字段组合在一起。让我们运行您的查询以查看此查询的结果。
现在,您可以看到查询的结果,但您也会注意到有些记录没有中间首字母。例如,Joyce Dyer 记录没有中间首字母,但在 FullName 字段中,您会看到实际上不需要的句点。因此,返回设计视图。在这里,我们将使用 IIf 函数以不同的方式连接名称。
让我们在另一个字段中写入名称,并将其命名为 FullName1,然后键入 IIf 函数。
立即 If 函数的第一个函数参数将是您的表达式。在表达式中,我们将查看中间首字母字段是否为空或为 null。
下一个参数是真值部分。因此,如果中间首字母为 null,则我们希望显示 FirstName 和 LastName。
现在,对于我们的假值部分——如果 MiddleInitial 不为 null,则我们希望显示 FirstName、MiddleInitial 和 LastName。
让我们现在运行您的查询,您将看到结果,如下面的屏幕截图所示。
Ms Access - 宏
在本章中,我们将介绍 Access 中宏的基础知识。宏是一个允许您自动化任务并将功能添加到窗体、报表和控件的工具。
Access 中的宏的工作方式与 Word 或 Excel 中的宏略有不同,在 Word 或 Excel 中,您实际上是记录一系列击键并稍后播放它们。
Access 宏由一组预定义的操作构建,允许您自动化常见任务,并将功能添加到控件或对象。
宏可以是从导航窗格中可见的独立对象,也可以直接嵌入到窗体或报表中。创建表、窗体和报表等数据库对象后,宏可以提供一种快速简便的方法来将所有这些对象绑定在一起,以创建一个任何人都可以使用甚至修改的简单数据库应用程序,只需很少的培训。
宏提供了一种无需编写甚至了解 VBA 代码即可运行命令的方法,并且您可以仅使用宏实现很多功能。
创建宏
让我们从创建一个非常简单的宏开始,该宏在单击命令按钮时打开窗体。为此,我们需要打开您的数据库和 frmEmployeeData 窗体,我们在其中创建了两个选项卡。
在此窗体中,我们可以添加一个按钮,允许用户打开所有作业信息。
现在让我们转到此窗体的“设计视图”,并从“控件”菜单中添加按钮。释放鼠标后,您将看到“命令按钮向导”对话框。
构建该宏操作的方法有几种,但最简单的方法是简单地使用命令按钮向导。
对于打开窗体等常见操作,请从“类别”列表中选择“窗体操作”,然后从“操作”列表中选择“打开窗体”,然后单击“下一步”,如上面的屏幕截图所示。
您需要指定要使用命令按钮打开哪个窗体。现在,让我们选择 **frmJobs** 并单击 **下一步**。
在此屏幕中,我们有两个选项,我们可以 **打开窗体并显示非常具体的记录**,或者我们可以 **打开窗体并显示所有记录**。让我们选择第二个选项并单击“下一步”,如上面的屏幕截图所示。
我们可以让命令按钮本身显示图片,也可以选择“显示文本”。在这里,我们希望显示文本“查看作业”,然后单击“下一步”。
您现在可以为您的命令按钮提供一个有意义的名称,如上面的屏幕截图所示。这可以在其他代码或其他宏中使用。让我们将其命名为 **cmdViewJobs** 并单击 **完成**。
现在转到窗体视图。
您现在将在窗体上看到一个“查看作业”按钮。让我们点击它。
现在您打开了一个窗体,但您不会查看任何信息。让我们返回 frmEmployeeData 窗体设计视图。确保选中命令按钮,然后单击“属性表”上的“事件”选项卡。
单击后,您将看到向导创建的嵌入式宏。如果您现在想修改此宏,请单击“...”按钮以打开向导生成的宏。
这是宏设计器,在右侧,您将看到操作目录。这是所有操作将按文件夹存储的地方。您有数据输入选项、数据导入/导出等等,在左侧的主区域中,您有另一个宏。它只包含一个操作,单击该操作,您可以查看该特定操作的其他属性。
您将看到窗体名称,您可以点击该下拉箭头以查看数据库中可用的窗体。您可以更改窗体的显示方式,您可以选择将其打开到窗体视图、设计视图、打印预览。您可以应用筛选器名称或 Where 条件。在这里,我们要更改数据模式,因为 frmJobs 设置为添加模式,该模式仅允许添加新记录。我们可以在此宏中通过将其更改为编辑模式来覆盖此设置。
现在保存您的宏,然后关闭宏设计器并返回窗体视图。
让我们再次单击“查看作业”。
您现在可以看到它打开了您的 frmJobs 窗体,并允许您滚动浏览数据库中所有可用的作业。
Ms Access - 数据导入
在本章中,我们将讨论在 Access 中导入数据以及可以使用 Access 导入哪些类型的数据。通常,数据存储在各种格式、文件和位置中,这使得获取和使用它变得困难。如果您在电子表格、SharePoint 列表或其他某种格式中拥有数据,则只需几个步骤即可将其导入 Access 数据库,从而使其在 Access 中更容易获得。
“另存为”命令通常用于将文档保存为另一种格式,以便您可以在另一个程序中打开它。
在 Access 中,您不能以相同的方式使用“另存为”命令,您可以将 Access 对象保存为其他 Access 对象,但您不能将 Access 数据库保存为电子表格文件。
要将 Access 保存为电子表格文件,您需要使用“外部数据”选项卡上的导入功能。
Access 可以导入的不同类型的数据
要了解您可以在 Access 数据中导入哪些类型的数据,让我们打开您的数据库并转到“外部数据”选项卡。
在“导入和链接”组中,您可以看到 Access 中可用于数据导入的不同选项。以下是最常用的数据导入格式。
- Microsoft Office Excel
- Microsoft Office Access
- ODBC 数据库(例如,SQL Server)
- 文本文件(分隔符或固定宽度)
- XML 文件
示例
让我们来看一个从 Excel 文件导入数据的简单示例。这是 Access 文件中的数据。
要将数据导入 Access,我们首先需要打开 Access 数据库,然后转到“外部数据”选项卡,如下面的屏幕截图所示。
在“导入和链接”组中,您将看到一个 Excel 选项。让我们单击该选项。
浏览要从中导入数据的 Excel 文件,然后我们有不同的选项来存储数据。让我们选择第一个选项并单击“确定”。
在这里,您将看到数据的预览。现在,单击“下一步”。
在预览中,您现在可以看到第一行包含列标题。现在,让我们选中复选框并单击“下一步”。
您现在将看到一个对话框,您可以在其中设置每列/字段的数据类型。如果您不想导入任何字段,只需选中“不导入字段”复选框即可。完成 FirstName 字段后,只需单击 MiddleInitial 字段即可。
让我们现在浏览所有字段,然后单击“下一步”。
以下是主键的不同选项。让我们选择第一个选项并单击“下一步”。
在最后一个对话框中,您可以输入您选择的表名,然后单击“完成”。
如果您想保存所有这些步骤,请选中复选框并关闭对话框。
让我们现在转到导航窗格。您将看到这里添加了一个新表,当您打开新添加的表时,您将看到 Access 中的所有数据。
示例
让我们现在来看另一个从 Access 数据库导入数据的示例。让我们再次转到“外部”选项卡。
在“导入和链接”组中,单击 Access 选项。
浏览您要从中导入数据的 Access 数据库,然后选择第一个选项“导入表、查询、窗体等”。然后单击“确定”。
在上面的对话框中,您可以看到用于表、查询、窗体等的不同选项卡,您可以从中选择要导入的数据类型。
让我们转到**报表**选项卡,并选择要导入的任何报表;您也可以单击**全部选择**按钮来选择所有数据。让我们选择**项目**并单击**确定**。
现在,关闭对话框。在导航窗格中,您将看到添加了一个新的报表。让我们打开此报表,您将看到报表中的所有数据。
Ms Access - 数据导出
在本章中,我们将了解如何从 Access 导出数据。数据导出实际上与数据导入相反。在导入数据时,我们将其他格式的数据导入 Access,而在导出时,我们将数据保存为其他格式。
要了解可以从 Access 数据导出哪些类型的数据,让我们打开您的数据库并转到“外部数据”选项卡。
在“导出”组中,您可以看到从 Access 导出数据可用的不同选项。以下是最常用的数据导出格式:
- Microsoft Office Excel
- Microsoft Office Access
- ODBC 数据库(例如,SQL Server)
- 文本文件(分隔符或固定宽度)
- XML 文件
示例
让我们来看一个从 Access 导出数据的简单示例。打开您要从中导出数据的数据库。在导航窗格中,选择要从中导出数据的对象。
您可以从表、查询、窗体和报表对象等导出数据。让我们选择 qryAllProjects,然后转到“外部数据”选项卡。
在“外部数据”选项卡上,单击要导出到的数据类型。例如,要以 Microsoft Excel 可打开的格式导出数据,请单击“Excel”。
Access 将启动导出向导。在向导中,您可以设置诸如目标文件名和格式、是否包含格式和布局以及要导出的记录等信息。完成后,单击“确定”。
在这个向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为需要定期执行相同的操作,请选中**保存导出步骤**复选框,然后关闭对话框。
以下 Excel 文件将打开。
现在假设您要将数据导出到文本文件,在“外部数据”选项卡上,单击“文本文件”。
指定导出选项,然后单击“确定”。您将看到“编码”对话框,我们希望以默认编码导出数据。
选择第一个选项,然后单击“确定”。
在这个向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为需要定期执行相同的操作,请选中**保存导出步骤**复选框,然后关闭对话框。
您现在将看到文本文件已打开。
同样,您也可以探索其他选项。因此,强烈建议您也尝试其他导入导出功能。