Ms Access 简明教程
Ms Access - Overview
Microsoft Access 是 Microsoft 的数据库管理系统 (DBMS),将关系 Microsoft Jet Database Engine 与图形用户界面和软件开发工具结合到了一起。它是 Microsoft Office 套件应用程序的一部分,包含在专业版和更高版本中。
-
Microsoft Access 只是 Microsoft 整体数据管理产品策略的一部分。
-
它以基于 Access Jet Database Engine 的自有格式来存储数据。
-
与关系数据库类似,Microsoft Access 也允许您轻松地链接相关信息。例如,客户和订单数据。但是,Access 2013 还补充了其他数据库产品,因为它具有若干强大的连接功能。
-
它还可以导入或直接链接到存储在其他应用程序和数据库中的数据。
-
顾名思义,Access 可以直接使用来自其他来源的数据,包括许多流行的 PC 数据库程序,包含许多 SQL(结构化查询语言)数据库,这些数据库在桌面、服务器、小型机或大型机上,或存储在互联网或内联网 Web 服务器上。
-
Access 还可以理解和使用多种其他数据格式,包括许多其他数据库文件结构。
-
您可以直接将数据导出到文字处理文件、电子表格或数据库文件,或从中导入数据。
-
Access 可以使用大多数支持开放式数据库连接 (ODBC) 标准的流行数据库,包括 SQL Server、Oracle 和 DB2。
-
软件开发人员可以使用 Microsoft Access 来开发应用程序软件。
Microsoft Access 存储称为数据库的信息。要使用 MS Access,您需要遵循以下四个步骤:
-
Database Creation − 创建 Microsoft Access 数据库,并指定您将存储哪种类型的数据。
-
Data Input − 创建数据库后,可以将每个营业日的数据输入 Access 数据库。
-
Query − 这是基本用于描述从数据库中检索信息的过程的术语。
-
Report (可选)− 数据库中的信息采用打印 Access 报告时美观易懂的展示形式进行组织。
Ms Access - RDBMS
Microsoft Access 与其他 Microsoft Office 产品的观感并无太大差异,布局和导航方面也是如此。然而,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。
Data Definition
现在让我们了解一下数据定义是什么 −
-
在文档或电子表格中,您通常可以完全自由地定义文档的内容或电子表格中的每个单元格。
-
在一个文档中,您可以包括段落文本、表格、图表或使用多种字体显示的多列数据。
-
在电子表格中,您可以在顶部输入文本数据以定义用于打印或显示的列标题,并且在同一列中,您可能有各种数字格式,具体取决于行的功能。
-
RDBMS 允许您定义您拥有的数据种类以及数据应如何存储。
-
您通常还可以定义 RDBMS 可用于确保数据完整性的规则。
-
例如,某个验证规则可能确保用户不能意外地将字母字符存储在应该包含数字的字段中。
Data Manipulation
在 RDBMS 中操作数据与在文字处理或电子表格程序中操作数据有很大不同。
-
在文字处理文档中,你可以包含表格数据并对文档中的数据执行一组有限的功能。
-
你还可以搜索原始文档中的文本字符串,并使用 ActiveX 控件包含来自其他应用程序的表格、图表或图片。
-
在电子表格中,一些单元格包含确定你想要的结果的函数,在其他单元格中,你可以输入为函数提供来源信息的数据。
-
你可以搜索单个表格以获取信息或在几个相关表格中请求复杂的搜索。
-
你可以在一个命令中更新单个字段或多条记录。
-
你可以编写使用 RDBMS 命令来获取你想要显示数据的程序并允许用户更新数据。
Access 使用强大的 SQL 数据库语言以处理表格中的数据。使用 SQL,你可以定义解决特定问题所需的信息集,包括来自许多表格的数据。
Ms Access - Objects
MS Access 使用“对象”来帮助用户列出和组织信息,以及准备专门设计的报表。当你创建一个数据库时,Access 为你提供了表、查询、表单、报表、宏和模块。Access 中的数据库由许多对象组成,但以下是最主要的几个对象 -
-
Tables
-
Queries
-
Forms
-
Reports
这些对象共同允许你输入、存储、分析和汇编你的数据。以下是 Access 数据库中主要对象的摘要;
Table
表是用于定义和存储数据的对象。当你创建一个新表时,Access 会要求你定义字段,也称为列标题。
-
每个字段必须具有唯一名称和数据类型。
-
表包含存储不同类型数据的字段或列,例如姓名或地址,以及记录或行,收集有关特定主题实例的所有信息,例如有关客户或员工等主题的所有信息。
-
你可以定义主键,即每个记录中具有唯一值的一个或多个字段,以及每个表上的一个或多个索引,以帮助更快速地检索数据。
Query
提供来自一个或多个表的数据的自定义视图的对象。查询是一种从小表或大表搜索和编译数据的方式。
-
运行查询就像在询问你的数据库一个详细的问题。
-
当你以 Access 构建查询时,你正在定义具体搜索条件,以准确找到所需数据。
-
在 Access 中,你可以使用按示例图解查询工具或编写结构化查询语言 (SQL) 语句来创建查询。
-
你可以定义查询来选择、更新、插入或删除数据。
-
你还可以定义从一个或多个现有表的创建新表的查询。
Form
表单是桌面数据库中的一个对象,主要用于数据输入或显示,或用于控制应用程序执行。你使用表单自定义应用程序从查询或表中提取的数据的演示文稿。
-
表单用于输入、修改和查看记录。
-
使用表单如此频繁的原因是它们是用以指导人们正确输入数据的简单方法。
-
当你将信息输入 Access 中的表单时,数据会准确转到数据库设计器希望其在一些相关表中转到的地方。
Report
报告是桌面数据库中的对象,用于对所选数据进行格式化、计算、打印和总结。
-
您可以在打印前在屏幕上查看报告。
-
如果表单用于输入目的,则报告用于输出。
-
任何您计划打印的内容都值得一份报告,无论是姓名和地址列表、一段时期的财务摘要还是一组邮件标签。
-
报告非常有用,因为它们允许您以易于阅读的格式展示数据库组件。
-
您甚至可以自定义报告的外观以使其在视觉上更具吸引力。
-
Access 为您提供了从任何表或查询中创建报告的功能。
Other MS Access Objects
现在让我们来看一下其他 MS Access 对象。
Ms Access - Create Database
在本章中,我们将介绍启动 Access 和创建数据库的基本过程。本章还将说明如何使用模板创建桌面数据库以及如何从头开始构建数据库。
要从模板创建数据库,我们首先需要打开 MS Access,您将看到以下屏幕,其中显示不同的 Access 数据库模板。
要查看所有可能的数据库,您可以向下滚动,也可以使用搜索框。
让我们在搜索框中输入项目并按 Enter 键。您将看到与项目管理相关的数据库模板。
选择第一个模板。您将看到有关此模板的更多信息。
在选择与您的要求相关的模板之后,在 File name 字段中输入名称,如果您愿意,还可以为您的文件指定另一个位置。
现在,按创建选项。Access 将下载该数据库模板,并打开一个新的空白数据库,如下面的屏幕截图所示。
现在,单击左侧的导航窗格,您将看到随此数据库附带的所有其他对象。
点击导航“项目”,并在菜单中选择对象类型。
现在您将会看到所有的对象类型——表、查询等。
Ms Access - Data Types
表格中的每个字段都有属性,这些属性定义了字段的特征和行为。字段最重要的属性是它的数据类型。字段的数据类型决定了它可以存储哪种类型的数据。MS Access 支持不同类型的数据,每种类型都有特定用途。
-
数据类型决定了用户可以在任何给定字段中存储的值的类型。
-
每个字段可以存储仅包含单个数据类型的数据。
以下是你将在典型的 Microsoft Access 数据库中发现使用的一些最常见的数据类型。
Type of Data |
Description |
Size |
Short Text |
文本或文本和数字的组合,包括不需要计算的数字(例如,电话号码)。 |
Up to 255 characters. |
Long Text |
长文本或文本和数字的组合。 |
最大 63,999 个字符。 |
Number |
用于数学计算的数字数据。 |
1、2、4 或 8 字节(如果设置为复制 ID,则为 16 字节)。 |
Date/Time |
100 年至 9999 年的日期和时间值。 |
8 bytes |
Currency |
用于涉及带有 1 到 4 个小数位的数据的货币值和数字数据。 |
8 bytes |
AutoNumber |
Microsoft Access 在向表中添加新记录时用于分配的唯一顺序(递增 1)数字或随机数字。 |
4 字节(如果设置为复制 ID,则为 16 字节)。 |
Yes/No |
Yes 和 No 值,以及仅包含两个值中的一个(Yes/No、True/False 或 On/Off)的字段。 |
1 bit. |
-
如果您使用以前版本的 Access,您会注意到两种数据类型有所不同。
-
在 Access 2013 中,我们现在有两个数据类型——短文本和长文本。在以前版本的 Access 中,这些数据类型称为文本和备忘录。
-
文本字段称为短文本,备忘录字段现在称为长文本。
以下是 Access 中一些其他更专门的数据类型,您可以从其中进行选择。
Data Types |
Description |
Size |
Attachment |
文件,如数码照片。每个记录可以附加多个文件。在早期版本的 Access 中不可用此数据类型。 |
最大约 2 GB。 |
OLE objects |
OLE 对象可以存储图片、音频、视频或其他 BLOB(大型二进制对象)。 |
最大约 2 GB。 |
Hyperlink |
作为文本存储的文本或文本和数字的组合,用作超链接地址。 |
最大 8,192(超链接数据类型的每个部分最多可包含 2048 个字符)。 |
Lookup Wizard |
设计视图中数据类型列中的查找向导条目实际上不是一个数据类型。当您选择此条目时,向导将开始帮助您定义简单或复杂的查找字段。简单的查找字段使用另一个表的内容或值列表来验证每行单个值的内容。复杂的查找字段允许您在每行中存储相同数据类型的多个值。 |
取决于查找字段的数据类型。 |
Calculated |
您可以创建使用一个或多个字段中的数据的一个表达式。您可以从表达式指定不同的结果数据类型。 |
您可以创建使用一个或多个字段中的数据的一个表达式。您可以从表达式指定不同的结果数据类型。 |
这是在 Microsoft Access 表中创建字段时可以选择的所有不同数据类型。
Ms Access - Create Tables
当您创建数据库时,您将您的数据存储在表中。因为其他数据库对象在很大程度上依赖表,所以您应该始终通过创建其所有表然后创建任何其他对象来启动数据库的设计。在创建表之前,请仔细考虑您的需求并确定您需要的所有表。
让我们尝试并创建第一个表,该表将存储有关员工的基本联系信息,如下表所示 −
Field Name |
Data Type |
EmployeelD |
AutoNumber |
FirstName |
Short Text |
LastName |
Short Text |
Address1 |
Short Text |
Address2 |
Short Text |
City |
Short Text |
State |
Short Text |
Zip |
Short Text |
Phone |
Short Text |
Phone Type |
Short Text |
现在让我们将简短文本作为所有这些字段的数据类型,并在 Access 中打开一个空白数据库。
在上次的基础上继续。我们创建了数据库,然后 Access 会自动为表单打开这张表-单张数据表视图。
现在,让我们转到“字段”选项卡,您将看到它也已自动创建。ID 是一个“自动编号”字段,用作我们的唯一标识符,并且是该表的“主键”。
ID 字段已经创建,现在我们想要重命名它以满足我们的条件。这是一个“员工”表,并且它将成为我们员工的唯一标识符。
在功能区中单击 Name & Caption 选项,您会看到以下对话框。
将此字段的名称更改为 EmployeeID ,以使其更适用于此表格。如果需要,输入其他可选信息,然后单击“确定”。
现在,我们有了标题为“员工 ID”的员工 ID 字段。此字段自动设置为“自动编号”,因此实际上我们无需更改数据类型。
现在,让我们通过单击 click to add 添加更多字段。
选择 Short Text 作为字段。当选择“短文本”时,Access 将自动突出显示该字段名称,并且您所需要做的就是键入字段名称。
键入 FirstName 作为字段名称。同样,添加所有必需的字段,如下图所示。
在添加完所有字段后,单击“保存”图标。
您现在将看到 Save As 对话框,在其中可以为表输入表名。
在“表名”字段中输入表的名称。此处的 tbl 前缀表示表。让我们单击“确定”,您将在导航窗格中看到您的表。
Table Design View
鉴于我们已经使用 Datasheet View 创建了一个表。我们现在将使用 Table Design View 创建另一个表。我们将在该表中创建以下字段。这些表将存储有关各种书籍项目的部分信息。
Field Name |
Data Type |
Project ID |
AutoNumber |
ProjectName |
Short Text |
ManagingEditor |
Short Text |
Author |
Short Text |
PStatus |
Short Text |
Contracts |
Attachment |
ProjectStart |
Date/Time |
ProjectEnd |
Date/Time |
Budget |
Currency |
ProjectNotes |
Long Text |
让我们现在转至“创建”选项卡。
在“表格”组中,单击“表格”,您会看到它与数据透视图完全不同。在此视图中,可以看到 field name 和 data type 并排。
我们现在需要将 ProjectID 设为该表格的主键,因此让我们选择 ProjectID ,然后单击功能区中的 Primary Key 选项。
现在,您会看到一个小键图标,它将显示在那列字段旁边。这表明该列字段是表的主键的一部分。
让我们保存此表并为其起个名字。
单击“确定”,您现在可以看到此表在数据透视图中的样子。
让我们单击功能区左上角的数据透视图按钮。
如果您想对该表或任何特定字段进行更改,不一定要返回到设计视图来进行更改,也可以从数据透视图进行更改。让我们按照以下屏幕截图所示更新 PStatus 字段。
单击“确定”,您将看到所做的更改。
Ms Access - Adding Data
Access 数据库与 Microsoft Office Word 文档或 Microsoft Office PowerPoint 具有相同意义的文件不同。相反,Access 数据库是由表、窗体、报表、查询等对象组成的集合,这些对象必须共同工作才能使数据库正常运行。我们现在已经创建了两个包含数据库中所有必要字段和字段属性的表。要查看、更改、插入或删除 Access 表中的数据,可以使用该表的数据透视图。
-
数据透视图是查看数据所在行和列中数据的简单方法,无需任何特殊格式设置。
-
每当创建一个新的 Web 表时,Access 会自动创建两个视图,您可以立即开始使用它们进行数据输入。
-
在数据透视图中打开的表类似于 Excel 工作表,您可以键入或粘贴数据到一个或多个字段中。
-
您无需明确保存您的数据。当您将光标移动到同一行中的新字段中,或将光标移动到另一行时,Access 将提交您对表所做的更改。
-
默认情况下,Access 数据库中的字段设置为接受特定类型的数据,例如文本或数字。您必须输入字段设置为接受的数据类型。如果不输入,Access 会显示一条错误消息 -
让我们通过打开我们创建的 Access 数据库为表格添加一些数据。
在功能区中选择 Views → Datasheet 视图选项,并按照以下屏幕截图所示添加一些数据。
同样,在第二个表中也添加一些数据,如下面的屏幕截图所示。
您现在可以看到,在数据表视图中插入新数据和更新现有数据非常简单,就像在电子表格中工作一样。但是,如果您想删除任何数据,则需要先选择整行,如下面的屏幕截图所示。
现在按下删除按钮。这将显示确认消息。
单击 Yes ,您将看到所选记录已删除。
Ms Access - Query Data
查询是请求数据结果和对数据执行操作的请求。您可以使用查询来回答简单的问题、执行计算、组合来自不同表的数据,甚至添加、更改或删除表数据。
-
随着表的不断增大,它们可以拥有数十万条记录,这使得用户无法从该表中挑选出特定的记录。
-
使用查询,您可以将筛选器应用于表数据,以便只获得您想要的信息。
-
用于从表格检索数据或进行计算的查询称为选择查询。
-
用于增加、更改或删除数据的查询称为操作查询。
-
还可以使用查询为表单或报表提供数据。
-
在经过精心设计的数据库中,您想要通过使用表单或报表呈现的数据往往位于不同的表格中。
-
查询的棘手之处在于,您必须了解如何构建查询,然后才能真正使用它们。
Create Select Query
如果您只想查看表格中特定字段中的数据,或同时查看来自多个表格的数据,或者可能只是根据特定条件查看数据库,则可以使用 Select 查询。让我们现在来看一个简单的示例,其中我们将创建一个从 tblEmployees 表检索信息的简单查询。打开数据库并单击 Create 选项卡。
单击 Query Design 。
在 Tables 选项卡上的 Show Table 对话框中,双击 tblEmployees 表,然后 Close 对话框。
在 tblEmployees 表中,双击您希望作为查询结果看到的那些字段。按照以下屏幕截图所示将这些字段添加到查询设计网格。
现在,单击 Design 选项卡上的 Run ,然后单击 Run 。
查询运行,并且仅显示查询中指定字段中的数据。
Ms Access - Query Criteria
查询条件可帮助您从 Access 数据库中检索特定项目。如果某个项目与您输入的所有条件匹配,它将显示在查询结果中。当您想基于字段中的值来限制查询结果时,可以使用查询条件。
-
查询条件是一个表达式,Access 会将它与查询字段值进行比较,以确定是否包含每个值所在的记录。
-
有些条件很简单,并且使用基本运算符和常量。其他的则很复杂,并使用函数、特殊运算符以及包括字段引用。
-
要向查询添加一些条件,您必须在设计视图中打开该查询。
-
然后,您标识要为其指定条件的字段。
Example
让我们来看一个简单的示例,其中我们在查询中使用条件。首先打开您的 Access 数据库,然后转到“创建”选项卡,然后单击“查询设计”。
在“显示表”对话框的“表”选项卡中,双击 tblEmployees 表,然后关闭对话框。
现在让我们向查询网格中添加一些字段,例如 EmployeeID、FirstName、LastName、JobTitle 和 Email,如下面的屏幕截图所示。
现在让我们运行您的查询,您将仅看到这些字段作为查询结果。
如果您只想看到 JobTitle 为 Marketing Coordinator 的那些字段,那么您需要为此添加条件。让我们再次转到“查询设计”,然后在 JobTitle 的“条件”行中输入 Marketing Coordinator。
现在让我们再次运行您的查询,您将看到仅检索了 JobTitle 为 Marketing Coordinator 的字段。
如果您想为多个字段添加条件,只需在多个字段中添加条件。假设我们只想检索“Marketing Coordinator”和“Accounting Assistant”的数据;我们可以指定 OR 行运算符,如下面的屏幕截图所示 −
现在让我们再次运行您的查询,您将看到以下结果。
如果您需要使用 AND 运算符的功能,则必须在“条件”行中指定另一个条件。假设我们想检索所有 Accounting Assistants,但只检索 JobTitle 为“Pollard”的 Marketing Coordinators。
现在让我们再次运行您的查询,您将看到以下结果。
Ms Access - Action Queries
在 MS Access 和其他 DBMS 系统中,查询不仅可以显示数据,还可以针对数据库中的数据执行各种操作。
-
操作查询是可以一次添加、更改或删除多条记录的查询。
-
增加的好处是您可以在Access中预览查询结果,然后再运行它。
-
Microsoft Access 提供 4 种不同类型的操作查询 − 附加更新删除制作表
-
操作查询无法撤消。您应该考虑备份将使用更新查询进行更新的任何表。
Create an Append Query
您可以使用附加查询从一个或多个表中检索数据,并将该数据添加到另一个表中。让我们创建一个新表,其中我们将从 tblEmployees 表中添加数据。这将是用于演示目的的临时表。
让我们称之为 TempEmployees ,其中包含如下图所示的字段。
在 Tables 选项卡上的“显示表”对话框中,双击 tblEmployees 表,然后关闭对话框。双击您要显示的字段。
让我们先运行您的查询来显示数据。
现在让我们回到查询设计并选择 Append 按钮。
在“查询类型”中,选择“附加”选项按钮。这将显示以下对话框。
从下拉列表中选择表名,然后单击确定。
在查询网格中,您可以在 Append To 行中看到默认情况下所有字段都被选中,除了 Address1 。这是因为 TempEmployee 表中没有 Address1 字段。因此,我们需要从下拉列表中选择字段。
我们来看一下 Address 字段。
现在让我们运行您的查询,您将看到以下确认消息。
单击 Yes 以确认您的操作。
当您打开 TempEmployee 表时,您将看到 tblEmployees 中的所有数据都被添加到 TempEmployee 表中。
Ms Access - Create Queries
让我们了解在本节中如何创建查询。
Create an Update Query
您可以使用更新查询来更改表中的数据,并且可以使用更新查询输入条件以指定应更新哪些行。更新查询为您提供了一个机会,让您在执行更新操作之前检查更新后的数据。我们再次转到“创建”选项卡,然后单击查询设计。
在“表”选项卡上的“显示表”对话框中,双击 tblEmployees 表,然后关闭对话框。
在 Design 选项卡上的“查询类型”组中,单击更新并在其中更新值的字段上双击。让我们说我们想将 “Rex” 的 FirstName 更新为 “Max”。
在 Update 行 Design 网格中,输入更新的值,在条件行中添加想要更新的原始值,并运行查询。这将显示确认信息。
单击 Yes 并转到数据表视图,您将看到第一条记录 — FirstName 现已更新为“Max”。
Create a Delete Query
您可以使用删除查询从表格中删除数据,并且可以使用删除查询输入条件来指定应删除哪些行。删除查询为您提供了机会来检查在执行删除之前将要删除的行。让我们再次转到 Create 选项卡,然后单击 Query Design 。
在“显示表”对话框的“表格”选项卡上,双击 tblEmployees 表,然后关闭此对话框。
在 Design 选项卡的 Query Type 组中,单击 Delete 并双击 EmployeeID 。
在设计网格的条件行中,输入 11。在这里,我们想要删除 EmployeeID 为 11 的员工。
现在,我们运行查询。此查询将显示确认信息。
单击 Yes 并转到数据表视图,您将看到指定的员工记录现已删除。
Ms Access - Parameter Queries
关于查询的最佳部分是您可以保存并一次又一次地运行同一查询,但是当您仅通过更改条件反复运行同一查询时,您可能考虑使查询接受参数。
-
如果您经常想要对特定查询的变化进行运行,请考虑使用参数查询
-
参数查询以交互方式检索信息,提示最终用户在运行查询之前提供条件。
-
您还可以指定参数应该接受的数据类型。
-
您可以为任何参数设置数据类型,但为数值、货币或日期/时间数据设置数据类型尤为重要。
-
当您指定参数应该接受的数据类型时,如果用户输入错误的数据类型(比如在需要输入货币时输入文本),则他们会看到更有帮助的错误消息。
-
如果将参数设置为接受文本数据,则任何输入都将被解释为文本,并且不会显示错误消息。
Example
现在,我们通过创建参数查询来了解一个简单的示例。让我们打开数据库,然后在“创建表”选项卡中选择“查询设计”。
双击 tblProjects 然后关闭 Show 对话框。
选择您希望作为查询结果显示的字段,如下面的屏幕截图所示。
在查询设计网格中,在 ProjectStart 列的“条件”行中键入 [Enter a project start data] 。字符串 [Enter a project start data] 是您的参数提示。方括号表示您希望查询要求输入,而文本 Enter a project start data 是显示的参数提示。
现在,我们运行您的查询,您将看到以下提示。
现在,让我们输入以下日期。
单击“确定”以确认。
结果,您将看到该项目在 2/1/2007 开始的详细信息。让我们转到设计视图并再次运行查询。
按上面屏幕截图所示输入日期,然后单击“确定”。现在,您将看到该项目在 5/1/2008 开始的详细信息。
Ms Access - Alternate Criteria
查询有很多优势。您可以保存并多次运行相同的查询,并且很多时候您想要添加备选条件。
您可以通过以下两种方式添加备选条件:
-
您可以使用 OR 运算符组合两组条件。
-
您还可以使用查询设计网格,但不是在同一行上指定条件,您需要将其分隔成多行。
Example
让我们看一个备选条件的简单示例。打开数据库,然后在“创建”选项卡中选择 Query Design 。
双击 tblEmployee 然后关闭“显示表”对话框。
双击您希望作为查询结果查看的所有字段。
您现在可以看到备用条件在 LastName 字段的不同行中指定。当您运行此查询时,您将看到姓氏为 Pollard 或 Manning 的员工。现在让我们来运行此查询。
如您所见,由于备用条件,只有两名员工被检索到。
如果您希望在多个字段中添加备用条件,那么您将必须对所有字段使用不同的行。现在,让我们添加另一个备用条件,我们可以在其中检索姓氏为 Pollard 或 Manning 或职称为 Accounting Assistant 的员工的信息。
现在让我们来运行此查询。
您现在将看到以下结果。
Ms Access - Relating Data
在本章中,我们将了解有关关联数据的基础知识。在讨论并创建不同数据之间的关系之前,让我们回顾一下我们为什么要这样做。这一切都归结于标准化。
Normalization
数据库标准化,或简称标准化,是组织关系数据库的列(属性)和表(关系)以最大程度地减少数据冗余的过程。这是将数据拆分为多个表以提高整体性能、完整性和生命周期的过程。
-
标准化是组织数据库中的数据的过程。
-
这包括根据旨在既保护数据又通过消除冗余和不一致的依赖性使数据库更灵活的规则创建表和在这些表之间建立关系。
现在让我们看看下表,其中包含数据,但问题是这些数据相当冗余,这增加了在数据输入期间出现错别字和措辞不一致的可能性。
CustID |
Name |
Address |
Cookie |
Quantity |
Price |
Total |
1 |
Ethel Smith |
12 Main St, Arlington, VA 22201 S |
Chocolate Chip |
5 |
$2.00 |
$10.00 |
2 |
Tom Wilber |
1234 Oak Dr., Pekin, IL 61555 |
Choc Chip |
3 |
$2.00 |
$6.00 |
3 |
Ethil Smithy |
12 Main St., Arlington, VA 22201 |
Chocolate Chip |
5 |
$2.00 |
$10.00 |
为了解决此问题,我们需要重新构建我们的数据并将其分解为多个表以消除一些冗余,如下面的三张表所示。
在这里,我们有一张用于客户的表,第二张用于订单,第三张用于曲奇。
这里的问题是,仅将数据拆分为多个表并不能说明一张表中的数据如何与另一张表中的数据相关。要连接多张表中的数据,我们必须向 Orders 表中添加外键。
Defining Relationships
关系通过匹配关键列中的数据来工作,通常是两张表中具有相同名称的列。在大多数情况下,该关系将一张表的主键(为每行提供唯一标识符)与另一张表中外键中的条目匹配。表之间有三种类型的关系。创建的关系类型取决于如何定义相关列。
现在,让我们深入了解三种关系类型−
One-to-Many Relationships
一对多的关系是最常见的关系类型。在这种关系类型中,表 A 中的一行可以在表 B 中有许多匹配的行,但表 B 中的一行只能在表 A 中有一行匹配的行。
例如,“客户”表和“订单”表具有一个一对多的关系:每个客户可以下许多订单,但每个订单只能来自一个客户。
Ms Access - Create Relationships
在本章中,我们将了解创建相关表之间关系的必要性。良好的数据库设计目标之一是消除数据冗余。
-
为了实现该目标,您可以将您的数据分成许多基于主题的表,以便每个事实只出现一次。
-
为了做到这一点,所有相互关联的通用字段都放在一个表中。
-
为了正确执行此步骤,您必须先了解表之间的关系,然后在 Access 数据库中指定这些关系。
Why Create Table Relationships?
当您需要在数据库对象中使用表时,MS Access 使用表关系连接表。在创建其他数据库对象(例如窗体、查询、宏和报表)之前,您应该创建表关系的原因有多个。
-
要使用来自多个表中的记录,您通常必须创建连接表的查询。
-
查询通过将第一个表中的主键字段中的值与第二个表中的外键字段进行匹配来工作。
-
当您设计窗体或报表时,MS Access 会使用它从您已定义的表关系中收集的信息来向您提供明智的选择,并使用适当的默认值预填充属性设置。
-
当您设计数据库时,您会将信息分成多个表,每个表都有一个主键,然后向引用这些主键的表中添加外键。
-
这些外键 key-primary key pairings 构成了表关系和多表查询的基础。
现在,让我们使用表设计在您的数据库中添加另一个表,并将其命名为 tblHRData ,如下面的屏幕截图所示。
单击 Save 图标,如上面的屏幕截图所示。
输入 tblHRData 作为表名,然后单击 Ok 。
tblHRData 现在已创建并包含数据。
Ms Access - One-To-One Relationship
现在,让我们了解 MS Access 中的一对一关系。此关系用于将一个表中的一条记录与另一个表中的一条且仅一条记录关联起来。
现在,让我们转到 Database Tools 选项卡。
单击 Relationships 选项。
选择 tblEmployees 和 tblHRData ,然后单击“添加”按钮,将它们添加到我们的视图中,然后关闭 Show Table 对话框。
若要在这两个表之间创建关系,请使用鼠标,单击并按住 tblEmployees 中的 EmployeeID 字段,在将鼠标悬停在 tblHRData 中的 EmployeeID 上时,将该字段拖放到我们想要关联的字段上。当你释放鼠标按钮,Access 就会打开以下窗口 −
上面的窗口将 tblEmployees 的 EmployeeID 与 tblHRData 的 EmployeeID 关联起来。现在让我们单击 Create 按钮,现在这两个表已经相关。
现在关系会自动保存,无需单击“保存”按钮。既然我们已经创建了最基本的关系,现在让我们转到表侧以了解此关系发生了什么。
让我们打开 tblEmployees 表。
此处,在每条记录的左侧,默认情况下你将看到一个小的加号。当您创建关系时,Access 会自动向该表添加一个子数据表。
让我们单击加号按钮,您将看到与此记录相关的信息位于 tblHRData 表上。
单击 Save 图标并打开 tblHRData ,您将看到我们输入的数据已经在此处。
Ms Access - One-To-Many Relationship
您的大多数关系很可能都是一对多的关系,其中一个表中的一个记录有可能与另一个表中的许多记录相关联。
创建多对一关系的过程与创建一对一关系的过程完全相同。
我们首先通过单击 Clear Layout 中的 Design tab 选项来清除布局。
我们首先将添加另一个表 tblTasks ,如下面的屏幕截图所示。
单击 Save 图标,输入 tblTasks 作为表名,然后转到 Relationship 视图。
单击 Show Table 选项。
添加 tblProjects 和 tblTasks 并关闭 Show Table 对话框。
我们可以再次运行相同的过程以关联这些表。单击并按住 tblProjects 中的 ProjectID,然后将其一直拖到 tblTasks 中的 ProjectID。此外,当您松开鼠标时,将弹出一个关系窗口。
单击创建按钮。我们现在已经创建了一个非常简单的关系。
Ms Access - Many-To-Many Relationship
在本章中,让我们了解多对多关系。要表示多对多关系,您必须创建一个第三张表(通常称为交集表),该表将多对多关系分解为两个一对多关系。为此,我们还需要添加一个交集表。让我们首先添加另一张表 tblAuthers 。
现在让我们创建一个 many-to-many relationship 。我们有多个作者在从事多个项目,反之亦然。如您所知,我们在 tblProjects 中有一个 Author 字段,因此我们为其创建了一个表。我们不再需要此字段。
选择 Author 字段并按删除按钮,您将看到以下消息。
单击 Yes 。现在我们必须创建一个交集表。此交集表包含两个外键,如下面的屏幕截图所示。
这些外键字段将是连接在一起的两个表的主键,即 tblAuthers 和 tblProjects 。
要在 Access 中创建复合键,请选择这两个字段,然后在 table tools design 选项卡中,您可以直接单击该主键,这将标记这两个字段,而不仅仅是一个字段。
这两个字段的组合是 tables’ unique identifier 。现在让我们将此表另存为 tblAuthorJunction 。
将多对多关系结合在一起的最后一步是返回到该 relationships view ,然后通过单击 Show Table 来创建这些关系。
选择上面突出显示的三个表,然后单击添加按钮,然后关闭此对话框。
单击并拖动 tblAuthors 中的 AuthorID 字段,然后将其放在 tblAuthorJunction 表 AuthorID 上。
您正在创建的关系是 Access 会将其视为一对多关系的关系。我们还将强制参照完整性。让我们现在打开 Cascade Update ,然后单击 Create 按钮,如上面的屏幕截图所示。
现在让我们按住 ProjectID ,然后直接从 tblAuthorJunction 将其拖放到 ProjectID 上。
我们将 Enforce Referential Integrity 和 Cascade Update Related Fields 。
以下是多对多关系。
Ms Access - Wildcards
通配符是特殊字符,可以在文本值中代表未知字符,并且非常适合于查找具有相似但不相同数据的多个项目。通配符还可以帮助根据特定模式匹配获取数据库。
Access 支持两组通配符,因为它支持两种结构化查询语言标准。
-
ANSI-89
-
ANSI-92
一般来说,在对 Access 数据库(例如 .mdb 和 .accdb 文件)运行 queries 和 find-and-replace 操作时,您使用 ANSI-89 通配符。
在对 Access 项目(连接到 Microsoft SQL Server 数据库的 Access 文件)运行查询时,您使用 ANSI-92 通配符。Access 项目使用 ANSI-92 标准,因为 SQL Server 使用该标准。
ANSI-89 Wildcard Characters
下表列出了 ANSI-89 支持的字符 -
Character |
Description |
Example |
* |
匹配任意数量的字符。您可以在字符字符串中的任何位置使用星号 (*)。 |
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 wildcard characters
下表列出了 ANSI-92 支持的字符 -
Character |
Description |
Example |
% |
匹配任意数量的字符。它可以用作字符字符串中的第一个或最后一个字符。 |
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。 |
Example
现在,让我们通过打开查询设计来了解使用这些通配符的简单示例。
添加高亮的表并关闭 Show Table 对话框。
在查询网格中添加想要作为查询结果查看的字段。
运行查询。
让我们再次转到 query design 并添加项目名称提示符。
现在运行查询,让我们假设你不知道确切的项目名称,但你知道项目名称包含单词“potion”。单击 Ok 。
上述步骤不会生成任何结果。这是因为 Access 正在 project name field 中寻找完全匹配。它正在寻找名称中包含单词 potion 的项目。
如果你想要让用户输入通配符来替换未知字符,那么你需要调整条件并包括运算符 like 。
运行查询时,用户可以使用通配符替换任意数量的字符。
让我们假设你知道单词 potion 出现在标题中的某处,但你无法确定具体位置。
你可以在 potion 前添加一个 * 来替换任意数量的字符,然后在后面再添加一个 。单击 *Ok 。
用户了解他们可以输入哪些通配符总是有益的。但有些用户可能不知道他们可以和不可以输入哪些通配符。在这种情况下,你可以自己输入通配符。
在这种情况下,我们可以在 Like 运算符和我们的参数提示符之间添加这些通配符,现在我们必须用一种非常明确的方式来编写它。在带引号的 like 词后,输入我们正在使用的通配符。在这种情况下,我们使用了“ ” to replace any number of characters. We will now add this to the parameter. To do so, we need ampersand *(&) 符号和一个空格。现在,我们将重复此操作,并添加另一个和号 (&),因为我们正在将该通配符连接到用户为该项目名称输入的任何条件,然后在引号中输入“*”。
我们现在重新运行查询。在提示中输入单词 potion ,不使用通配符。
该查询现在将在此处输入内容的任一侧跟踪这些通配符。我们需要直接输入药剂并按 Enter。
我们现在得到了我们想要的结果,无论用户输入什么,结果都将相同。
让我们假设我们要查找标题中包含单词“the”的每个项目。然后,您只需要输入该单词和 Enter 或单击 Ok 。
使用此查询,可以更容易地搜索名称中包含单词“the”的项目。第 2 级结果可能还包含单词“the”是其中一部分的单词“mother”的项目名称。
Ms Access - Calculated Expression
在 MS Access 中,表达式类似于 Excel 中的公式。它包含许多元素,可以单独或组合使用以产生结果。表达式可以包括运算符、常量、函数和标识符。
-
表达式可用于执行各种任务,从获取控件的值或向查询提供条件,到创建计算控件和域,或定义报表的分组级别。
-
在本章中,我们将重点关注创建一种非常特定的表达式,称为计算表达式。我们将创建几个计算域,它们将计算和显示数据库本身中没有存储的任何数据,而是从存储的单独域中计算得出的。
我们现在有一个包含更多要计算数据的新 Access 数据库。
Example
让我们尝试一个示例来理解这一点。我们将从各种表—— tblCustomers, tblOrders, tblOrdersDetails 和 tblBooks 中检索一些信息并查看各种域。
我们现在运行查询,您将看到以下结果。
我们想要一个非常简单的子计计算,该计算将采用订购的书籍数量并乘以该书籍的零售价。最好在每个表达式或任何表达式开头为要调用的字段指定一个名称。我们称之为 subtotal 。
完整表达式 (Subtotal: [tblOrdersDetails]![QTY] [tblBooks]![RetailPrice])* 包括表名,首先是 tblOrdersDetails 放在方括号内,因为那里是我们数量域所在的地方。现在一个感叹号告诉 Access 在该表中查找 QTY 域,并将其乘以 tblBooks 中的零售价域。
让我们尝试运行您的查询,您将在末尾看到子计字段。
假设我们要计算我们的销售税。在查询网格中,我们会以与之前完全相同的方式操作,这次我们将把该域简单地称为 Tax,然后将 Subtotal 乘以百分之九的税率。
让我们再次运行您的查询,您将在末尾看到新的 Tax field 。
Ms Access - Indexing
索引是一种数据结构,一种特殊的数据结构,旨在提高数据检索速度。如果您经常按特定字段搜索表或按该字段对记录进行排序,则可以通过为该字段创建索引来加快这些操作。Microsoft Access 在表中使用索引的方式与您在书中使用索引查找数据的方式相同。
-
在某些情况下,例如对于主键,Access 会自动为您创建索引。
-
在其他情况下,您可能希望自己创建索引。
-
索引会根据您选择用于建立索引的字段或字段来存储记录的位置。
-
在 Access 从索引中获取位置后,其可通过直接移动到正确的位置来检索数据。
-
通过这种方式,使用索引可能比扫描所有记录以查找数据快得多。
-
索引可以在查询中加快搜索速度,但它们也会在添加或更新记录时降低性能。
现在让我们来了解 Microsoft Access 默认创建的索引以及我们如何自己创建索引,并学习删除任何不必要的索引。在 Access 数据库中打开我们创建的 tblEmployees 表。
-
我们在该数据库中实际没有使用索引,但这并不意味着没有索引。
-
事实上,在 Access 中设置为主键的任何字段都会自动建立索引。
-
Access 会根据字段的名称创建其他二级索引。
现在,让我们转到“文件”菜单,然后选择“选项”。
您将看到“Access 选项”窗口。
转到 Object Designers ,您将看到一个标题为“导入/创建自动编制索引”的部分,并在文本框中看到 ID;key;code;num。默认情况下,Access 会自动为以这些名称开头或结尾的字段添加二级索引,这适用于您导入的字段以及您手动创建的字段。
如果要使任何字段建立索引,可以转到 Field 选项卡。
选择您希望建立索引的任何字段,然后选中“字段验证”部分中的“已建立索引”复选框。您还有替代选项可以创建或删除索引。您可以返回 Design View 。
您可以通过选择任何字段来调整索引。您还可以在下面的字段属性区域中查看它们的建立索引方式。具有 No 下拉菜单项旁边选定的任何字段表示该指定字段没有索引。您可以通过单击下拉菜单并选择其他两个选项( Yes (Duplicate OK) 和 Yes (No duplicates) )来更改该选项。
最后一个选项 Yes (No Duplicates) 表示 Access 将自动禁止该字段中的重复值。现在让我们为我们的姓氏字段创建索引。
让我们选择 LastName 建立索引并说 Yes (Duplicates OK) 。当我们保存时,Access 将创建该索引。您可以查看和调整表索引的另一个区域是 Show/Hide 组中的“表设计”区域。
如果您单击此“索引”按钮,则会弹出一个特殊视图,显示针对该表创建的所有索引。
我们现在有两个 tblEmployees 索引,一个基于主键字段自动创建,另一个是我们刚为 LastName 字段创建的。这些是在 Microsoft Access 表中处理索引的不同方式。
Ms Access - Grouping Data
在本章中,我们将介绍如何在 Access 中按一组记录进行计算。我们已经创建了一个按行或按记录进行计算的字段来创建行总计或小计字段,但是如果我们希望按一组记录而不是按各个记录进行计算该怎么办?我们可以通过创建称为 Aggregate Query 的内容来执行此操作。
Aggregate Query
聚合查询也称为总计或汇总查询是一种求和、求总量或分组查询。它可以是总金额或总量,也可以是一组记录或记录子集。聚合查询可以执行多种操作。这是一个简单的表格,列出了根据一组记录求总和的一些方法。
S.No |
Aggregate Functions & Description |
1. |
Sum Adds the field values |
2. |
Avg 字段值的平均值 |
3. |
Min Lowest (minimum) field value |
4. |
Max Highest (maximum) field value |
5. |
Count 值的计数(记录数) |
6. |
StDev 包括日期/时间字段的字段值的标准差 |
7. |
Var 包括日期/时间字段的字段值方差 |
让我们打开数据库,转到查询设计并包含以下表格 -
关闭此对话框,以下两个字段将显示在查询网格中,如下面的屏幕截图所示。
这是一个简单的查询,我们只显示了两个字段—— book title 和 quantity ,当我们运行它时,我们将在我们的数据库中看到每一个单个订单。
现在让我们运行这个查询,您将看到以下结果。
这就是书名重复的原因。此处为每本图书分别下了不同的订单,并且它们订购的数量不同。让我们假设我们只想查看只列出一次的书名的摘要。然后列在其旁边的数量之和。
现在让我们转到设计视图,在设计选项卡中,您会看到一个西格玛符号。这是您的总计按钮。
单击西格玛符号,它将在表格行中的字段下方打开另一行,您可以在此指定如何对该查询进行分组。
现在我们按书名进行分组,并对数量字段进行求和。
如果我们单击 group by area 并进一步单击下拉菜单,所有的选项都将被列出来。在本例中,我们将选择选项 Sum ,然后运行您的查询。
现在您可以看到每本书,以及所有单笔订单,这些订单显示在书名旁边。
Concatenation in Access
我们学习了规范化的过程,将信息存储在不同的字段中。有时您希望一起查看或查看数据,例如将名字和姓氏字段合并为单个字段。您可以通过创建一个连接一个或多个字符串的计算字段来一起显示这些信息。您还可以添加您想要的其他字符,如逗号或句点。
-
要联接 Access 中,可以使用两种不同的运算符 ampersand (&) 和 plus (+) 符号。
-
“和”符号会将两个字符串合并为一个字符串,而加号会将两个字符串合并并传播 NULL 值,例如,如果一个值为 NULL,整个表达式计算结果为 NULL。
Example
让我们举一个简单的例子来理解使用查询设计创建新查询的过程。这将是一个非常简单的查询,它将从客户表中提取信息。
现在,让我们添加 tblCustomers 关闭表的表格对话框。我们尝试将一些简单的命名字段与一些连接进行连接。
现在,让我们添加名和姓字段并运行查询。
如你所见,名和姓被分成了两个不同的字段。
我们需要一起显示这些信息。
回到 Design View ,并在第三个字段创建一个名为 full name 的新字段。现在,添加全名并输入将这两个字段连接在一起的表达式。
让我们运行查询,然后你将看到一个新的计算字段。
它可以连接来自这两个字段的信息,但它并非完全按照我们希望的方式显示。它将所有文本运行在一起,因为它正在按照我们要求的方式执行。现在,我们将不得不要求 Access 在这两个字段的信息之间添加空格。
现在让我们回到设计视图并向该表达式添加另一个部分。
在引号内添加一个空格和另一个和号。这使得 Access 取自名字段的信息;用空格将它添加,然后在最后添加姓字段的信息。现在,再次运行查询,然后你将看到以下结果。
Ms Access - Summarizing Data
如果你只想要一个特定的数字,汇总查询非常棒,但是,如果你想要汇总信息,比如电子表格式汇总,你可能想要考虑尝试交叉表查询。当您想要重组汇总数据,以便更轻松地阅读和理解时,请考虑使用 Crosstab Query 。
-
交叉表查询是一种 Select Query 。当您运行交叉表查询时,结果将显示在数据表中。该数据表与其他类型的数据表具有不同的结构。
-
与显示相同数据的一个简单选择查询相比,交叉表查询的结构可以使其更容易阅读,如下面的屏幕截图所示。
迄今为止,创建 Access 交叉查询的最简单方法是直接使用 Access 自带的向导来创建交叉查询。现在我们转到“创建”选项卡,进入“查询”组,然后单击“查询向导”。
在上面的对话框中,可以看到各种特殊查询。你可以创建一个简单的查询向导,就像我们迄今为止一直从设计视图执行的操作一样。第二个查询向导是我们想要的——以紧凑型电子表格格式显示数据的交叉查询。现在,选择交叉查询,然后单击“确定”。
向导中的第一个屏幕会提示你的交叉查询结果中包含哪些字段的表或查询。单击“ Queries ”单选按钮,然后选择“ qryOrdersInformation ”——这是我们之前创建的包含小计、销售税等的表格。单击“ Next ”。
现在我们将查看该查询中可用的字段。系统会提示你输入要作为行标题的字段值。假设我们希望按我们所有不同的书名生成一个简单列表。现在,选择书名字段,然后将其发送到所选字段区域,并单击“ Next ”。
在上面的对话框中,问题是你希望将什么用作列标题,这实际上取决于你的评估内容。假设你要查看我们的“ sales by date ”,选择“ TransactionDate ”,然后单击“ Next ”。
由于我们选择了日期时间列,因此上面对话框中的问题是一个专门提出的问题,基于我们之前选择字段。它询问我们是否希望按特定的间隔对我们的日期时间列信息进行分组。选择年份选项,然后单击“ Next ”。
上面对话框屏幕中的下一个问题询问你希望为行交集中的每一列计算什么数字。在这种情况下,我们可以按所售书籍的数量进行计算,选择“ quantity (QTY) ”,从函数中求和,然后单击“ Next ”。
向导的最后一个屏幕将询问“ what do you want to name your query ”,然后单击“ Finish ”以“ View that query ”。
我们现在获得按书分类的信息以及总销售额等信息,例如每一销售额何时发生。
Ms Access - Joins
数据库是一个数据表集合,这些数据表允许相互进行逻辑关系。你可以使用关系通过表中公共的字段来连接表。一个表可以是任意数量的关系的一部分,但每个关系始终恰好有两个表。在查询中,关系由 Join 表示。
What is Join
联接指定如何在一个数据库中的两个或多个表中组合记录。从概念上来说,联接与表关系非常相似。实际上,联接对于查询就像关系对于表一样。
以下是本章将讨论的两种基本类型的联接 −
-
The inner join
-
The outer join
两者都可以轻松地从 queries design view 中创建。
Left Outer Join & Right Outer Join
让我们理解 Left Outer Join 和 Right Outer Join -
-
你可以选择显示所有行的表格。
-
你可以创建左外连接,它将包含第一个表格的所有行。
-
你可以创建右外连接,它将包含第二个表格的所有行。
让我们转到 Create 选项卡,从 Design View 创建一个查询。选择 tblProjects 和 tblTasks ,关闭“显示表格”对话框,如图所示。
添加 tblProjects 中的 ProjectName 字段,以及 tblTasks 表格中的 TaskTitle, StartDate 和 DueDate 。
让我们运行这个查询。
我们只显示了几个项目的记录。一些项目有很多与该项目相关联的任务,这些信息通过 ProjectID 字段关联。
-
当我们在Microsoft Access中创建这个查询时,Access是从我们创建的关系中获取这种关系。
-
默认情况下,它会在这两个表格之间创建所谓的 Inner Join between these two fields ,这就是它如何从这两个表格中关联这些信息。
-
它只向我们显示匹配项,因此,当我们运行此查询时, tblProjects 中列出了很多其他未显示为该查询记录集一部分的项目,这是因为这两个表格是如何通过内连接连接在一起的,这再次是任何查询的默认连接。
但是,如果你想改变关系,假设你想创建外连接,或者换句话说,显示 tblProjects 的所有项目,该表格中的所有记录以及 tblTasks 中的所有任务——打开连接属性;只需双击关系行即可。
Access将在连接属性对话框中显示左表格名称和右表格名称。
-
左列名和右列名,第一个单选按钮仅仅只包含两个表格的连接字段相等的行,那便是内连接,在创建关系以及在查询中创建连接时默认选择这个选项,但是你可以更改它。
-
我们还有两个其他选择;我们可以包含 tblProjects 中的所有记录,以及仅包含连接字段相等的 tblTasks 中的那些记录,此操作为左外连接。
-
我们有第三个选项,包含tblTasks中的所有记录,以及仅包含连接字段相等的tblProjects中的那些记录,此操作为右外连接。
这些是你能从“设计视图”轻松创建的不同类型的连接。我们选择第二个选项,即左外连接,然后单击 Ok 。
让我们看看其他步骤 -
当你查看关系行时,你会看到一个指向 tblTasks 的 ProjectID 的小箭头。当你运行此查询时,你将看到以下结果。
如您所见,它向我们展示了每个项目的名称,无论它是否具有关联的任务。您还将看到许多空字段。所有这些都将为空,因为在这些字段来自的 tblTasks 中没有相关信息。现在,让我们再次转到 Design View ,然后双击关系线。
在“联接属性”对话框中,选择第三个选项,即右外联接,然后单击 Ok 。
现在,看看我们的关系线。您将看到一个箭头现在指向 tblProjects 中的 ProjectID 。当您运行此查询时,您将看到以下结果。
Self-Joins
自联接是另一种类型的联接。自联接关联同一表内匹配的字段。例如,查看具有主管字段的员工表,该字段引用存储在同一表内另一个字段(员工 ID)中的同类数字。
如果我们想了解 Kaitlin Rasmussen 的主管是谁,我们将不得不获取存储在该主管字段中的号码并在完全相同的表内该员工 ID 字段中查找它,才能知道 Charity Hendricks 是主管。
此表不是关系数据库的理想结构,因为它未经过规范化。
如果我们有一种情况,即我们想创建仅列出员工姓名及其主管姓名的查询,则除非我们创建自联接,否则我们无法轻松查询它。
要查看自联接,请使用以下字段创建一张表并输入一些数据。
在这里,我们再次想创建一个包含员工名字和主管姓名的列表。让我们从 query design view 创建查询。
现在,添加 tblEmployees 表。
关闭此对话框。
现在,为我们的员工添加名字和姓氏。
我们现在需要一种方法在此表及其自身之间创建关系。为此,我们需要打开 the show table dialog box 并再次添加 tblEmployees。
我们在本查询视图中创建了相同表的另一份副本。现在,我们需要创建自联接。为此,单击 tblEmployees 表中的主管,按住鼠标按钮,将其直接拖到复制表 tblEmployees_1 中的 EmployeeID 上方。然后,从该复制表中添加名字和姓氏。
现在让我们运行您的查询,您将看到以下结果。
它显示员工的名字和他们主管的名字。这是如何在 Microsoft Access 中创建自联接的方法。
Ms Access - Duplicates Query Wizard
在本教程中,我们创建了各种选择查询,主要来自设计视图。但是在 Access 中,我们可以使用一些特殊查询向导来创建一些特定的选择查询。第一个是查找重复查询向导。查找重复查询向导将创建一个查询,该查询可在单个表或查询中找到具有重复字段值的记录。
正如我们所讨论的,关系数据库旨在避免存储重复的信息。但尽管有这样的设计,用户有时会无意输入重复的信息。
Example
在客户表中,你可以让同一客户无意被添加两次。在这种情况下,客户将具有相同的地址,但客户 ID 不同,这会给报告造成问题。在此情况下,你可以使用 duplicates query wizard to quickly locate possible duplicate entries 。
现在让我们打开包含 tblAuthers 表的 Access 数据库并在 Create 选项卡中,在查询组中,选择 query wizard 。
如果你看到以下屏幕截图,则有四种不同的向导可供选择。选择 find duplicates query wizard 并单击 Ok 。
查找重复查询向导的第一个屏幕会询问要搜索可能的重复项的哪个表或哪个查询。假设我们想要检查作者表以确保同一作者未无意输入两次。因此,选择 tblAuthors 并单击 Next 。
-
向导中的第二个屏幕将询问哪些字段可能包含重复信息。
-
通常,你不会使用主键字段,因为当你在 Access 中将字段指定为主键时,Access 将不允许输入重复项。
-
我们将查看任何其他字段或字段的组合。
我们可以按姓或名和姓搜索,也可以按他们的街道地址搜索,也可以更具体地按他们的电话号码或生日搜索。
我们现在按名、姓和生日搜索,然后点击 Next 。
该向导的以下屏幕将要求输入我们希望在查询中显示的字段。为此,点击双箭头,所有字段都将移至其他查询字段区域,并将会添加到我们的查询结果中。
我们现在点击 Next 。它将带我们进入该查询向导的最后一个屏幕。
在以下屏幕中,输入你希望如何命名查询。
默认情况下,它将为其命名 find duplicates 对 whatever the name of the object that you’re querying 。在这种情况下, tblAuthors ,但你也可以为其提供任意其他名称,然后点击 finish 。
此处,Access 找到了一个可能的重复项,作者 Jose Caline,他有相同的生日、地址、电话号码但有不同的 AuthorID。
这一定是无意间重复输入了两次。我们现在已经将所有字段添加到查询中,我们能直接删除记录。我们还必须确保在其他表中没有与此相关的记录。
选择任何记录,然后在以下对话框中选择“删除”。
Access 会提示你“您即将删除一条记录。”如果你要继续,请点击“是”。
如果你想查看该向导创建该查询的方式,请进入设计视图,查看该向导向该查询添加了哪些内容。
正如你在以上屏幕截图中所看到的,我们的字段及一些特定的条件在名字段的下方。
这是该向导搜索重复信息的方式。这是迄今为止查找重复项最简单的方法。
Ms Access - Unmatched Query Wizard
在 Access 中,还有另一个非常有用的向导,即 Find Unmatched Query Wizard 。查找不匹配查询向导创建一个查询,该查询查找表中没有另一个表中相关记录的记录或行。
正如我们先前讨论的那样,数据如何在查询中连接在一起,以及大多数查询如何查找两个或更多表之间的匹配项。
-
例如,这是 Access 中的默认联接,如果您使用两个表 tblCustomers 和 tblOrders 设计一个查询,并通过 CustomerID 来联接这两个表,则此查询将仅返回匹配的结果。换句话说,就是下过订单的客户。
-
有时,我们不想看到匹配项,例如,我们可能不想看到数据库中的某个客户(尚未下过订单的客户)。
-
这正是查找不匹配项查询所做的。
此类查询还有许多其他可能的用途。
在我们的数据库中,我们可以使用它来查看哪些作者尚未编写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。现在让我们打开包含 Customers 和 Orders 表的数据库;转到“创建”选项卡并单击查询向导按钮。
选择 Find Unmatched Query Wizard 并单击 Ok 。
在此场景中,我们将找出尚未下订单的客户。在第一个屏幕中,它询问包含查询结果记录的表或查询。
我们现在想要 tblCustomers 中的客户列表。选择该选项并单击 Next 。
在以下屏幕中,您需要指定 which table or query contains the related records 。换句话说,您使用哪个表与第一个表进行比较。为此,我们需要找到尚未下订单的那些项目。我们需要选择包含所有订单信息的表 tblOrders 。现在,单击 Next 。
在以下屏幕中,您需要指定两张表中包含哪些信息。
-
这通常是一些主键、外键、字段或关系。
-
如果您在数据库中已有现成的关系,Access 会为您自动选择和匹配这些字段。
-
但是,如果您有其他可以一起联接的字段,并包含类似信息,则也可以在此处进行选择。
此处,我们在“tblCustomers”字段和“tblOrders”字段中默认选择了 CustID。现在,单击 Next 。
在以下屏幕中,您可以选择想要在查询结果中显示的字段。
现在让我们选择所有可用字段并单击双箭头。这将把所有 available fields 移动到 selected fields 区域。现在,单击 Next 。
最后一个屏幕将允许您为查询选择一个名称并单击 Finish 。
这里我们列出了尚未向我们下订单的某个客户。
您还可以了解如何创建该查询。为此,您需要返回到 Design View 。
此向导在 tblCustomer 和 tblOrders 之间创建了 Outer Join ,并且 Is Null 条件已添加到 tblORders 中的 CustID。这样做是为了排除某些记录。在本例中,这些记录是已下达订单或在 tblOrders 中有相关信息的客户。
Ms Access - Create Form
Access 中的表单就像商店中的展示柜,可以更容易地查看或获取你想要的产品。由于表单是你可以或其他用户可用于添加、编辑或显示存储在你 Access 桌面数据库中的数据的对象,因此你的表单设计是重要因素。你可以使用 Microsoft Access 中的表单进行许多方面的设计。你可以创建两种基本类型的表单 -
-
Bound forms
-
Unbound forms
Bound Forms
我们现在了解一下什么是 Bound Forms -
-
绑定表单连接到一些基础数据源,例如表、查询或 SQL 语句。
-
当人们想到表单的目的是什么时,他们通常都会想到绑定表单。
-
表单应填写或用于输入或编辑数据库中的数据。
-
绑定表单的示例通常是用户用来在数据库中输入、查看或编辑数据。
Unbound Forms
让我们查看未绑定表单 -
-
这些表单不连接到基础记录或数据源。
-
未绑定表单可以是对话框、交换板或导航表单。
-
换句话说,未绑定表单通常用于导航或与整个数据库交互,而不是数据本身。
Creating Forms
有几种方法可以在 Access 中创建表单。为此,打开您的数据库并转到 Create tab 。在右上角的“表单”组中,您会看到“表单向导”按钮。
单击该按钮以启动表单向导。
在此向导中的第一个屏幕上,您可以选择想在表单中显示的字段,并且可以选择从多个表或查询中的字段。
我们假设我们只需要一个简单的表单,用于输入我们的员工信息。
从 Tables/Queries 下拉列表中,选择 tblEmployees 表。单击双箭头一次移动所有字段。
我们只使用此表,然后单击 Next 。
表单向导中的下一个屏幕将询问我们希望表单采用何种布局。我们有 columnar, tabular, datasheet and justified 布局。我们在此处选择“列式”布局,然后单击 Next 。
在以下屏幕中,我们需要为表单指定一个标题。我们将其命名为 frmEmployees 。
为表单指定标题后,您可以打开表单以查看表单的外观,或可以开始向表中输入信息。或者,您可以选择修改表单设计的选项。我们选择第一个选项 open the form to view or enter information ,然后单击 Finish 。
现在,请看以下屏幕截图。这就是您表单的外观。这是一个单项表单,这意味着一次显示一条记录,在下方您可以看到导航按钮,这告诉我们这是正在显示 9 条记录中的第 1 条。如果您单击该按钮,它将移动到下一条记录。
如果您想跳转到该表单或该表中的最后一条记录,则可以使用位于该右箭头旁边的按钮,一个箭头后边带有一条线,那是最后一条记录按钮。如果您想添加新的员工信息,则转到这些记录的末尾,然后在 9 条记录后,您会看到一个空白表单,您可以在其中开始输入新员工的信息。
这是一个使用表单向导创建表单的示例。现在,让我们关闭此表单并转到“创建”选项卡。现在,我们将使用向导创建稍复杂的表单。单击“表单向导”,这次,我们将从几个不同的表中选择字段。
在此表单向导中,让我们选择 tblProjects 用于 Tables/Queries ,并选择一些可用的字段,例如 ProjectID、ProjectName、ProjectStart 和 ProjectEnd。这些字段现在将移动到所选字段。
现在,选择 tblTasks 以使用表/查询,并发送 TaskID、ProjectID、TaskTitle、StartDate、DueDate 和 PercentComplete。单击 Next 。
在这里,我们希望从几个不同的对象中检索数据。我们还可以选择如何安排表单的选项。如果我们想要创建一个扁平的表单,则可以选择按 tblTasks 进行排列,这将创建那个单一的表单,所有字段都以扁平视图进行布局,如上所示。
但是,如果我们想要基于一对多的关系创建一个分层表单,则可以选择按tblProjects排列数据。
在上面的窗口中,我们有一个选项,可以为 tblTasks 包含 subform ,或者我们可以将其制作成一个链接的表单。此链接表单是 tblProjects 将具有一个按钮的位置,该按钮将启动过滤到我们在该基础项目表单中选择的项目的第二个表单。现在,让我们选择 Form with subform(s) ,然后单击 Next 。
在以下屏幕中,您可以为子表单选择一个布局。默认情况下选择数据表视图。数据表视图类似于表视图。现在,单击 Next 。
在以下屏幕中,您需要为您的表单提供一个名称。输入您想要的名称并单击 Finish 。
Access 将为您提供表单的外观预览。在顶部,您可以在主表单上进行控制,它来自我们的 Projects 表。向下滚动,您将看到一个子表单。它就像一个表单中的表单。
Ms Access - Modify Form
我们已经学习了几种创建简单数据输入表单的方法。虽然表单简化了数据输入进程;但这些可能无法满足您想要的其他目的。它们可能不会像您预期的那样引人注目或用户友好。
-
在创建表单后,您可能会想要做的第一件事是重新调整控件的大小或移动控件。
-
您可能还需要添加控件或删除控件。
现在,我们将讨论如何轻松地修改表单。
Controls
它仅仅描述了表单或报表中用于显示数据、执行操作或作装饰的物品的通用术语,比如线条。换句话说,控件就是任何放置在表单或报表上的内容。
以下可以看作是控件:
-
Objects such as labels.
-
用来添加、编辑甚至计算表达式的未绑定或绑定的文本框。
-
执行操作的命令按钮,如 Save, Open 电子邮件或 Print ,这些按钮也被称为控件。
-
它仅仅是用来表示表单或报表中任何物品的通用术语。
我们现在将了解有关使表单美观并了解如何编辑和修改表单的不同方面。让我们现在打开从 tnlEmployees 列出所有员工的多项表单。
正如你所看到的员工列表,但并不像非常用户友好的列表。我们的控件超出了大小。它们太大,间距分布开,没有提供非常有用的列表视图。
如需编辑此表单上控件的外观,你可以使用两个表单视图。在主页选项卡中,单击 View 下拉菜单。
你有布局视图或设计视图,并且这两个视图都用于编辑你的表单。默认情况下打开表单视图;这是你用来与基础数据源交互或编辑的视图。
若要编辑表单本身的外观,我们需要首先转到布局视图。
当你切换到布局视图时,你会看到一系列上下文选项卡出现。
在 Access 的顶部,你会看到一个标记为 Form Layout Tools 的区域,其中有三个选项卡——设计选项卡、排列选项卡和格式选项卡,并且每个选项卡都有不同的选项,用于设置表单外观的格式。
当你使用鼠标并单击任意一个控件时,你会注意到 Access 会高亮显示表单的指定区域,并且该区域内的所有控件都被浅橙色阴影覆盖,而你选择的实际控件的阴影将比前一个更深或在单击处周围有一个更深的橙色边框。
在这里,你可以通过单击并拖动鼠标来按你的需要调整控件的大小,以调整该控件的高度、宽度或两者。
在这个特定表单上,当你调整任何一个控件的大小时,还会随之更改表单上其他控件的大小,这是因为这些控件是如何分组的。让我们现在使用鼠标的单击并拖动功能,按你的需要调整所有字段。
这是从此布局视图编辑表单中控件的高度和宽度的一种快捷方法。
Themes
在 Access 中,可以通过使用内置主题、颜色和字体样式、自定义填充颜色和为交替行着色来设置表单的格式。让我们打开 frmEmployees 。
Access 创建的表单是朴素简洁的。它们在顶部有一个蓝色栏,背景是白色的。
如果你想了解如何美化这些表单,你可以在设计视图或布局视图中探索设计选项卡中主题区域中的一些选项。
如果你点击“主题”下拉画廊,将有许多预设好的主题可供你尝试。将鼠标悬停在任意主题上,你会看到随之改变的预览,如颜色、字体大小和实际使用的字体。要应用特定的样式,只需点击鼠标即可看到它的外观。
如果你喜欢某个主题但想要更改颜色,你可以通过返回“设计”选项卡上的“主题”组并选择你喜欢的颜色来调整颜色。还可以创建自定义颜色以匹配你的公司颜色。
同样,你还可以从一系列字体样式中进行选择。你可以从 Office 套件中预先创建的众多样式中选择一个,也可以自定义那些字体,选择特定的标题字体、正文字体,甚至创建自定义名称并保存该字体组。
让我们返回到 frmEmployees 。在此表单中,你将看到每隔一行都会用浅灰色阴影填充。
此格式选项称为 Alternate Row Color ,如果你想要在多表单中调整该选项,请转到 Design View 。
选择该详细信息部分,然后转到“格式”选项卡,在“背景”组中,你应该会看到 Alternate Row Color 的选项。你可以更改交替行的颜色。要查看这有什么效果,只需转到“表单视图”或“布局视图”。
如果你完全不想要阴影,可以选择 No Color 作为你的 Alternate Row Color ,它类似于早期版本 Access 中的传统外观。
Ms Access - Navigation Form
Access 包含一个导航控件,可以轻松地在数据库中的各种表单和报表之间切换。导航表单只是一种包含导航控件的表单。导航表单是任何桌面数据库的极佳补充。
-
Microsoft Access 提供了用于控制用户如何导航数据库的几个功能。
-
我们已经使用导航窗格导航我们创建的所有 Access 对象,如表单、查询、表等。
-
如果你想要创建自己的导航结构,并让用户更容易找到他们真正需要的特定对象,你可以构建导航表单,该表单使用导航控件,以便用户可以直接从主导航表单中使用或查看表单和报表。
Example
现在我们来看一个简单的示例,其中我们将创建一个导航表单。为此,请转到“创建”选项卡;在“表单”组中,你将看到此导航下拉菜单。
在此菜单中,你将看到用于排列你想要嵌入到此导航表单中表单和报表的不同布局。
-
一种是水平选项卡,一种是垂直选项卡——其中所有选项卡都左对齐,一种是垂直选项卡布局,其中所有选项卡都右对齐。
-
有一个水平选项卡布局包含两级,因此如果你有许多想要显示在顶部对象,你可以使用此布局。
-
你可以同时拥有水平选项卡和垂直选项卡,它们可以左对齐或右对齐。
在以下示例中,我们将使用水平选项卡和垂直选项卡。要创建该布局或该导航表单,只需单击它,Access 就会创建一个不限表单,其中包含一个导航控件。
向此导航表单添加对象的最简单方法是通过你的布局视图,只需将对象拖放至你希望它们显示的位置即可。
现在让我们从导航窗格中拖动 frmProjects 表单并将其放到顶部的 [添加新项] 上。
类似地,从导航窗格拖动 frmAuthers 表单,并将其放置在“新建”按钮的左侧。
让我们现在添加其他与项目相关的表单,如 frmSubTasks、frmCurrentProjects 等。
现在让我们在顶部添加其他的标签。我们先添加 frmEmployees 表单。
现在,您将看到您的其他项目按钮已经从左侧消失了,这是因为它们附加到了项目标签。您在左侧看到的所有按钮都链接到您在顶部所选择的任何内容。现在,在选择“员工”标签后,让我们将与员工相关的信息拖动到左侧。
现在一个标签上是我们项目信息,另一个标签上是员工信息。类似地,您可以根据要求添加更多的标签。正如您所看到的那样,这些标签的名称不恰当,所以让我们开始重命名其中一些标签,以便使其更加用户友好。最简单的方法是双击左侧的任意标签或任意按钮,然后按如以下屏幕截图中所示重命名。
Ms Access - Combo BOx
在任意表单中输入数据时,从列表中选择一个值可能会比记住要输入的值更快、更方便。选项列表还可以帮助确保输入字段中的值是合适的。列表控件可以连接到现有数据,或者可以在创建控件时显示您输入的固定值。在本章中,我们将介绍如何在 Access 中创建组合框。
Combo Box
组合框是一个对象或控件,其中包含一个用户可以选择值的下拉列表。
-
组合框控件提供了一种更简洁的方式来呈现选项列表。
-
列表在您单击下拉箭头之前是隐藏的。
-
组合框还允许您输入列表中没有的值。
-
通过这种方式,组合框控件结合了文本框和列表框的特性。
Example
现在让我们举一个创建组合框的简单示例。我们已经创建了一个员工表单,如下面的屏幕截图所示。
我们现在想要为电话类型创建组合框,因为我们知道电话类型应该是 Home, Cell 或 Work 。此信息应该在下拉列表中可用,并且用户无需键入此信息。
现在让我们转到此表单的 Design View 。选择 Phone Type 字段并按 delete 键。
删除电话类型字段后,转到“设计”标签。
现在,让我们从控件菜单中选择 Use Control Wizards 选项,然后从菜单中选择组合框控件,如下面的屏幕截图所示。
现在,在您想要的位置绘制组合框,当您松开鼠标时,您将看到组合框向导对话框。
在这里,您有不同的数据选项;让我们选择第 2 个选项,在此选项中,我们将添加值并单击下一步。
输入您想要在下拉列表中显示的值,然后单击 Next 。
再次单击 Next 。
在组合框中输入 label ,然后单击 Finish 。
可以看出,已创建组合框,但其未对齐至其他字段。我们先全选所有字段,然后转至“排列”选项卡。
左侧将看到 Stacked 选项。单击该按钮。
现在可以看到,这些字段已对齐。
为了使每个字段的大小一致,我们可以使用不同的选项,让我们单击“大小/空格”按钮。
在下拉列表中,单击 To Shortest 。
现在转至 Form 视图。
用户现在可以选择电话类型的任何选项。
Ms Access - SQL View
在本教程中,我们将介绍 SQL 视图。无论何时在查询设计器中创建一个查询,Access 都会自动为你创建 SQL 查询。这实际上是从表中检索数据。如需了解在查询设计器中创建查询时你的查询如何以 sql 创建,让我们打开你的数据库。
从 Create 选项卡中选择 Query Design ,并添加 tblEmployees 表。
选择要作为查询结果的字段,然后运行查询。
现在可以将所有员工信息作为查询结果查看。已在查询网格中选择特定字段;与此同时,MS Access 还使用从查询网格中获得的结果创建了 SQL 查询。
若要查看 SQL,请转至“开始”选项卡。从“视图”菜单中选择 SQL View ,你将看到该查询的 SQL。
Ms Access - Formatting
Access 中的一个特别有用的格式化工具是能够应用 Conditional Formatting 以突出显示特定数据。让我们做一个条件格式的简单示例。
Example
在这个示例中,我们将在数据库中使用表单 fSubCurrentProjects 。
我们有这个数据库中所有项目的清单,我们还有一些新字段,如 On Time Status 和 Number of Late Tasks 。此表单是通过另一个查询创建的。
在此查询中,我们有一个表与查询之间的联接,查询将显示到期日期计数或有多少项目有逾期任务。我们这里还有一个计算字段,它使用 IF 函数来确定到期日期的计数是否大于零。如果项目已逾期,它将显示单词 Late ;如果特定项目没有逾期任务,它将显示 On Time 。
Example 1
在此示例中,我们将使用上面的表单来了解如何使用条件格式突出显示特定信息。我们现在将突出显示当前逾期的每个项目。若要将条件格式应用于一个字段或多个字段,我们需要切换到“布局”视图。
现在,选择 On Time Status 字段。
现在,转到“格式”选项卡。
在此“格式”选项卡上,您应看到一个名为“控件格式”的组和一个用于“条件格式”的特殊按钮。现在,我们单击“条件格式”。
现在,您将看到一个条件格式规则管理器,目前我们未对此控件应用任何规则。现在,通过单击“新建规则”按钮来创建新规则。
现在,您将看到一个“新建格式规则”对话框。我们首先将指定将要创建的规则类型,这里有两个选项。第一个选项是 check the values in the current record or to use an expression ,第二个选项是 compare this record with the other records 。
我们现在表单中只有两个值之一;“准时”或单词“逾期”,并且这些来自给定查询。现在,让我们从第一个组合框中选择“ Field Value Is ”,然后从第二个组合框中选择“ equal to ”。现在,在引号中输入单词“ Late ”。
我们现在可以设置我们的条件格式,如果单词 Late 出现在该字段中,我们希望此字段的外观如何。现在,让我们将字体颜色更改为红色,并使其 bold, italic 且 underline ,这就是我们的条件规则。现在,让我们单击 Ok ,再单击 Apply 及 Ok 。
您可以看到单词 Late 已格式化。这是一个创建非常基本的条件格式规则的示例。
Example 2
让我们以另一个示例说明。此处,我们将使项目的标题或名称 red 且 bold, italic 且 underline 。在您的表单上选择项目名称控件。
我们现在将返回我们的“格式”选项卡并单击“条件格式”,并为特定控件创建新规则,如上方屏幕截图所示。
此处,我们将不会检查已选择的当前字段的值,而是将其与此表单上的另一个字段进行比较。在第一个组合框中选择 Expression Is ,然后单击如上方屏幕截图中所示的末尾的 … 按钮。
在“表达式类别”中,您具有此表单中的每个对象。双击 CountofDueDate 。这会将对控件或字段的引用发送到我们的表达式生成器,条件为大于零。现在,单击“确定”。
现在,让我们单击“确定”,再单击“应用”并再次单击“确定”。
这是基于另一个字段中的值的字段上条件格式的示例。
Ms Access - Controls & Properties
在本章中,我们将介绍 Access 中可用的 Controls and Properties 。我们还将学习如何向表单添加控件。控件是表单或报告的组成部分,您使用这些控件可以 enter, edit, 或 display 数据。使用控件,您可以查看和处理数据库应用程序中的数据。
-
最常使用的控件是文本框,但其它控件包括命令按钮、标签、复选框以及子窗体/子报表控件。
-
您可以创建不同种类和类型的控件,但所有控件都属于两个类别之一,即绑定或未绑定。
Bound Controls
我们现在来了解一下什么叫绑定控件。
-
绑定控件是与数据库中的特定数据源(例如某个字段和一个表或一个查询)关联的控件。
-
值既可以是文本、日期、数字、复选框、图片,甚至图表。
-
您可以使用绑定控件来显示来自数据库中字段的值。
Control Types
您可以在 Access 中创建不同类型的控件。这里,我们将讨论一些常见的控件,如文本框、标签、按钮标签控件等。
Text Box
-
通常,文本框中的任何内容都将绑定,但这并非总是如此。
-
您可以使用这些控件与存储在数据库中的数据交互,但是您也可以设置未绑定的文本框。
-
计算控件将基于您编写的表达式执行某种计算,并且该数据不会存储在您数据库的任何地方。
-
它会即时计算,并且仅存在于该窗体中。
Tab Controls
-
选项卡控件使您可以查看表单中的控件或其他控件的选项卡视图。
-
向表单添加选项卡可以使其更容易使用和更井然有序,尤其是在表单包含大量控件的情况下。
-
通过将相关的控件放在选项卡控件的不同页面中,您可以减少混乱并简化数据处理。
Some Other Controls
现在让我们来看看其他一些控件−
-
您还可以创建 Web 浏览器控件和导航控件、组、分页符、组合框。
-
您可以创建图表、线条、切换按钮、列表框、矩形、复选框、非绑定对象框架、附件、单选按钮、子表单和子报表、绑定对象框架,甚至在表单上放置图像。
Example
现在让我们通过创建一个新的空白表单,看看其中一些控件的简单示例。转至 Create 组中的 forms 选项卡,然后单击 Blank Form 。
上述步骤将打开一个未绑定的表单,该表单尚未附加到我们数据库中的任何项目。
默认情况下,它将以布局视图打开,如上图所示。
现在让我们转到“设计”视图以添加字段。
在“设计”选项卡上,单击“属性表”。
在“属性表”中,单击下拉箭头并确保选择了“表单”,然后转到“数据”选项卡。
在“数据”选项卡上,您将看到记录源仍然为空白。让我们假设我们想要创建一个将绑定到我们数据库中两个不同表的表单。现在单击…按钮。它会进一步打开其自己的查询生成器。
选择包含您要显示的数据的表;单击“添加”按钮,然后关闭此对话框。
现在,让我们从 tblEmployees 中选择所有字段并将其拖动到查询网格中,并以类似的方式从 tblHRData 中添加所有字段。
现在,单击“另存为”并为该查询命名。
我们称之为 qryEmployeesData 并单击 Ok ,然后关闭查询生成器。
您现在可以看到该查询作为其记录源。我们现在已将此表单绑定到我们的数据库中的一个对象,在本例中是 qryEmployeesData。我们现在可以开始向此表单添加一些控件,要添加任何一个控件,请转到“设计”选项卡并从“控件”组中查看您的选项。
在控件菜单中,你将看到“使用控件向导”已高亮,如上图所示。默认情况下,这个小按钮周围有高亮框。这意味着控件向导已打开。这就像一个切换开关。当你点击切换开关,向导就会关闭。再次点击它,将再次打开向导。
现在让我们点击标签,拖动此标签,输入“员工信息”,然后转到“格式”选项卡,按以下屏幕截图进行格式化。
你可以选择应用粗体样式或更改该标签内文本的字体大小等。此控件显示在表单的详细信息部分。最好将此标签放在表单页眉部分中,该部分暂时不可见。
右键单击表单背景的任意位置,并选择 Form Header ,如上图所示。
将此控件移动到表单页眉区域。现在让我们从“设计”选项卡创建更多控件。此时,假设我们要将所有字段分发到两个不同的选项卡中。
在控件菜单中,你可以看到“选项卡控件”,将创建表单上的选项卡。单击选项卡控件,并在详细信息部分中将其绘制到表单上,如上图所示。
它将创建两个选项卡 - 页面 2 和页面 3,如上图所示。
现在让我们开始向此选项卡控件添加一些控件。
如果我们想查看基本查询中存储的一些信息,请从“工具”组中的功能区单击 Add Existing Fields 选项,以查看基本查询中的所有可用字段。
若要将现有字段添加到页面中,请如以下屏幕截图所示,选择“字段列表”中可用的所有字段。
现在,将字段拖动到选项卡控件的 Page2,如以下屏幕截图所示。
现在,转到“排列”选项卡并选择 Stacked 布局。
在第二页,现在让我们从此查询添加剩余字段。
你可以浏览并调整这些控件的大小和宽度,以使其按你希望的方式显示。
完成格式化后,单击 Save As 图标,使用你希望的名称保存表单。
单击“确定”,然后转到“表单”视图,以查看该表单中的所有信息。
选项卡控件将我们的控件或字段分成两个屏幕,以便更轻松地查看和添加信息。
Ms Access - Reports Basics
在本章中,我们将介绍报表的原理以及如何创建报表。报表提供一种查看、格式化和整理 Microsoft Access 数据库中的信息的方式。例如,你可以为所有联系人创建电话号码的简单报表。
-
报表包含从表或查询中提取的信息,以及与报表设计存储在一起的信息,例如标签、标题和图形。
-
提供基础数据的表或查询也称为报表的记录源。
-
如果你想要包含的所有字段都存在于一个表中,则将该表用作记录源。
-
如果这些字段包含在多个表中,则需要使用一个或多个查询作为记录源。
Example
现在,我们使用一个简单的示例来了解创建非常简单的报表的流程。为此,我们需要转到“创建”选项卡。
在单击“报表”按钮创建基本报表之前,请确保选择正确的查询。在这种情况下,你的导航窗格中已选择“ qryCurrentProjects ”。现在单击“报表”按钮,该按钮会根据该查询生成一份报表。
你将看到报表在版式视图中打开。这提供了一种快速方式来调整你在报表中看到的所有字段的大小或宽度。现在我们调整列宽,以便以更好的方式使所有内容都适合放置。
向下滚动并调整底部的页面控件。
这是创建非常简单的报表的一种非常快的方法。你还可以从报表设计视图进行轻微的更改和调整。
-
就像表单一样,报表由各种不同的部分组成。
-
您有详细信息部分,大部分数据都在此处。
-
您还将看到页眉和页脚部分;这些部分显示在报表中每一页的顶部和底部。
现在让我们更改报表标题并赋予它另一个名称。
单击保存图标保存报表。
您将看到上面的对话框。
为报表输入名称并单击“确定”。如果您想查看此报表实际的样子,在打印预览中,您可以返回到“视图”按钮并单击“打印预览”查看此报表在纸张或 PDF 上打印时的样子。
使用右下角的工具,您可以放大或缩小。当您切换到“打印预览”时,还可以在“打印预览”选项卡上看到一些按钮,这些按钮会自动显示。在缩放部分,您可以查看一页、两页;或者如果您有较长的报表,您可以一次查看四页、八页或十二页。您还可以调整一些简单内容,例如打印要使用的纸张大小、报表页边距、方向、列数、页面设置等。这就是使用“创建”选项卡上的“报表”按钮创建非常快速简单的报表的方式。
Create a Report Using Report Design
报表设计是使用 Access 创建快速报表的另一种方法。为此,我们需要使用报表设计视图按钮,它类似于窗体设计按钮。这将创建一个空白报表并直接将其打开到设计视图,这使您可以更改控件源并直接将字段添加到报表的设计视图。
现在,让我们转到“创建”选项卡并单击“报表设计”按钮。
它将打开一个空白报表或一个未绑定的报表,这意味着此报表未连接到我们的数据库中的任何其他对象。
在“工具”组中的“设计”选项卡上,选择“属性表”。这将打开属性窗格。
在“数据”选项卡上,为该报表分配一个记录源,以将其连接到数据库对象,如下面的屏幕截图所示。
从下拉菜单中选择 qryLateProjects ,现在,下一步是单击“设计”选项卡上的“添加现有字段列表”按钮来添加一些字段到此报表。
选择字段,如上面的屏幕截图所示。
将字段拖动到报表中,如上面的屏幕截图所示。转至“排列”选项卡,然后在“表”组中,您可以从几个选项中进行选择。
有一个堆叠布局和一个表格布局,它们类似于电子表格。让我们选择表格布局。
您会看到它会将所有标签移到页眉区域。这些标签只会显示在每一页的顶部一次,而数据查询会针对详细信息部分中的每条记录重复。现在,您可以进行一些调整,使您的 ProjectName 字段更宽。
正如您在上面的屏幕截图中看到的那样,详细信息部分和页脚之间有很大的空间。
让我们将页面页脚向上拖动,以减少空间,如下面的屏幕截图所示。我们现在将转到“设计”选项卡,然后单击“视图”按钮,并选择“报表视图”。
你现在可以看到,一些项目名称不完整;你可以使用设计视图或版式视图调整它。
这就是我们只使用“设计视图”就创建简单报表的步骤。
Ms Access - Formatting Reports
在本章中,我们将学习如何格式化报表。你会发现格式化报表与格式化表单有很多相似之处,但有一些工具和技巧是专门针对报表的。现在让我们了解报告部分和分组的概念。
为此,我们需要打开我们在上一章中创建的一个报告。在这里,我们将看到其中一些信息如何在报告中显示。
在这里,我们将从报告部分和分组开始。
现在让我们转到此报告的设计视图。
你可以看到这里没有很多内容,这里只有页眉、详细信息部分和页脚可见。你可以非常容易地添加其他几个部分。
在此报告上的任意位置单击鼠标右键,你将看到页眉/页脚和报告页眉/页脚。此报告没有显示该报告页眉/页脚。让我们选择该选项并返回报告视图。
可以看到,它只在报告的顶部添加了一个小彩色区域。在设计视图中,将鼠标悬停在该页眉分隔符正上方、单击并向下拖动以展开该区域。这将为报告页眉添加更多区域。
在报告视图中,现在你将在报告的顶部看到更多区域,如下面的屏幕截图所示。
报告页眉和页脚控件显示在该报告第一页的顶部。报告页脚控件控制你在报告底部最后一页上看到的内容。
报告页眉和页脚与你的页眉和页脚不同。放在页眉中的任何内容都会显示在每一页的顶部。同样,放在页脚中的任何内容都会在每页底部重复。
现在你可以添加其他分组级别,要做到这一点,你要确保打开了组排序和总计区域。
在设计选项卡的分组和总计部分中,单击组和排序按钮,这将在底部打开组、排序和总计区域,如下面的屏幕截图所示。
你现在可以在报告中的任何控件上添加其他组或分组。现在让我们单击添加组。
在上图中,你可以看到报告的基本控件来源,包括项目名称、任务标题、到期日期和完成百分比。现在假设我们想要按项目将所有逾期任务分组,因此从列表中选择项目名称。
现在,你将在详细信息部分上方看到一个额外的分组级别 ProjectName Header 。我们现在可以将此控件上移到此项目名称标题,而不是让项目名称显示在每个逾期任务旁边。你可以选择它,然后按键盘上的 Ctrl + X 将其从详细信息部分中剪切下来,然后单击该项目名称标题背景中的任意位置,然后按 Ctrl + V 将该控件粘贴到该项目名称标题中。
现在,你可以转到报告视图,查看对报告中事务进行分组所做的调整,如下面的屏幕截图所示。
每个项目在自己的线上都有自己的小级别,然后在这个区域下方,您将看到所有该项目已逾期的任务。现在,稍做更改之后,您可以在布局视图中开始设置报告格式。
如果您想要扩大项目名称,则拖动下面的行,然后在“格式”选项卡中将字体大小更改为 20。
您可以增加控件的宽度,使其覆盖整个页面宽度。
若要移除控件周围的边框,请在“格式”选项卡中单击“形状轮廓”,如下面屏幕截图所示。
选择 Transparent 选项。
让我们现在转到设计视图,如下面屏幕截图所示。
将任务标题调整到页面的左侧,如下面屏幕截图所示。
让我们现在使用 Ctrl+X 和 Ctrl+V 将数据从“页眉”部分带到 ProjectName 标题部分。
让我们现在返回到报告视图。您现在会看到这些标签直接显示在它们描述的控件上方。
如果您注意到了,您会发现任务和下一个项目名称之间没有空格。它们之间应该有额外的空格。为此,我们需要添加 ProjectName Footer 。
现在,转到设计视图。
在“分组、排序和总计”区域中,单击项目名称旁边的“更多”按钮。
您现在将看到有关如何按项目名称分组和排序的所有选项,如下面屏幕截图所示。
在此处,我们有一个名为 Without a Footer Section 的属性。让我们通过单击文字 Without a Footer Section 旁边的那个小箭头更改该选项。
将其更改为 With a Footer Section 。
正如您在上面的屏幕截图中看到的那样,在“详细信息”部分下方的“ProjectName Footer”部分已添加。这将作为该项目名称组的页脚。
让我们现在返回到报告视图。
若要移除交替区域在“详细信息”部分和“项目名称”区域中作为背景的阴影或外观,请再次转到设计视图。
让我们先通过单击详细信息分隔符然后打开“属性”表来更改“详细信息”部分。
在“格式”选项卡上,更改 Alternate Back Color 为 No Color ,如下面的屏幕截图所示。
类似地,将“备用背景颜色”更改为“无颜色”,以适用于“ProjectName Header”和“ProjectName Footer”,然后转到“报表视图”。
现在你可以看到报表的显示方式。要了解数据将逐页打印的方式,让我们转到“打印预览”。
这就是打印时显示的样子。
Ms Access - Built-In Functions
在本章中,我们将使用内置函数。在 Access 中,内置函数接近 100 个,不可能涵盖所有函数。在本章中,我们将涵盖基本结构、语法以及使用一些常见的函数,还有一些需要注意的事项,以便你能自己探索其他一些函数。
Functions
函数是执行任务或计算并返回结果的 VBA 过程。函数通常可以用于查询,但还有其他可以使用函数的地方。
-
例如,如果你要为日期/时间字段指定默认值,则可以在表属性中使用函数,可以使用日期或 Now 函数从你的系统中调用当前日期/时间信息,并自动输入该值。
-
当创建计算字段或在窗体或报表控件中使用函数时,你也可以在表达式中使用函数。你甚至可以在宏参数中使用函数。
-
函数可以非常简单,不需要调用其他信息,或者仅仅引用表或查询中的一个字段。
-
另一方面,函数也可能变得非常复杂,具有多个参数、字段引用,甚至嵌套在其他函数内部的其他函数。
现在让我们了解一些使用内置函数的示例。
Date & Time Functions
现在让我们了解日期和时间函数 −
-
Date() 函数旨在返回当前系统日期。此函数不需要任何函数参数或附加信息。你所要做的就是编写函数的名称以及那些圆括号。
-
有两种非常相似的内置函数 Time() 和 Now()。
-
Time() 函数仅返回当前系统时间,而 Now() 函数同时返回当前系统日期和时间。
-
根据你想要跟踪、存储或查询的数据,你有三个内置的易于使用的函数来帮助完成该任务。
现在让我们打开数据库,并使用查询设计创建一个新查询,然后添加 tblProjects 和 tblTasks。
从 tblProjects 添加 ProjectName,从 tblTasks 添加 TaskTitle、StartDate 和 DueDate,然后运行查询。
现在你可以看到来自所有项目的不同任务。如果你想要查看截至今天日期的正在进行中的项目任务,那么我们必须使用 Date() 函数指定一个条件来查看在今天或之后开始的项目。
我们现在来具体说明 StartDate 下的条件。
条件以一个运算符 greater than symbol 开头,其后是一个 equal to symbol 再加上一个 Date Function 。
当我们运行此查询时,所有任务要么出现在今天的日期,要么出现在未来日期,如以下屏幕截图所示。
这是一个关于如何将 Date() 函数用作查询条件的示例。
-
现在让我们假设此查询在拉取本周开始的日期方面需要更加灵活。
-
我们有几个本周开始的不同任务,但由于我们的条件,它们未显示在此当前列表中。它正在查找等于或大于今天的开始日期。
如果我们要查看已开始但尚未完成或应在今天完成的本周的任务,让我们返回到设计视图。
在此,我们将会向这些条件添加一些附加信息。事实上,我们希望它大于或等于今天的日期减去七天。
如果我们键入减去七然后运行查询,您还将看到本周开始的任务。
DateDiff() Function
DateDiff() 函数是另一个非常流行的日期/时间函数。DateDiff 函数返回一个变体(长整型),指定两个特定日期之间的时间间隔数量。换句话说,它可以计算两个日期之间的差值,而且您可以选择函数用以计算该差值的间隔。
现在让我们假设我们要计算作者的年龄。为此,我们首先需要创建一个新查询并添加作者表,然后添加 FirstName、LastName 和 BirthDay 字段。
我们可以通过计算出生日期或生日与今天的日期之间的差值来计算人们的年龄。
让我们尝试在一个新字段中使用 DateDiff 函数。
我们称之为年龄,后加一个冒号,然后编写 DateDiff 函数。
-
DateDiff 函数的第一个函数参数是间隔,因此键入“yyyy”。
-
下一个函数参数是我们要计算的第一个日期,在本例中,将是 Birthday 字段。
-
第三个函数参数是今天的日期。
现在,运行您的查询,您将看到新字段,该字段显示每个作者的年龄。
Format() Function
Format() 函数返回一个字符串,其中包含一个表达式,该表达式根据一个格式表达式中包含的说明进行了格式化。以下是 Format() 函数中可以使用的用户定义格式列表。ss
Setting |
Description |
yyyy |
Year |
q |
Quarter |
m |
Month |
y |
Day of year |
d |
Day |
w |
Weekday |
ww |
Week |
h |
Hour |
n |
Minute |
s |
Second |
现在,我们回到你的查询,并使用 Format() 函数在其中添加更多字段。
输入 Format 函数。第一个函数参数将是一个表达式,它几乎可以是任何东西。现在,我们让 birthday 字段是第一个,接下来要做的是编写我们的格式。在这种情况下,我们需要月份、月份、天、天。用引号写上“mmdd”,然后运行你的查询。
它现在正在从 birthday 字段获取日期,4 是月份,17 是天。
让我们在下一个字段中添加“mmm”和“mmmm”,而不是“mmdd”,如下面的屏幕截图所示。
运行你的查询,您将看到结果,如下面的屏幕截图所示。
在下一个字段中,它将返回该生日中月份的前 3 个字符,在最后一个字段中,您将获得完整的月份名称。
要查看生日之后的月份和年份,让我们添加“yyyy”,如下面的屏幕截图所示。
让我们再次运行你的查询。
您现在将看到月份后面跟着一个逗号,然后是年份。
IIf() Function
IIf() 函数是“Immediate If”的缩写,此函数将表达式评估为真或假,并为每个表达式返回一个值。它最多有三个函数参数,所有这些参数都是必需的。
-
第一个参数是您想要评估的任何表达式。
-
下一个参数代表真部分,如果第一个表达式为真,则可以是值或返回的表达式。
-
最后一个参数是当你的表达式为假时要返回的内容。
Example
我们举一个简单的例子。我们将使用查询设计创建一个新查询,添加 tblAuthors 表,然后添加以下字段。
您现在可以看到我们有三个字段——FirstName、MiddleInitial、LastName,然后是这个连接字段,它将所有三个字段都拉在一起。让我们运行你的查询来查看此查询的结果。
现在,您可以看到查询的结果,但您也会注意到有些记录没有中间名首字母。例如,Joyce Dyer 记录没有中间名首字母,但在 FullName 字段中,您将看到实际不需要的句点。因此,返回到设计视图。在这里,我们将使用 IIf 函数以不同的方式连接名称。
让我们在另一个字段中写出名称并将其称为 FullName1,然后键入 IIf 函数。
-
立即如果函数的第一个函数参数将是你的表达式。在表达式中,我们将检查中间首字母字段是否为空或为 null。
-
下一个参数是真部分。因此,如果中间名首字母为 null,那么我们希望显示 FirstName 和 LastName。
-
现在,对于我们的虚假部分——如果 MiddleInitial 不为空,那么我们希望显示 FirstName、MiddleInitial 和 LastName。
现在让我们运行您的查询,您将看到结果,如下面的屏幕截图所示。
Ms Access - Macros
在本章中,我们将介绍 Access 中宏的基础知识。宏是一种工具,允许您自动执行任务并向表单、报表和控件添加功能。
-
Access 中的宏与 Word 或 Excel 中的宏的工作方式略有不同,在 Word 或 Excel 中,您基本上会录制一系列击键操作,然后稍后播放这些击键操作。
-
Access 宏由一组预定义的操作构建,允许您自动执行常见任务,并向控件或对象添加功能。
-
宏可以是可从导航窗格查看的独立对象,或者直接嵌入到表单或报表中。在创建数据库对象(如表、表单和报表)后,宏可以提供一种快速简便的方式将所有这些对象连接在一起,从而创建一个简单的数据库应用程序,任何人都可以使用,甚至可以进行修改,并且无需接受太多培训。
-
宏提供了一种运行命令的方式,而无需编写甚至了解 VBA 代码,而且仅使用宏就可以完成很多操作。
Creating a Macro
让我们开始创建当单击命令按钮时打开表单的非常简单的宏。为此,我们需要打开数据库和 frmEmployeeData 表单,其中我们创建了两个选项卡。
在该表单中,我们可以添加一个按钮,允许用户打开所有职位信息。
现在让我们转到该表单的设计视图,并从“控件”菜单中添加按钮表单。释放鼠标后,您将看到“命令按钮向导”对话框。
创建宏操作的方法有很多,但最简单的方法是仅使用“命令按钮向导”。
对于常见操作(如打开表单),请从“类别”列表中选择“窗体操作”,然后从“操作”列表中选择“打开窗体”,然后像上面屏幕截图中所示单击“下一步”。
您需要指定要使用命令按钮打开哪个表单。现在,让我们选择 frmJobs 并单击 Next 。
在这个屏幕中我们有两个选项,我们可以 open the form and display a very specific record ,或者我们可以 open the form and show all the records 。让我们选择第二个选项,然后像上面屏幕截图中所示单击下一步。
命令按钮本身可以显示图片,或者可以选择“显示文本”。在此处,我们希望显示文本“查看职位”,现在单击“下一步”。
现在,您可以像上面屏幕截图中所示向命令按钮提供一个有意义的名称。这可以在其他代码或其他宏中使用。我们来称此为 cmdViewJobs 并单击 Finish 。
现在转到“窗体视图”。
现在您将在表单中看到一个“查看职位”按钮。让我们单击它。
现在您打开了一个表单,但您不会查看任何信息。让我们返回到 frmEmployeeData 表单设计视图。确保命令按钮已选择,然后单击“属性表”中的“事件”选项卡。
点击后,您将看到向导创建的嵌入式宏。如果您现在想要修改此宏,请单击…按钮来打开向导生成的宏。
这是宏设计器,在右侧您将看到操作目录。您的所有操作都将在此存储在文件夹中。您有数据输入选项、数据导入/导出等等,在主区域左侧您有另一个宏。它只包含一个操作,通过单击该操作,您可以查看该特定操作的其他属性。
您将看到表单名称,您可以点击该下拉箭头以查看数据库中可用的表单。您可以更改该表单的查看方式,可以选择以表单视图、设计视图、打印预览打开它。您可以应用筛选器名称或 Where 条件。在这里,我们要更改数据模式,因为 frmJobs 被设置为仅允许添加新记录的“添加模式”。我们可以通过将其更改为编辑模式在此宏中覆盖它。
现在保存您的宏,然后关闭宏设计器并返回到表单视图。
让我们再次单击“查看工作”。
您现在可以看到它打开您的 frmJobs 表单,并允许您滚动浏览我们数据库中所有可用的工作。
Ms Access - Data Import
在本章中,我们将讨论在 Access 中导入数据以及您可以使用 Access 导入哪些类型的数据。通常,数据存储在各种格式、文件和位置,这使得获取和使用数据变得很困难。如果您在电子表格、SharePoint 列表或其他格式中拥有数据,则只需几个步骤即可将其导入 Access 数据库,使其在 Access 中更易于获得。
-
“另存为”命令通常用于以另一种格式保存文档,以便您可以在其他程序中打开它。
-
在 Access 中,您不能以相同的方式使用“另存为”命令,您可以将 Access 对象另存为其他 Access 对象,但不能将 Access 数据库另存为电子表格文件。
-
要将 Access 另存为电子表格文件,您需要使用“外部数据”选项卡中的导入功能。
Different Types of Data Access Can Import
要了解您可以在 Access 数据中导入哪种类型的数据,让我们打开您的数据库并转到“外部数据”选项卡。
在“导入和链接”组中,您可以看到 Access 中可用于数据导入的不同类型选项。下面是使用最广泛的数据导入格式。
-
Microsoft Office Excel
-
Microsoft Office Access
-
ODBC 数据库(例如,SQL Server)
-
文本文件(分隔的或固定宽度的)
-
XML Files
Example
让我们看一个从 Excel 文件导入数据的简单示例。以下是 Access 文件中的数据。
要在 Access 中导入数据,我们首先需要打开 Access 数据库,然后转到“外部数据”选项卡,如下面的屏幕截图所示。
在“导入和链接”组中,您会看到一个选项 Excel。让我们单击该选项。
浏览您想要从中导入数据的 Excel 文件,然后我们有不同的选项来存储数据。让我们选择第一个选项并单击确定。
在这里您将看到您数据的预览。现在,单击下一步。
在预览中,你现可以看到第一行包含列标题。现在我们勾选该复选框,然后点击下一步。
你现在将看到一个对话框,你可以在其中为每列/字段设置数据类型。如果你不想导入任何字段,只需勾选该复选框。完成“FirstName”字段之后,只需点击“MiddleInitial”字段。
现在让我们遍历所有字段,然后点击下一步。
以下是主键的不同选项。让我们选择第一个选项并点击下一步。
在最后一个对话框中,你可以输入你选择的表名称,然后点击完成。
如果你希望保存所有这些步骤,则勾选复选框,然后关闭该对话框。
现在让我们到导航窗格。你将看到此处添加了一个新表,当你打开新添加的表时,你会在 Access 中看到所有数据。
Example
现在让我们看看从 Access 数据库导入数据的另一个示例。让我们再次进入外部选项卡。
在导入和链接组中,点击 Access 选项。
浏览你想从中导入数据的 Access 数据库,然后选择第一个选项,即导入表、查询、窗体等。现在,点击确定。
在上述对话框中,你可以看到表、查询、窗体等的不同选项卡,你可以从中选择希望导入哪种类型的数据。
让我们进入 Reports 标签,然后选择你想导入的任何报表;你还可以通过点击 Select All 按钮选择所有数据。让我们选择 Projects 并点击 Ok 。
现在,关闭对话框。在导航窗格中,你将看到添加了一个新报表。让我们打开此报表,你将看到该报表中的所有数据。
Ms Access - Data Export
在本章中,我们将了解如何从 Access 中导出数据。数据导出实际上与数据导入相反。在数据导入中,我们将数据从其他格式导入 Access,而在导出中,我们会以其他格式保存数据。
要了解你可以从 Access 数据中导出哪种数据,让我们打开你的数据库,进入外部数据选项卡。
在导出组中,你可以看到为从 Access 中导出数据而提供的不同类型的选项。以下是使用最广泛的数据导出格式−
-
Microsoft Office Excel
-
Microsoft Office Access
-
ODBC 数据库(例如,SQL Server)
-
文本文件(分隔的或固定宽度的)
-
XML Files
Example
让我们来看一个从 Access 中导出数据的简单示例。打开你想从中导出数据的数据库。在导航窗格中,选择你想从中导出数据的对象。
你可以从表、查询、窗体和报表对象等导出数据。让我们选择 qryAllProjects,然后进入外部数据选项卡。
在外部数据选项卡上,点击你想导出的数据类型。例如,要以可通过 Microsoft Excel 打开的格式导出数据,请点击 Excel。
访问启动导出向导。在向导中,您可以设置导出目标文件名和格式、是否包含格式设置和布局以及要导出的记录等信息。填写完所需的信息后,单击“确定”。
在此向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为将来需要反复执行相同的操作,则选中“ Save export steps ”复选框并关闭对话框。
随即打开以下 Excel 文件。
现在假设您想将数据导出到文本文件,请在“外部数据”选项卡中单击“文本文件”。
指定导出选项并单击“确定”。您将看到编码对话框,其中我们要使用默认编码导出数据。
选择第一个选项并单击“确定”。
在此向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为将来需要反复执行相同的操作,则选中“ Save export steps ”复选框并关闭对话框。
现在,您将看到打开文本文件。
同样,您还可以探索其他选项。因此强烈建议也熟悉其他导入导出功能。