TutorialsPoint Access 教程

来源：易百教程

Access教程

此Microsoft Access教程的目的是为愿意学习如何使用Microsoft Access。这里假定数据库以及它们如何工作有一个基本的了解。

如果你现在还没有理解数据库是如何工作，不要绝望 - 我们写了一个基本的数据库教程！该教程涵盖了数据库的基本概念，并使用Microsoft Access实例，这样会让你更容易理解。

教程目录

本教程由以下目录：

关于Microsoft Access

创建数据库

创建一张表

添加数据

创建表单

修改表单

创建一个查询

修改一个查询

SQL视图

创建一个宏

导出Access数据库到Excel

关于Microsoft Access - Access教程

Microsoft Access是一个关系数据库管理系统(RDBMS)，主要是为家庭或小型企业的使用而设计的。

Access 在传统上被称为一个桌面数据库系统，因为它的功能旨在一台计算机上运行 (而不是应用程序安装在服务器上的服务器数据库应用程序，然后远程从多个客户机访问).

话虽如此，Microsoft Access时包括网络解决方案（以及它的桌面解决方案）2010年以来，它集成了ShareYiibai和SQL Server 2013。本教程重点介绍的桌面解决方案。

Microsoft Access（或MS接入）安装，就像任何其他软件的软件包，并捆绑作为Microsoft Office套件的一部分。

Access VS Excel

你可能想知道使用Access想比较使用Excel电子表格的好处。 嗯，这真的取决于你想要做的，以及存储多少数据，或要存储的数据是什么。

如果只存少量的数据，对每一块数据的没有太多属性，使用Excel可能会可以了。或如果没有关系型数据的途径而使用多个工作表。一旦对存储每一块数据有许多属性，当发现自己重复跨多个工作表信息，那么可以考虑开始使用Access（或其他数据库系统，如果你喜欢）。

使用Excel接入的另一个重要原因是，如果需要生成大量的查询和报表。 使用Access 比Excel更适合。

Access 文件扩展名

当您在Microsoft Access中创建（保存）数据库，该数据库保存了一个.accdb扩展。这是开发中使用Access数据库时，需要用文件扩展名。旧的Access数据库使用扩展名为.mdb或有时使用.mde扩展，但这只是在2007年；微软开始逐步走出这些支持.accdb扩展。如果您无法打开旧数据库，可能需要先使用Access2013版本来转换.accdb。

下载Microsoft Access

如果你目前在计算机上没有安装Microsoft Access，可以下载 MS Access 官方网站

Access 版本

本教程使用的是Microsoft Access2013。如果您使用的是不同的版本，屏幕截图可能看起来有点不同。一般来说，大多数的基本功能在Access版本之间是保持一致的，所以你应该能够遵循使用这些，这是没有任何问题的。

Access创建数据库 - Access教程

在本教程中，我们将创建一个虚构名为“Space Trips”的数据库。这个公司销售的太空飞船！太空旅行的客户是那些喜欢让自己的行程非常冒险。他们喜欢“self-fly”假期，访问其他星球。 于是，他们要去太空旅行时需要购买新的太空飞船。

由于生意十分红火，该公司现在需要一个数据库来跟踪他们的客户，记录客户购买的产品。让我们使用Microsoft Access 2013来创建一个数据库以满足他们的需求。

创建一个数据库

第一步，建立一个数据库！我们将首先创建一个空数据库。那么在整个教程的其余部分，我们将做补充，使其适合我们最喜爱的太空旅游公司的需求。

在Microsoft Access创建数据库与创建Word文档一样简单！本课演示如何在MS Access创建数据库。

您可能会注意到，当你第一次启动Microsoft Access2013，您将看到以下画面。在这种情况下，可以简单地选择空白桌面数据库（然后跳到第3步）。 MS Access 2013: Creating a new database in Access - step 1a

如果已经打开Access，可以从到文件(file)菜单： MS Access 2013: Creating a new database in Access - step 1

选择“空白桌面数据库”（Blank desktop database）. （跳过这一步，如果你已经选择了空白的桌面数据库在步骤1）。也可以选择其他，但在这里我们只使用一个空数据库： MS Access 2013: Creating a new database in Access - step 2

选择一个名称，然后单击创建。让我们把它叫做"太空旅行"(SpaceTrips). 可以使用默认位置，或单击文件夹图标来改变位置： MS Access 2013: Creating a new database in Access - step 3

新数据库

一旦你完成上述步骤后，应该看到一个空数据库，就像这样：

我们知道，这个数据库是空白的，因为它只包含一个表（称为表1）和表只有一列（称为ID）。因此，我们需要更多的列添加到表并命名表的名称。下一步 创建一个表.

Access创建表 - Access教程

有了数据库管理系统，在输入数据之前，您需要创建表。 Microsoft Access创建表非常容易。 事实上，当你创建一个数据库，Access创建你的第一个表(称为Table1)。

通常情况下，当你需要创建一个新的表，选择CREATE > Table 从功能区工具栏。但我们可以稍后做这一步。

目前Access已经创建了第一个表，所以我们需要做的是让它适合需要修改的表。

使用我们之前的空数据库, 我们将重新命表名 Table1 为 Customers. 此表将有4列： CustomerId, FirstName, LastName, 和 DateCreated.

重命名ID 字段为 CustomerId. 要做到这一点, 在ID列单击鼠标右键，选择重命名字段。 输入CustomerId 当它出现提示: Creating a database table in MS Access 2013 - step 1

在接下来的字段中，单击单击添加（除非接入已经打开的菜单中），然后选择短文本： MS Access 2013: Design View icon top-left corner

此时，Access将方便凸显/选择字段名（目前Field1），这样就可以命名字段为FirstName： Creating a database table in MS Access 2013 - step 3

再下一个字段（LastName），然后同样的选择数据类型为短文本（Short Text）。

在接下来的字段中，为字段dateCreated选择日期和时间数据类型

我们刚刚创建的列名，并指定可以输入的数据类型。 限制每一列的数据类型是非常重要的，并帮助维护数据的完整性。它可以保证用户输入在预定格式的数据。它还可以防止意外，例如，无意中输入电子邮件地址到一个字段，用于存储当前日期。

数据库表不应该是这样的：

你现在可能注意到，当点击字段名，不能看到或更改它们的数据类型。相反，如果点击某个字段的倒三角形，你看到不同的菜单选项(例如，排序最旧到最新等) 根据该字段的数据类型。这表明字段已有数据 - 一旦有数据，就可以用这个菜单排序。

如果你不小心输入了错误的数据类型，那么不要担心。 可以通过调整下的数据类型下拉数据类型（右上方工具栏的区域）改变功能区工具栏的数据类型。如果你不能在工具栏中看到这个选项，一定要首先选择字段标签：

我们刚刚创建了一个数据库表。我们在数据表创建视图。下一步，我们来看看设计视图

Access设计视图 - Access教程

上一节中我们介绍如何创建一个表，我们已在数据表视图。我们还可以查看该表在设计视图。

什么是设计视图?

设计视图使您能够设计并建立数据库(如“幕后” 查看数据库)。这是你的设置和配置的表，窗体，报表等。

当你继续使用MS Access工作，你会发现自己经常在设计视图和数据表视图之间切换(或者窗体，布局视图的情况下)。所以在初期这是很好的熟悉这个概念。

切换到设计视图

下面的步骤演示如何切换到设计视图。

点击 View 图标的左上角（仅仅在文件菜单下）。VIew图标目前看起来是这样的： MS Access 2013: Design View icon top-left corner

此时，Access 会要求命名并保存刚才创建的表。键入Customersand，然后单击确定： Screenshot of saving the table

你现在看到在设计视图中Customers表。点击dateCreated字段，然后在底部窗格中，输入 =Now() 在默认值字段。同时单击格式字段，然后从上下文菜单中通用日期： Screenshot of Design view

我们刚为dateCreated字段设定缺省值。 这意味着，当一个新的记录被输入时，这个字段中将被自动填充当前的日期和时间，我们还指定了存储在该字段的所有日期的格式。

可以看到，我们已经配置只有两个在此窗格中的许多选项。 这些选项可以用来进一步说明到底是什么类型的数据可以被输入到数据库以及任何约束或默认值，设置对每个字段。一些选项包括限制数据的长度（以下字段大小），设置一个默认值（我们刚刚做了），指定是否为必填字段等等。

在实践中，可能会想收紧的一些规则 - 如指定一个字段是否为必填字段或没有（即不能留空）。但对于本教程的目的，我们不会强求。

还可以看到色带现在有一组新的设计相关的选项的设计标签。

主键

可能已经注意到了一点“key”图标，客户ID字段的左侧。这表示该字段是主键。主键确保了该列中的数据是唯一的 - 没有两个值可以是相同的。这是当您要执行查询或对表运行报告。建立与其他表的关系这是非常重要的。

表达式生成器

您也可以点击小 ...按钮，只要在默认值字段（和其他字段也是如此）单击出现。 按钮，只要你在默认值字段（和其他字段也是如此）单击出现。点击该按钮打开表达式生成器，使您能够浏览一个合适的函数，常量或操作符，以帮助您构建了字段的表达式。

我们可能很容易地使用表达式生成器来建立 =Now() 表达式：

切换回数据表视图

现在，我们在设计视图，可能已经注意到，查看图标看起来不同 - 它已经从一个设计视图的图标变成了一个数据表视图图标。现在看起来是这样的：

点击视图图标返回到数据表视图，我们将看看选择将数据添加到我们的表格。

Access添加数据 - Access教程

在Microsoft Access，有很多方法将数据添加到您的数据库。选择方法在很大程度上取决于有多少数据需要添加，以及数据是否已经存在接入之外的方法。

以下是将数据添加到数据库的主要方法的解释。

数据表视图

您可以直接输入到表中，而它在数据表视图。 虽然这是很好的一个小数量的很少更新小表记录，如果打算保持大量的记录这是不适合的。维护即使是很小的数据库可以成为一个非常耗时的任务，如果记录频繁改变 - 特别是如果你需要更新的分布在多个表中的数据。 它也没有真正合适是否会有非技术用户维护数据库。对于非技术用户，它是最好创建一个漂亮的用户友好的窗体。

表单

您可以设置表单，使非技术用户可以将数据输入到表格。一旦提交表单，数据被自动插入到数据库中。一个关于表单的大的事是，可以插入到许多表 - 不必打开每个表手动插入数据。

Access提供了一个表单向导，它会引导您完成整个过程，以建立一种表单。将在下一课中介绍。

SQL视图

可以使用SQL视图将数据插入到你的数据库。也可以使用SQL视图做很多其他的事情使用数据库（包括创建表）。SQL（代表结构化查询语言）是标准的编程语言处理数据库。

要从功能区SQL视图中，选择CREATE > Query Design，（关闭弹出表 - 所谓的显示表），然后选择SQL视图。

外部数据

有可能是时候，你需要使用已经存在的数据加载数据库。 例如，可能要转移到Access数据库到Excel电子表格数据，甚至.csv文件。这是可以做到的！

Access 2013允许您从以下文件类型中导入数据：

Microsoft Excel

Microsoft Access

ODBC Databases, such as SQL Server

Text or comma-separated value (CSV) files

ShareYiibai List

XML

Data Services

HTML Document

Outlook folder

为了从这些文件类型的导入数据，从功能区中选择外部数据，选择文件类型，然后按照提示进行操作：

也可以使用这个菜单链接到不同的文件类型（而不是导入）。这样可以提供从外部数据库或文件的最新数据。 此选项不进行根据文件类型有一些限制。Access 2013可以链接到以下文件类型：

Microsoft Excel (read-only)

Microsoft Access

ODBC Databases, such as SQL Server

Text or comma-separated value (CSV) files (add new records only)

ShareYiibai List

Data Services (read-only)

HTML Document

Outlook folder

Access创建表单 - Access教程

如前所述，Access表单提供非技术用户将数据添加到数据库中的能力。表单也可以更容易地将数据插入在多个表中。

有几种方法来创建一种表单(您可以通过下面的截图中看到)：

选项包括使用窗体向导，设计视图，甚至开始使用一个空白表单。 选择的选项将取决于您自己的选择以及要创建的表单也许是类型。导航(Navigation)选项是用于创建表单，其允许用户导航数据库对象，如其他表单。窗体向导(Form Wizard)选项步骤用来完成创建一个表单的过程。 如果使用表单向导中，你可以随时修改使用设计视图。

对于本教程的目的，我们将尽可能快地创建表单。 然后我们以后再回去修改它。下面是在Access中创建表单的快捷方式。

确保Customers表中选择（在左侧导航窗格中），从功能区中，选择 CREATE FORM ! MS Access 2013: Create a form - step 1

访问刚刚创建的版式视图中一个全新形式的基础上，在Customers 表中的字段。点击下查看图标，然后选择倒三角的表单视图： MS Access 2013: Create a form - step 2

这是用户会看到表单。继续和数据输入FirstName和LastName字段。 一定要按下Enter键，已经进入了名字。然后打再次输入添加另一个记录。 MS Access 2013: Create a form - step 3

现在，让我们来看看表。点击左侧导航Customers，当点击刷新所有的功能区。不应该看到新创建的记录表： MS Access 2013: Create a form - step 4

你可能会注意到，dateCreated会现场充满了哈希符号######。 这是因为，该列是目前太窄以显示数据。 可以调整列的列标题的一侧以适应通过双击数据。首先，将光标移动到列标题的边缘，直到它改变的外观成为一个调整大小的工具，然后双击。列不应该足够宽，以显示数据：

现在，让我们切换回的表单和保存。

点击称为第二个选项卡的客户（第一个是Customers表），然后点击左上角的保存图标（如上功能区）： Screenshot of changing tabs and saving the document

提示时重命名表单为 Customers Form： Screenshot of naming the form

形式将会出现在下面的表单标题左侧导航栏。

Access修改表单 - Access教程

因此，我们刚刚创建表单。虽然表单如预期工作(即进入数据到数据库表)，这里会再加以改进。

在这里，我们会给表单一个全新的外观，我们还可以防止用户修改DateCreated字段。

虽然我们一直在使用功能区上的浏览图标来切换视图，还可以通过使用图标访问(下图)的右下角切换视图。

设计视图

单击设计视图(Design view)图标访问的右下角 (还可以使用图标功能区的左上角，如果你喜欢): Screen shot of View icons

点击dateCreated字段，然后单击属性表(Property Sheet)。属性表将显示在表格右侧： Design view and property sheet

在属性表，向下滚动，直到看到锁定选项。使用下拉控制改变其值设置为是(Yes)。 Screen shot of View icons 我们刚刚“锁定”dateCreated字段，使用户不能改变它。此字段用于存储每个记录被首先输入到系统中的日期。因此其值不会改变。通过锁定外地用户不能不慎（甚至是恶意）改变了它。我们仍然可以显示字段，对于用户的信息，我们不希望改变它。

下一步，选择客户ID标签（标签是一个在左边 - 不要接触右侧），并添加一个空格，使之成为客户ID。 其他字段执行相同的操作。这只是使表单只有可读性，因为标签就像用户所看到的。它应该是这样的： Screen shot of form labels

现在关闭属性表并切换到布局视图。

布局视图

现在是时候让我们形成一个新的布局外观。

在布局视图，单击窗体的空白部分（也就是远离字段）。选择表单详细信息区域。

从功能区中，选择一个背景颜色表单： Screen shot of form labels

现在随意格式化的一些页面上的其他元素。例如，背景颜色上的每个字段，改变每个字段中的边框颜色，粗体的标签等 如果您想选择多个字段，按住Shift键的同时选择它们。甚至可以通过点击和拖动它们移动字段。还可以通过单击并拖动其边缘（你也可以通过属性表做）调整的字段。这里有一个表格作为例子： Screen shot of form labels

表单视图

现在切换回表单视图，并查看表单的外观和工作。在输入几个记录或更多。也可以滑动的导航窗格回腾出更多空间用于表单（可以在任意视图做到这一点）。

Access创建查询 - Access教程

查询是指指示数据库返回的一些数据(或全部)在数据库的动作。 换句话说，在“查询”数据库中的一些数据匹配一个给定的标准。查询是针对一个或多个表运行仅返回感兴趣的数据。

例如，你可能会喜欢看所有个人的姓氏为“Griffin”的名单。 或者你可能希望看到所有数据库中在给定的时间内注册用户的列表。您可能还希望看到哪些客户已订购了特定产品。要做到这一切，你需要执行一个查询。

示例数据

在我们开始之前查询数据库，我们也许应该确保首先得到了足够的数据。 否则，不管你的查询有多好 - 如果没有数据，它们都将返回零的结果。因此，让我们加入一些数据。

记住，ID列和dateCreated会列自动生成， 所以只需要输入数据到表中的另外两列。

Customers 表

你可以随意补加你自己的数据。这里是我的：

Products 表

你可以随意补加你自己的数据。这里是我的：

Orders 表

再次，随意弥补自己的，但是你需要确保在客户ID和产品ID字段中的值相匹配实际ID相应的表。例如，如果你的订单表包含ID为5的客户，那需要确保在Customers表中的实际要有一个客户的客户ID为5。下面是Orders表的一些样本数据： Screenshot of sample data in the Orders table

引用完整性

当你创建一个关系，你还必须实施参照完整性（这是我们选择的时候，我们创建的关系）的选项。这可以防止其在引用表中没有相应的主键值外键值。

使用我们的表作为一个例子，假设你有10个记录在Customers表（客户ID为从1-10），但你的订单表包含使用客户ID为11的记录。在这种情况下，参照完整性没有被维持。如果你已经对关系实施参照完整性（因为我们有），访问将阻止这种情况的发生。

下面是如果你试图输入一个值，将违反参照完整性提示的一个截图。在这种情况下，我试图输入客户ID为50和ProductId为50，但客户和产品表没有客户ID为或产品编号为50的记录：

请注意，如果您已经启用实施参照完整性只能得到这个消息。如果您还没有实施参照完整性，Access会愉快地让你输入毫无意义的数据值，数据库的引用完整性就会没有起作用。

创建查询

现在，让我们创建一个返回已订购了产品的所有客户的名称的查询。

确保你已经创建选项卡上的功能区打开，单击：Query Design MS Access 2013: Creating a query - step 1

显示表对话框将会出现使用所有列出的表中。选择所有三个表，然后单击添加，然后单击：Close: MS Access 2013: Creating a query - step 2

三个表没有在顶部窗格中所示（功能区下方）。选择在您的查询的结果将提交的字段。可以双击字段名称或单击并拖动它到一个列在底部窗格中。选择字段，如下所示： MS Access 2013: Creating a query - step 3

请单击功能区的左上角部分的运行（run）按钮： MS Access 2013: Creating a query - step 4

你不应该看到这样的查询结果。因为这里是我的： Screenshot of the query result

保存方法是右键单击该查询Query1选项卡上，并给它起名字为：Customer Orders: Screenshot of saving the query

那么我们的查询实际上是怎么做的？

我们查询成功返回至少一个产品的所有客户订单，它包括产品，其价格在名字的旁边。也可以看到，一些客户已经订购了多个产品。该查询使用，我们创建并返回匹配的数据自动加入了三张表之间的关系。

这个查询只能返回至少有一个产品的客户订单。如果客户在客户表中，但不订购产品，客户的记录不会显示在此查询的结果。如果你回头看看Customers表（接近这个页面的顶部），你会看到，玛吉·辛普森（Marge Simpson）是一个客户但她没有订购的产品，但（即她没有在订单表的相应的记录）。 好吧，事实上，Marge 只是一个潜在的客户。她只是表示在购买太空船的兴趣。但是，这并没有将她的名字加入到数据库！

在任何情况下，查询已完成其工作。我们不希望看到，没有订购任何东西的客户的名单中。

Access修改查询 - Access教程

我们前面创建的查询返回所有在我们的数据库中订购产品的客户。 现在，我们将看看我们是否可以在这里调整查询一点点，还有，看看有什么其他的结果可以返回。

产品名称

市场部希望看到是否有人订购其最昂贵的太空飞船。所以，让我们回到所有客户购买最昂贵的太空飞船的名单 - "Venus Carrera ET".

从设计来看，在底部窗格中，输入 "Venus Carrera ET" （包括双引号）到ProductName字段的Criteria字段： Screenshot of Design view

单击功能区的运行（Run）按钮来查看查询的结果。或者可以直接点击数据表视图图标。而这里的结果： Screenshot of result

一旦满意结果，返回到设计视图，并删除你的修改 (即从Criteria字段中删除“Venus Carrera ET”).

价格

您还可以修改查询，以便它返回在一定的价格购买了产品的客户。

因此，让我们构建一个返回购买任何产品的所有客户查询，价格大于 $80,000.

从设计来看，在底部窗格中，添加（>80000）到Price 字段的条件字段： Screenshot of Design view

单击功能区的运行(run)按钮来查看查询的结果。 或者，你可以直接点击数据表视图图标。这里是结果： Screenshot of result

价格总计使用

前面的查询都是没有问题的， 但是有一个（潜在的）问题的。虽然它确实让我们看到了所有购买的产品超过$80,000的客户，但它并没有真正绘制的全貌。 它不会显示谁可能已经购买多个产品，其中有一些是小于80000美元，但其中的总超过$80,000的客户。

下面演示我们如何可以捕获一个。

从设计视图，单击功能区中的合计按钮： Screenshot of Totals button in Ribbon

现在，您将看到在底部窗格中总计（Total）行。每字段都会有分组（Group By）在该Price字段，单击分组（Group By ）并选择求和。

点击下一行向下（即排序字段），并选择降序。保持price字段在>80000标准。

您还需要通过选择并单击删除列（旁边功能区上的合计按钮）删除产品名称列。它现在应该是这样的： Screenshot of Price using Sum

Run the query. And here are our big spenders: Screenshot of result

你可以花一些时间调整这一个简单的查询。例如，这里有一些想法：

你可以用>=80000替换>80000

你可以完全移除>80000

您可以通过客户ID进行排序

您可以使用>50000并且<80000（或其他任何价位）

还有更多...

一旦完成，你可以保存新的查询或保持原来的查询。 宏课程的目的是让你可能想保持原有的查询。但是，您可以随时创建和保存多个查询，如果你喜欢这样做也是可以的。

所以你可以看到，查询可以非常强大。想象一下，如果你有数据库的详细表（和数据）。

Access创建关联关系 - Access教程

关系数据库的一个主要特点是，它们包含多个表，其中每一个可具有与其他表的关系。到目前为止，我们只创建了一个表，这是一个有点困难尝试建立与另一个表的关系时，只能是在同数据库中的表！

我们的数据库需要一个以上的表，无论如何，因为我们需要能够跟踪不仅客户还要产品，以及购买产品的实际顾客。

因此，让我们创建两个表，并建立它们之间的关系。一个表将存放产品信息，其他将存放订单信息。

创建相关的表

继续创建两个表如下。

一定要设置格式和默认值在两个表中的dateCreated字段（用户不需要进入这个字段- 系统可以做到这一点）。

主键

请记住，关键图标表示该字段是主键。主键可确保在此字段中的数据是唯一的 - 不允许哪两个值可以是相同的。一个表必须有一个主键的关系，可以用另一个表建立之前。 进入自动设置ID字段作为主键，所以只要你只需重命名ID为ProductId (或OrderId 视情况而定) 它将已是一个主键。如果由于某种原因，你的表中没有设置一个主键，或者如果你想改变主键字段，可以简单地右键点击（在设计视图）字段标题上，然后从上下文菜单中的主键。

建立关系

现在，你已经创建了两个额外的表，我们的数据库中有三个表。现在应该创建三个表之间的关系。

在查看在设计视图表，并确保设计选项卡中选择，请从功能区点击关系（Relationships）： Screenshot of the the Relationship button on the MS Access 2013 Ribbon

一个显示表对话框会弹出，显示所有三个表。选择所有然后单击添加： Screenshot of creating a relationship in MS Access 2013

点击关闭按钮关闭对话框

现在，您将看到三个方框代表三个表。单击并拖动Customers表的客户ID根据给Orders表中相应的客户ID字段： Screenshot of creating a relationship in MS Access 2013

编辑关系对话框会弹出。按此实施参照完整性，以便它被选中。检查值如下面的截图是一样的，然后单击Create： Screenshot of creating a relationship in MS Access 2013 现在，您将看到Customers表的客户ID字段和订单表的客户ID之间建立一条线。

现在做相同操作在Products表。也就是说，单击并关系相应的ProductID字段从Products表拖动的ProductId 到Orders表。表之间的关系看起来应该像下面的截图： Screenshot of sample data

关系类型

我们刚刚建立了许多一对多的关系。有三种类型的关系可以在表之间建立的。这些如下：

多对多的关系

这就是我们上面的例子使用的。在表A 的行可以在表B中使用关联，反之亦然许多匹配行。 在我们的例子中，一个客户可以订购多种产品，单品可以有很多客户。使用第三个表一个创建多一对多的关系，所谓结合表（更多关于该下文）。

一对多的关系

这是最常见的关系类型。并不需要第三个（结联）表这种类型的关系。在这种类型的关系，一行记录在表A中可具有表B中许多匹配的行， 但表B中的行只能有一个匹配行在表A中. 例如，行在性别表（包含记录男性和女性）可以在一个客户表中的多个匹配的行，但客户表的行只能有一个匹配行在性别表。也就是说，除非有，允许客户为男性和女性的业务规则。 在这种情况下，一个多对多的关系将需要建立。

一对一的关系

在表A中的一行只能有一个匹配行在表B中，反之亦然。这不是一个普通的关系类型，如表B中的数据可以只是很容易地在表A中对应.这种关系式一般只用于安全目的，或将一个大表，也许几个其他原因。

使用的关系的类型取决于表结构以及如何字段定义。

交结表

另外，在上述关系中，订单表被称为一个结合表。结合表是一个包含来自两个或更多个相同的数据库内的其它表的共用字段。它被用作一个基准表在多对多的关系（如我们正在做在的例子）中。

交结表在许多不同的名称。 这里有一些：交叉引用表，表桥，连接表，映射表，交表，链接表，多到很多解析器，链接表，表配对，数据透视表，转换表，或关联表。

所以，如果你曾经听到有人提到其中的一个，你应该知道它们指的是什么。

主键VS外键

我们已经知道，一个主键确保了在该字段中的数据是唯一的。这是重要的，因为我们的订单表的需要，以引用任何记录从其他表的唯一值。例如，它不能使用名字字段，因为可能有超过一个人使用一个给定的名字。它不能使用dateCreated的值，因为它可能是两个记录可在完全相同的时间被创建（例如，如果两个操作者都输入数据，或者如果多条记录从外部源导入）。这就是为什么我们需要在至少一个字段中，只包含一个唯一的值。

外键是简单地在相关表中的相应字段的主键。 所以在我们的例子中，在Orders表客户ID字段是外键，而在客户表中的客户ID字段是主键。 同样，在订单表中的ProductID字段是一个外键，而产品表产品id字段是主键。该字段并不一定需要具有相同的名称，这是一个很好的做法。这必将使数据库结构更容易理解 - 尤其是当你开始添加多个表也需要有确定的关系。

关系和查询

创建像上面的一个关系可以帮助对数据库建立查询。接下来，我们将使用我们的新创建的关系，帮助我们创建对表在数据库中查询。

Access SQL视图 - Access教程

我们创建和修改的查询均在设计视图中完成。这是一个友好的用户界面，使您可以通过可视化查询中使用的表和其提供给的选项很容易地创建查询。

但每当你使用设计视图构建查询，在后台，MS访问被构造SQL语句，以使其查询工作。 对于您创建的每个查询，都有一个SQL语句隐藏在后台。

其实它也不是很“藏”......毕竟，你可以查看它在任何时间。要做到这一点，只需要进入SQL视图。

切换到SQL视图

要切换到SQL视图，只需单击SQL图标访问的右下角：

注：也可以从功能区的左上角的查看图标选择SQL视图。

SQL语句

一旦在SQL视图中，您将看到一个SQL语句。这个SQL语句表示您构造查询。下面是我们执行的最后一个查询的SQL视图： Screenshot of our last query in SQL view

如果不熟悉SQL，这可能看起来有点吓人。但是它不需要是这样的。该SQL语句简单地从数据库中使用我们的精确标准提取记录。

让我们来看一个不太复杂的SQL语句：

SELECT Customers.FirstName, Customers.LastName
FROM Customers

上面的SQL语句返回Customers表的名字和姓氏字段。它返回所有记录，因为我们这里没有另行指定。

如果我们想要指定只有一些记录，我们需要一些标准添加的语句。下面是修改后的声明：

SELECT Customers.FirstName, Customers.LastName
FROM Customers
WHERE Customers.LastName = 'Griffin'

像第一个例子，上面的SQL语句返回Customers表的名字和姓氏字段。但在这个例子中，我们只返回其中客户的姓氏是 "Griffin" 的记录。

正如你所看到的，每次添加标准，在设计视图查询时，这一标准被添加到SQL语句中，我们可以通过只精确的记录，我们感兴趣的限制结果。

这些都是简单的例子来说明如何SQL工作。随意调整在设计视图的查询，并切换到SQL视图来看看它是如何改变SQL语句。如果你有兴趣了解更多关于SQL用法，请检看SQL教程。

Access创建宏 - Access教程

微软Access提供创建宏的能力。宏是指一组的可自动运行的动作，并在需要时。宏通常被配置为发生特定事件发生时运行。您可以在创建宏时指定事件是什么。你可以做一个宏运行，当用户按下某个键，或者你可以做一个宏在每次你打开数据库时运行。

Macro 示例

举例来说，如果说90%的数据库使用的是进入新客户到客户表单，可以创建一个自动打开窗体每次打开数据库时宏，并跳转直接到新的记录。这样做会不必每次查找表单，双击它， 然后再次单击以跳转到一个新的记录，在每次打开数据库时。

以下你可以去创建一个宏：

确保创建(Create)选项卡从功能区选中，单击Macro： MS Access 2013: Create a macro - step 1

使用下拉菜单选择第一个操作 - 选择 OpenForm: MS Access 2013: Create a macro - step 2

在底部窗格中，选择您要打开的窗体名称 - 选择 Customers Form (我们唯一的表单)： MS Access 2013: Create a macro - step 3

使用下拉菜单选择第二个动作 - 选择GoToRecord。在记录字段中，选择想要去记录- 选择 New。我们在这里所做的就是确保表单不打开一个以前的记录 - 它直接到结束有一个空白记录为你准备好进入一个新的纪录（这样可以节省时间和不必要的点击）： MS Access 2013: Create a macro - step 4

准备好，以保存您的宏。 点击保存图标并输入宏的一个名称。请确保这个宏的名字为：AutoExec。 通过命名Autoexec，我们指示访问运行该宏在每次打开数据库时。 MS Access 2013: Create a macro - step 5

测试你的宏

现在，我们已经创建了宏，现在来测试它。要做到这一点，应该关闭我们的数据库，然后再次打开它。 当我们打开它，Customers表单自动打开，并准备将进入一个新的纪录。

关闭数据库，从功能区单击文件（file）选项卡，然后单击关闭(close)。

还可以通过对宏打开宏选项卡，然后双击运行要运行的宏 (或选择它，然后点击从功能区运行，或右键单击它，然后从上下文菜单中选择运行)。

触发宏

我们上面的例子是有点不同是决定大多数宏的名称是什么，它会运行（如数据库打开它会立即运行）。 对于其他的宏，你需要指定运行宏。您没有在宏指定可以在数据库的其它地方指定它 - 只要它是你想要运行的宏。

例如，您可能需要当在窗体上的按钮被点击时运行宏。要做到这一点只需：

创建一个宏

添加一个按钮的窗体并指向宏

当添加一个按钮形式，需要提供该按钮的动作。其中一个选项是要运行的宏。

其他宏

让我们添加一个按钮在我们的表单，使用户可以运行客户订单查询。当单击该按钮，它会运行一个宏。宏（我们将在这里创建）将只需运行客户订单查询。

创建宏

首先，我们创建宏。

创建另一个宏，但这次选择OpenQuery动作

从查询名称下拉菜单中的客户订单查询。确保数据表是根据视图选项选择

宏应该是这样的： MS Access 2013: Create a macro - step 6

修改表单

现在，我们将添加按钮到表单。

打开在设计视图中客户表单，确保设计选项卡是打开的

点击功能区中的按钮图标： Screenshot of adding a button to a form - step 1

在表单详细信息区域，单击并拖动光标，这样就形成一个正方形或长方形的（在按钮的形状）。命令按钮向导会弹出。选择 Miscellaneous >Run Macro 并点击 Next: Screenshot of adding a button to a form - step 2

选择 Open Customer Orders（我们希望运行的宏），然后点击 Next

当系统提示将文本或图片在按钮上， 选择Text，把它打开客户订单，然后单击 Next

给定的按钮的名称。把它叫做CustomeOrdersButton

点击 Finish

在这时，表单如下：

按钮的颜色并不表单的其余部分真正匹配但是这很容易改变。只需打开属性表并更改修改任何设置你喜欢的格式在选项卡下。

测试按钮

所以这就是如何将宏添加到窗体。现在最有趣的部分 - 测试我们的创作(成果)。

切换到数据表视图，并点击按钮。数据表应当与客户订单查询的结果打开。如果你对结果满意那就保存表单。

Access数据库导出到excel - Access教程

大多数Access用户，在某些时候，需要他们的Access数据库导出到Excel电子表格。OK，大多数用户并不需要导出整个Access数据库 - 他们通常会只需要导出一个表或查询的结果到Excel。一旦在Excel中，他们可以使用这些数据，因为他们通常会在Excel中使用数据。

Excel不是数据导出的唯一格式。 你可能想从访问XML，HTML，CSV文件，甚至是PDF文件导出。 幸运的是，你可以在Access2013做这些。

导出到Excel

这里演示如何从MS Access到Excel导出数据。

打开包含要导出的数据表或查询

确保外部数据选项卡中选择功能区上，单击Excel下载图标(这是一个具有向下箭头)： Screenshot of the Download to Excel icon

点击确定保存文件的默认位置。可替代地，改变的位置和/或文件名。您也可以选择要包括任何其他选项： MS Access 2013: Convert Access to Excel spreadsheet - Step 2

单击关闭。或者您可以点击关闭之前选择保存导出步骤。

现在你有一个包含从查询，您可以发送给任何喜欢的数据到Excel电子表格。

正如你可以从功能区看，你可以导出到其他文件类型，如XML，文本文件，甚至是PDF文件。步骤是与上述类似，可以试试。