Ms Access 简明教程

MS Access - Quick Guide

Ms Access - Overview

Microsoft Access 是 Microsoft 的数据库管理系统 (DBMS),将关系 Microsoft Jet Database Engine 与图形用户界面和软件开发工具结合到了一起。它是 Microsoft Office 套件应用程序的一部分,包含在专业版和更高版本中。

  1. Microsoft Access 只是 Microsoft 整体数据管理产品策略的一部分。

  2. 它以基于 Access Jet Database Engine 的自有格式来存储数据。

  3. 与关系数据库类似,Microsoft Access 也允许您轻松地链接相关信息。例如,客户和订单数据。但是,Access 2013 还补充了其他数据库产品,因为它具有若干强大的连接功能。

  4. 它还可以导入或直接链接到存储在其他应用程序和数据库中的数据。

  5. 顾名思义,Access 可以直接使用来自其他来源的数据,包括许多流行的 PC 数据库程序,包含许多 SQL(结构化查询语言)数据库,这些数据库在桌面、服务器、小型机或大型机上,或存储在互联网或内联网 Web 服务器上。

  6. Access 还可以理解和使用多种其他数据格式,包括许多其他数据库文件结构。

  7. 您可以直接将数据导出到文字处理文件、电子表格或数据库文件,或从中导入数据。

  8. Access 可以使用大多数支持开放式数据库连接 (ODBC) 标准的流行数据库,包括 SQL Server、Oracle 和 DB2。

  9. 软件开发人员可以使用 Microsoft Access 来开发应用程序软件。

Microsoft Access 存储称为数据库的信息。要使用 MS Access,您需要遵循以下四个步骤:

  1. Database Creation − 创建 Microsoft Access 数据库,并指定您将存储哪种类型的数据。

  2. Data Input − 创建数据库后,可以将每个营业日的数据输入 Access 数据库。

  3. Query − 这是基本用于描述从数据库中检索信息的过程的术语。

  4. Report (可选)− 数据库中的信息采用打印 Access 报告时美观易懂的展示形式进行组织。

Architecture

  1. Access 将所有可以命名的事物称作对象。在 Access 桌面数据库中,主要对象有表、查询、窗体、报告、宏、数据宏和模块。

  2. 如果您在台式电脑上使用过其他数据库系统,您可能见过将数据库这个术语仅用于存储数据的文件中。

  3. 但是,在 Access 中,一个桌面数据库(.accdb)还包括与存储数据相关的所有主要对象,包括您定义用于自动化数据使用情况的对象。

Ms Access - RDBMS

Microsoft Access 与其他 Microsoft Office 产品的观感并无太大差异,布局和导航方面也是如此。然而,Access 是一个数据库,更具体地说,是一个关系数据库。

  1. 在 MS Access 2007 之前,文件扩展名为 .mdb ,但在 MS Access 2007 中,扩展名已更改为 .accdb 扩展名。

  2. 早期版本的 Access 无法读取 .accdb 扩展名,但 MS Access 2007 及更高版本可以读取和更改早期版本的 Access。

  3. Access 桌面数据库(.accdb 或 .mdb)是一个功能齐全的 RDBMS。

  4. 它提供了管理海量数据所需的全部数据定义、数据处理和数据控制功能。

  5. 您可以将 Access 桌面数据库(.accdb 或 .mdb)用作单个工作站上的独立 RDBMS,也可以在网络上的共享客户端/服务器模式中使用。

  6. 桌面数据库还可以充当公司内部网上显示的数据的来源。

  7. 当您使用 Access 桌面数据库构建一个应用程序时,Access 就是 RDBMS。

Data Definition

现在让我们了解一下数据定义是什么 −

  1. 在文档或电子表格中,您通常可以完全自由地定义文档的内容或电子表格中的每个单元格。

  2. 在一个文档中,您可以包括段落文本、表格、图表或使用多种字体显示的多列数据。

  3. 在电子表格中,您可以在顶部输入文本数据以定义用于打印或显示的列标题,并且在同一列中,您可能有各种数字格式,具体取决于行的功能。

  4. RDBMS 允许您定义您拥有的数据种类以及数据应如何存储。

  5. 您通常还可以定义 RDBMS 可用于确保数据完整性的规则。

  6. 例如,某个验证规则可能确保用户不能意外地将字母字符存储在应该包含数字的字段中。

Data Manipulation

在 RDBMS 中操作数据与在文字处理或电子表格程序中操作数据有很大不同。

  1. 在文字处理文档中,你可以包含表格数据并对文档中的数据执行一组有限的功能。

  2. 你还可以搜索原始文档中的文本字符串,并使用 ActiveX 控件包含来自其他应用程序的表格、图表或图片。

  3. 在电子表格中,一些单元格包含确定你想要的结果的函数,在其他单元格中,你可以输入为函数提供来源信息的数据。

  4. 你可以搜索单个表格以获取信息或在几个相关表格中请求复杂的搜索。

  5. 你可以在一个命令中更新单个字段或多条记录。

  6. 你可以编写使用 RDBMS 命令来获取你想要显示数据的程序并允许用户更新数据。

Access 使用强大的 SQL 数据库语言以处理表格中的数据。使用 SQL,你可以定义解决特定问题所需的信息集,包括来自许多表格的数据。

Data Control

电子表格和文字处理文档非常适合解决单用户问题,但当多个人需要共享数据时,它们很难使用。

  1. 当你需要与他人共享信息时,RDBMS 为你提供了灵活性,允许多个用户读取或更新你的数据。

  2. 一个旨在允许数据共享的 RDBMS 还提供了某些功能,以确保没有两个人可以在同一时间更改相同的数据。

  3. 最好的系统还允许你对更改进行分组(这也被称为事务),以便所有更改或没有任何更改出现在你的数据中。

  4. 你也可能希望确保在你输入所有订单之前,其他人无法查看任何一部分。

  5. 因为你可以与其他用户共享 Access 数据,所以你可能需要对各个用户可以查看或更新的内容设置一些限制。

Ms Access - Objects

MS Access 使用“对象”来帮助用户列出和组织信息,以及准备专门设计的报表。当你创建一个数据库时,Access 为你提供了表、查询、表单、报表、宏和模块。Access 中的数据库由许多对象组成,但以下是最主要的几个对象 -

  1. Tables

  2. Queries

  3. Forms

  4. Reports

这些对象共同允许你输入、存储、分析和汇编你的数据。以下是 Access 数据库中主要对象的摘要;

Table

表是用于定义和存储数据的对象。当你创建一个新表时,Access 会要求你定义字段,也称为列标题。

  1. 每个字段必须具有唯一名称和数据类型。

  2. 表包含存储不同类型数据的字段或列,例如姓名或地址,以及记录或行,收集有关特定主题实例的所有信息,例如有关客户或员工等主题的所有信息。

  3. 你可以定义主键,即每个记录中具有唯一值的一个或多个字段,以及每个表上的一个或多个索引,以帮助更快速地检索数据。

Query

提供来自一个或多个表的数据的自定义视图的对象。查询是一种从小表或大表搜索和编译数据的方式。

  1. 运行查询就像在询问你的数据库一个详细的问题。

  2. 当你以 Access 构建查询时,你正在定义具体搜索条件,以准确找到所需数据。

  3. 在 Access 中,你可以使用按示例图解查询工具或编写结构化查询语言 (SQL) 语句来创建查询。

  4. 你可以定义查询来选择、更新、插入或删除数据。

  5. 你还可以定义从一个或多个现有表的创建新表的查询。

Form

表单是桌面数据库中的一个对象,主要用于数据输入或显示,或用于控制应用程序执行。你使用表单自定义应用程序从查询或表中提取的数据的演示文稿。

  1. 表单用于输入、修改和查看记录。

  2. 使用表单如此频繁的原因是它们是用以指导人们正确输入数据的简单方法。

  3. 当你将信息输入 Access 中的表单时,数据会准确转到数据库设计器希望其在一些相关表中转到的地方。

Report

报告是桌面数据库中的对象,用于对所选数据进行格式化、计算、打印和总结。

  1. 您可以在打印前在屏幕上查看报告。

  2. 如果表单用于输入目的,则报告用于输出。

  3. 任何您计划打印的内容都值得一份报告,无论是姓名和地址列表、一段时期的财务摘要还是一组邮件标签。

  4. 报告非常有用,因为它们允许您以易于阅读的格式展示数据库组件。

  5. 您甚至可以自定义报告的外观以使其在视觉上更具吸引力。

  6. Access 为您提供了从任何表或查询中创建报告的功能。

Other MS Access Objects

现在让我们来看一下其他 MS Access 对象。

Macro

此对象是一个或多个操作的结构化定义,您希望 Access 在响应定义的事件时执行这些操作。Access Macro 是执行某些工作的脚本。例如,要创建一个打开报告的按钮,您可以使用一个会触发 OpenReport 操作的宏。

  1. 可以在宏中包含简单条件,以指定应执行或跳过宏中的一个或多个操作的时间。

  2. 您可以使用宏来打开和执行查询、打开表或打印或查看报告。

  3. 您还可以从宏中运行其他宏或 Visual Basic 过程。

  4. 数据宏可以直接附加到表事件,例如插入新记录、编辑现有记录或删除记录。

  5. Web 应用程序中的数据宏也可以是独立对象,可以从其他数据宏或宏对象中调用。

Module

模块是桌面数据库中的一个对象,它包含您使用 Visual Basic 编码的自定义过程。模块提供了更加离散的操作流程,并允许您捕获错误。

  1. 宏中可以执行的所有操作都可以在模块中执行,但您不会获得提示您每个操作需要什么的宏界面。

  2. 模块功能更强大,如果您计划为多用户环境编写代码,则是必不可少的,因为宏无法包括错误处理。

  3. 模块可以是包含函数的独立对象,这些函数可以在应用程序中的任何位置调用,或者可以与表单或报告直接关联,以响应关联表单或报告上的事件。

Ms Access - Create Database

在本章中,我们将介绍启动 Access 和创建数据库的基本过程。本章还将说明如何使用模板创建桌面数据库以及如何从头开始构建数据库。

要从模板创建数据库,我们首先需要打开 MS Access,您将看到以下屏幕,其中显示不同的 Access 数据库模板。

template

要查看所有可能的数据库,您可以向下滚动,也可以使用搜索框。

让我们在搜索框中输入项目并按 Enter 键。您将看到与项目管理相关的数据库模板。

project management

选择第一个模板。您将看到有关此模板的更多信息。

template info

在选择与您的要求相关的模板之后,在 File name 字段中输入名称,如果您愿意,还可以为您的文件指定另一个位置。

file name

现在,按创建选项。Access 将下载该数据库模板,并打开一个新的空白数据库,如下面的屏幕截图所示。

file name

现在,单击左侧的导航窗格,您将看到随此数据库附带的所有其他对象。

navigation pane

点击导航“项目”,并在菜单中选择对象类型。

select object type

现在您将会看到所有的对象类型——表、查询等。

object types

Create Blank Database

有时数据库要求非常具体,以至于使用并修改现有模板需要比仅仅从头创建一个数据库更多的工作。在这种情况下,我们将使用空白的数据库。

Step 1 − 让我们从打开 MS Access 开始。

blank database

Step 2 − 选择空白桌面数据库。输入名称,并点击“创建”按钮。

create button

Step 3 − Access 将创建一个新的空白数据库,并会打开一个表格,其中也是完全空白的。

created table

Ms Access - Data Types

表格中的每个字段都有属性,这些属性定义了字段的特征和行为。字段最重要的属性是它的数据类型。字段的数据类型决定了它可以存储哪种类型的数据。MS Access 支持不同类型的数据,每种类型都有特定用途。

  1. 数据类型决定了用户可以在任何给定字段中存储的值的类型。

  2. 每个字段可以存储仅包含单个数据类型的数据。

以下是你将在典型的 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.

  1. 如果您使用以前版本的 Access,您会注意到两种数据类型有所不同。

  2. 在 Access 2013 中,我们现在有两个数据类型——短文本和长文本。在以前版本的 Access 中,这些数据类型称为文本和备忘录。

  3. 文本字段称为短文本,备忘录字段现在称为长文本。

以下是 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 中打开一个空白数据库。

home

在上次的基础上继续。我们创建了数据库,然后 Access 会自动为表单打开这张表-单张数据表视图。

fields

现在,让我们转到“字段”选项卡,您将看到它也已自动创建。ID 是一个“自动编号”字段,用作我们的唯一标识符,并且是该表的“主键”。

ID 字段已经创建,现在我们想要重命名它以满足我们的条件。这是一个“员工”表,并且它将成为我们员工的唯一标识符。

unique identifier

在功能区中单击 Name & Caption 选项,您会看到以下对话框。

field properties

将此字段的名称更改为 EmployeeID ,以使其更适用于此表格。如果需要,输入其他可选信息,然后单击“确定”。

table1

现在,我们有了标题为“员工 ID”的员工 ID 字段。此字段自动设置为“自动编号”,因此实际上我们无需更改数据类型。

现在,让我们通过单击 click to add 添加更多字段。

click to add

选择 Short Text 作为字段。当选择“短文本”时,Access 将自动突出显示该字段名称,并且您所需要做的就是键入字段名称。

short text

键入 FirstName 作为字段名称。同样,添加所有必需的字段,如下图所示。

first name

在添加完所有字段后,单击“保存”图标。

您现在将看到 Save As 对话框,在其中可以为表输入表名。

save as

在“表名”字段中输入表的名称。此处的 tbl 前缀表示表。让我们单击“确定”,您将在导航窗格中看到您的表。

table

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

让我们现在转至“创建”选项卡。

create tab

在“表格”组中,单击“表格”,您会看到它与数据透视图完全不同。在此视图中,可以看到 field namedata type 并排。

design tab

我们现在需要将 ProjectID 设为该表格的主键,因此让我们选择 ProjectID ,然后单击功能区中的 Primary Key 选项。

primary key
field name

现在,您会看到一个小键图标,它将显示在那列字段旁边。这表明该列字段是表的主键的一部分。

让我们保存此表并为其起个名字。

saveas project

单击“确定”,您现在可以看到此表在数据透视图中的样子。

datasheet view

让我们单击功能区左上角的数据透视图按钮。

left corner

如果您想对该表或任何特定字段进行更改,不一定要返回到设计视图来进行更改,也可以从数据透视图进行更改。让我们按照以下屏幕截图所示更新 PStatus 字段。

pstatus

单击“确定”,您将看到所做的更改。

project status

Ms Access - Adding Data

Access 数据库与 Microsoft Office Word 文档或 Microsoft Office PowerPoint 具有相同意义的文件不同。相反,Access 数据库是由表、窗体、报表、查询等对象组成的集合,这些对象必须共同工作才能使数据库正常运行。我们现在已经创建了两个包含数据库中所有必要字段和字段属性的表。要查看、更改、插入或删除 Access 表中的数据,可以使用该表的数据透视图。

  1. 数据透视图是查看数据所在行和列中数据的简单方法,无需任何特殊格式设置。

  2. 每当创建一个新的 Web 表时,Access 会自动创建两个视图,您可以立即开始使用它们进行数据输入。

  3. 在数据透视图中打开的表类似于 Excel 工作表,您可以键入或粘贴数据到一个或多个字段中。

  4. 您无需明确保存您的数据。当您将光标移动到同一行中的新字段中,或将光标移动到另一行时,Access 将提交您对表所做的更改。

  5. 默认情况下,Access 数据库中的字段设置为接受特定类型的数据,例如文本或数字。您必须输入字段设置为接受的数据类型。如果不输入,Access 会显示一条错误消息 -

让我们通过打开我们创建的 Access 数据库为表格添加一些数据。

database

在功能区中选择 Views → Datasheet 视图选项,并按照以下屏幕截图所示添加一些数据。

datasheet

同样,在第二个表中也添加一些数据,如下面的屏幕截图所示。

add data

您现在可以看到,在数据表视图中插入新数据和更新现有数据非常简单,就像在电子表格中工作一样。但是,如果您想删除任何数据,则需要先选择整行,如下面的屏幕截图所示。

insert data

现在按下删除按钮。这将显示确认消息。

access

单击 Yes ,您将看到所选记录已删除。

selected record

Ms Access - Query Data

查询是请求数据结果和对数据执行操作的请求。您可以使用查询来回答简单的问题、执行计算、组合来自不同表的数据,甚至添加、更改或删除表数据。

  1. 随着表的不断增大,它们可以拥有数十万条记录,这使得用户无法从该表中挑选出特定的记录。

  2. 使用查询,您可以将筛选器应用于表数据,以便只获得您想要的信息。

  3. 用于从表格检索数据或进行计算的查询称为选择查询。

  4. 用于增加、更改或删除数据的查询称为操作查询。

  5. 还可以使用查询为表单或报表提供数据。

  6. 在经过精心设计的数据库中,您想要通过使用表单或报表呈现的数据往往位于不同的表格中。

  7. 查询的棘手之处在于,您必须了解如何构建查询,然后才能真正使用它们。

Create Select Query

如果您只想查看表格中特定字段中的数据,或同时查看来自多个表格的数据,或者可能只是根据特定条件查看数据库,则可以使用 Select 查询。让我们现在来看一个简单的示例,其中我们将创建一个从 tblEmployees 表检索信息的简单查询。打开数据库并单击 Create 选项卡。

create select

单击 Query Design

query design

Tables 选项卡上的 Show Table 对话框中,双击 tblEmployees 表,然后 Close 对话框。

show table

在 tblEmployees 表中,双击您希望作为查询结果看到的那些字段。按照以下屏幕截图所示将这些字段添加到查询设计网格。

add fields

现在,单击 Design 选项卡上的 Run ,然后单击 Run

design

查询运行,并且仅显示查询中指定字段中的数据。

Ms Access - Query Criteria

查询条件可帮助您从 Access 数据库中检索特定项目。如果某个项目与您输入的所有条件匹配,它将显示在查询结果中。当您想基于字段中的值来限制查询结果时,可以使用查询条件。

  1. 查询条件是一个表达式,Access 会将它与查询字段值进行比较,以确定是否包含每个值所在的记录。

  2. 有些条件很简单,并且使用基本运算符和常量。其他的则很复杂,并使用函数、特殊运算符以及包括字段引用。

  3. 要向查询添加一些条件,您必须在设计视图中打开该查询。

  4. 然后,您标识要为其指定条件的字段。

Example

让我们来看一个简单的示例,其中我们在查询中使用条件。首先打开您的 Access 数据库,然后转到“创建”选项卡,然后单击“查询设计”。

query design

在“显示表”对话框的“表”选项卡中,双击 tblEmployees 表,然后关闭对话框。

tblemployees

现在让我们向查询网格中添加一些字段,例如 EmployeeID、FirstName、LastName、JobTitle 和 Email,如下面的屏幕截图所示。

query grid

现在让我们运行您的查询,您将仅看到这些字段作为查询结果。

query result

如果您只想看到 JobTitle 为 Marketing Coordinator 的那些字段,那么您需要为此添加条件。让我们再次转到“查询设计”,然后在 JobTitle 的“条件”行中输入 Marketing Coordinator。

marketing coordinator

现在让我们再次运行您的查询,您将看到仅检索了 JobTitle 为 Marketing Coordinator 的字段。

retrieved

如果您想为多个字段添加条件,只需在多个字段中添加条件。假设我们只想检索“Marketing Coordinator”和“Accounting Assistant”的数据;我们可以指定 OR 行运算符,如下面的屏幕截图所示 −

accounting assistant

现在让我们再次运行您的查询,您将看到以下结果。

run query

如果您需要使用 AND 运算符的功能,则必须在“条件”行中指定另一个条件。假设我们想检索所有 Accounting Assistants,但只检索 JobTitle 为“Pollard”的 Marketing Coordinators。

and operator

现在让我们再次运行您的查询,您将看到以下结果。

run query

Ms Access - Action Queries

在 MS Access 和其他 DBMS 系统中,查询不仅可以显示数据,还可以针对数据库中的数据执行各种操作。

  1. 操作查询是可以一次添加、更改或删除多条记录的查询。

  2. 增加的好处是您可以在Access中预览查询结果,然后再运行它。

  3. Microsoft Access 提供 4 种不同类型的操作查询 − 附加更新删除制作表

  4. 操作查询无法撤消。您应该考虑备份将使用更新查询进行更新的任何表。

Create an Append Query

您可以使用附加查询从一个或多个表中检索数据,并将该数据添加到另一个表中。让我们创建一个新表,其中我们将从 tblEmployees 表中添加数据。这将是用于演示目的的临时表。

让我们称之为 TempEmployees ,其中包含如下图所示的字段。

tempemployees
tempemployees table

Tables 选项卡上的“显示表”对话框中,双击 tblEmployees 表,然后关闭对话框。双击您要显示的字段。

table dialog box

让我们先运行您的查询来显示数据。

data first

现在让我们回到查询设计并选择 Append 按钮。

append

在“查询类型”中,选择“附加”选项按钮。这将显示以下对话框。

append table name

从下拉列表中选择表名,然后单击确定。

query1

在查询网格中,您可以在 Append To 行中看到默认情况下所有字段都被选中,除了 Address1 。这是因为 TempEmployee 表中没有 Address1 字段。因此,我们需要从下拉列表中选择字段。

appendto

我们来看一下 Address 字段。

address field

现在让我们运行您的查询,您将看到以下确认消息。

confirmation message

单击 Yes 以确认您的操作。

data added

当您打开 TempEmployee 表时,您将看到 tblEmployees 中的所有数据都被添加到 TempEmployee 表中。

Ms Access - Create Queries

让我们了解在本节中如何创建查询。

Create an Update Query

您可以使用更新查询来更改表中的数据,并且可以使用更新查询输入条件以指定应更新哪些行。更新查询为您提供了一个机会,让您在执行更新操作之前检查更新后的数据。我们再次转到“创建”选项卡,然后单击查询设计。

query design

在“表”选项卡上的“显示表”对话框中,双击 tblEmployees 表,然后关闭对话框。

close dialog box

Design 选项卡上的“查询类型”组中,单击更新并在其中更新值的字段上双击。让我们说我们想将 “Rex” 的 FirstName 更新为 “Max”。

design tab max

UpdateDesign 网格中,输入更新的值,在条件行中添加想要更新的原始值,并运行查询。这将显示确认信息。

update records

单击 Yes 并转到数据表视图,您将看到第一条记录 — FirstName 现已更新为“Max”。

first record

Create a Delete Query

您可以使用删除查询从表格中删除数据,并且可以使用删除查询输入条件来指定应删除哪些行。删除查询为您提供了机会来检查在执行删除之前将要删除的行。让我们再次转到 Create 选项卡,然后单击 Query Design

query design

在“显示表”对话框的“表格”选项卡上,双击 tblEmployees 表,然后关闭此对话框。

property sheet

Design 选项卡的 Query Type 组中,单击 Delete 并双击 EmployeeID

employee id

在设计网格的条件行中,输入 11。在这里,我们想要删除 EmployeeID 为 11 的员工。

description

现在,我们运行查询。此查询将显示确认信息。

display query

单击 Yes 并转到数据表视图,您将看到指定的员工记录现已删除。

specified record

Create a Make Table Query

您可以使用制作表格查询根据存储在其他表格中的数据创建新表格。让我们再次转到 Create tab 并单击 Query Design

query design

在“表格”选项卡,“显示表”对话框上,双击 tblEmployees 表,然后关闭此对话框。

make table

选择所有想要复制到其他表格的字段。

another table

在查询类型中,选择 Make Table 选项按钮。

make table button

您将看到以下对话框。输入您想要创建的新表格的名称,然后单击“确定”。

enter new table

现在运行您的查询。

run your query

您现在将看到以下消息。

undo command

单击 Yes ,您将看到导航窗格中创建了一个新表。

created new table

Ms Access - Parameter Queries

关于查询的最佳部分是您可以保存并一次又一次地运行同一查询,但是当您仅通过更改条件反复运行同一查询时,您可能考虑使查询接受参数。

  1. 如果您经常想要对特定查询的变化进行运行,请考虑使用参数查询

  2. 参数查询以交互方式检索信息,提示最终用户在运行查询之前提供条件。

  3. 您还可以指定参数应该接受的数据类型。

  4. 您可以为任何参数设置数据类型,但为数值、货币或日期/时间数据设置数据类型尤为重要。

  5. 当您指定参数应该接受的数据类型时,如果用户输入错误的数据类型(比如在需要输入货币时输入文本),则他们会看到更有帮助的错误消息。

  6. 如果将参数设置为接受文本数据,则任何输入都将被解释为文本,并且不会显示错误消息。

Example

现在,我们通过创建参数查询来了解一个简单的示例。让我们打开数据库,然后在“创建表”选项卡中选择“查询设计”。

temp2

双击 tblProjects 然后关闭 Show 对话框。

tblprojects

选择您希望作为查询结果显示的字段,如下面的屏幕截图所示。

select

在查询设计网格中,在 ProjectStart 列的“条件”行中键入 [Enter a project start data] 。字符串 [Enter a project start data] 是您的参数提示。方括号表示您希望查询要求输入,而文本 Enter a project start data 是显示的参数提示。

start date

现在,我们运行您的查询,您将看到以下提示。

parameter value

现在,让我们输入以下日期。

enter start data

单击“确定”以确认。

confirm

结果,您将看到该项目在 2/1/2007 开始的详细信息。让我们转到设计视图并再次运行查询。

details

按上面屏幕截图所示输入日期,然后单击“确定”。现在,您将看到该项目在 5/1/2008 开始的详细信息。

Ms Access - Alternate Criteria

查询有很多优势。您可以保存并多次运行相同的查询,并且很多时候您想要添加备选条件。

您可以通过以下两种方式添加备选条件:

  1. 您可以使用 OR 运算符组合两组条件。

  2. 您还可以使用查询设计网格,但不是在同一行上指定条件,您需要将其分隔成多行。

Example

让我们看一个备选条件的简单示例。打开数据库,然后在“创建”选项卡中选择 Query Design

query design employee

双击 tblEmployee 然后关闭“显示表”对话框。

select show table

双击您希望作为查询结果查看的所有字段。

query result field

您现在可以看到备用条件在 LastName 字段的不同行中指定。当您运行此查询时,您将看到姓氏为 PollardManning 的员工。现在让我们来运行此查询。

lastname

如您所见,由于备用条件,只有两名员工被检索到。

如果您希望在多个字段中添加备用条件,那么您将必须对所有字段使用不同的行。现在,让我们添加另一个备用条件,我们可以在其中检索姓氏为 PollardManning 或职称为 Accounting Assistant 的员工的信息。

现在让我们来运行此查询。

job title

您现在将看到以下结果。

result

Ms Access - Relating Data

在本章中,我们将了解有关关联数据的基础知识。在讨论并创建不同数据之间的关系之前,让我们回顾一下我们为什么要这样做。这一切都归结于标准化。

Normalization

数据库标准化,或简称标准化,是组织关系数据库的列(属性)和表(关系)以最大程度地减少数据冗余的过程。这是将数据拆分为多个表以提高整体性能、完整性和生命周期的过程。

  1. 标准化是组织数据库中的数据的过程。

  2. 这包括根据旨在既保护数据又通过消除冗余和不一致的依赖性使数据库更灵活的规则创建表和在这些表之间建立关系。

现在让我们看看下表,其中包含数据,但问题是这些数据相当冗余,这增加了在数据输入期间出现错别字和措辞不一致的可能性。

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

为了解决此问题,我们需要重新构建我们的数据并将其分解为多个表以消除一些冗余,如下面的三张表所示。

three tables

在这里,我们有一张用于客户的表,第二张用于订单,第三张用于曲奇。

这里的问题是,仅将数据拆分为多个表并不能说明一张表中的数据如何与另一张表中的数据相关。要连接多张表中的数据,我们必须向 Orders 表中添加外键。

Defining Relationships

关系通过匹配关键列中的数据来工作,通常是两张表中具有相同名称的列。在大多数情况下,该关系将一张表的主键(为每行提供唯一标识符)与另一张表中外键中的条目匹配。表之间有三种类型的关系。创建的关系类型取决于如何定义相关列。

现在,让我们深入了解三种关系类型−

One-to-Many Relationships

一对多的关系是最常见的关系类型。在这种关系类型中,表 A 中的一行可以在表 B 中有许多匹配的行,但表 B 中的一行只能在表 A 中有一行匹配的行。

例如,“客户”表和“订单”表具有一个一对多的关系:每个客户可以下许多订单,但每个订单只能来自一个客户。

Many-to-Many Relationships

在多对多关系中,表 A 中的一行可以有许多在表 B 中匹配的行,反之亦然。

您可以通过定义一个称为 junction table 的第三个表来创建这样的关系,其主键由表 A 和表 B 的外键组成。

例如,“客户”表和“Cookie”表具有多对多关系,该关系由这两个表中与“订单”表的每个一对多关系定义。

One-to-One Relationships

在一对一的关系中,表 A 中的一行最多只能在表 B 中有一行匹配的行,反之亦然。如果两个相关列都是主键或具有唯一约束,则会创建一对一的关系。

这种关系类型不常见,因为这样相关的大多数信息都将存储在一张表中。您可以将单一对一关系用于以下目的:

  1. 将一个表分成多列。

  2. 基于安全性隔离表的一部分。

  3. 存储使用寿命短且可以通过简单删除表轻松删除的数据。

  4. 存储只应用于主表子集的信息。

Ms Access - Create Relationships

在本章中,我们将了解创建相关表之间关系的必要性。良好的数据库设计目标之一是消除数据冗余。

  1. 为了实现该目标,您可以将您的数据分成许多基于主题的表,以便每个事实只出现一次。

  2. 为了做到这一点,所有相互关联的通用字段都放在一个表中。

  3. 为了正确执行此步骤,您必须先了解表之间的关系,然后在 Access 数据库中指定这些关系。

Why Create Table Relationships?

当您需要在数据库对象中使用表时,MS Access 使用表关系连接表。在创建其他数据库对象(例如窗体、查询、宏和报表)之前,您应该创建表关系的原因有多个。

  1. 要使用来自多个表中的记录,您通常必须创建连接表的查询。

  2. 查询通过将第一个表中的主键字段中的值与第二个表中的外键字段进行匹配来工作。

  3. 当您设计窗体或报表时,MS Access 会使用它从您已定义的表关系中收集的信息来向您提供明智的选择,并使用适当的默认值预填充属性设置。

  4. 当您设计数据库时,您会将信息分成多个表,每个表都有一个主键,然后向引用这些主键的表中添加外键。

  5. 这些外键 key-primary key pairings 构成了表关系和多表查询的基础。

现在,让我们使用表设计在您的数据库中添加另一个表,并将其命名为 tblHRData ,如下面的屏幕截图所示。

table design

单击 Save 图标,如上面的屏幕截图所示。

save icon

输入 tblHRData 作为表名,然后单击 Ok

tblhrdata

tblHRData 现在已创建并包含数据。

Ms Access - One-To-One Relationship

现在,让我们了解 MS Access 中的一对一关系。此关系用于将一个表中的一条记录与另一个表中的一条且仅一条记录关联起来。

现在,让我们转到 Database Tools 选项卡。

tblhrdata

单击 Relationships 选项。

relationships

选择 tblEmployeestblHRData ,然后单击“添加”按钮,将它们添加到我们的视图中,然后关闭 Show Table 对话框。

add to view

若要在这两个表之间创建关系,请使用鼠标,单击并按住 tblEmployees 中的 EmployeeID 字段,在将鼠标悬停在 tblHRData 中的 EmployeeID 上时,将该字段拖放到我们想要关联的字段上。当你释放鼠标按钮,Access 就会打开以下窗口 −

edit relationships

上面的窗口将 tblEmployees 的 EmployeeID 与 tblHRData 的 EmployeeID 关联起来。现在让我们单击 Create 按钮,现在这两个表已经相关。

two tables created

现在关系会自动保存,无需单击“保存”按钮。既然我们已经创建了最基本的关系,现在让我们转到表侧以了解此关系发生了什么。

让我们打开 tblEmployees 表。

employee table

此处,在每条记录的左侧,默认情况下你将看到一个小的加号。当您创建关系时,Access 会自动向该表添加一个子数据表。

sub datasheet

让我们单击加号按钮,您将看到与此记录相关的信息位于 tblHRData 表上。

hire date

单击 Save 图标并打开 tblHRData ,您将看到我们输入的数据已经在此处。

entered data

Ms Access - One-To-Many Relationship

您的大多数关系很可能都是一对多的关系,其中一个表中的一个记录有可能与另一个表中的许多记录相关联。

创建多对一关系的过程与创建一对一关系的过程完全相同。

one to many

我们首先通过单击 Clear Layout 中的 Design tab 选项来清除布局。

database tools

我们首先将添加另一个表 tblTasks ,如下面的屏幕截图所示。

task table

单击 Save 图标,输入 tblTasks 作为表名,然后转到 Relationship 视图。

task relationship

单击 Show Table 选项。

show table task

添加 tblProjectstblTasks 并关闭 Show Table 对话框。

add projects

我们可以再次运行相同的过程以关联这些表。单击并按住 tblProjects 中的 ProjectID,然后将其一直拖到 tblTasks 中的 ProjectID。此外,当您松开鼠标时,将弹出一个关系窗口。

projectid

单击创建按钮。我们现在已经创建了一个非常简单的关系。

created relationship

Ms Access - Many-To-Many Relationship

在本章中,让我们了解多对多关系。要表示多对多关系,您必须创建一个第三张表(通常称为交集表),该表将多对多关系分解为两个一对多关系。为此,我们还需要添加一个交集表。让我们首先添加另一张表 tblAuthers

tblauthers

现在让我们创建一个 many-to-many relationship 。我们有多个作者在从事多个项目,反之亦然。如您所知,我们在 tblProjects 中有一个 Author 字段,因此我们为其创建了一个表。我们不再需要此字段。

tblauthers description

选择 Author 字段并按删除按钮,您将看到以下消息。

dialog box

单击 Yes 。现在我们必须创建一个交集表。此交集表包含两个外键,如下面的屏幕截图所示。

foreign keys

这些外键字段将是连接在一起的两个表的主键,即 tblAutherstblProjects

要在 Access 中创建复合键,请选择这两个字段,然后在 table tools design 选项卡中,您可以直接单击该主键,这将标记这两个字段,而不仅仅是一个字段。

table tools design

这两个字段的组合是 tables’ unique identifier 。现在让我们将此表另存为 tblAuthorJunction

将多对多关系结合在一起的最后一步是返回到该 relationships view ,然后通过单击 Show Table 来创建这些关系。

选择上面突出显示的三个表,然后单击添加按钮,然后关闭此对话框。

highlighted tables

单击并拖动 tblAuthors 中的 AuthorID 字段,然后将其放在 tblAuthorJunctionAuthorID 上。

tblauthers junction

您正在创建的关系是 Access 会将其视为一对多关系的关系。我们还将强制参照完整性。让我们现在打开 Cascade Update ,然后单击 Create 按钮,如上面的屏幕截图所示。

cascade

现在让我们按住 ProjectID ,然后直接从 tblAuthorJunction 将其拖放到 ProjectID 上。

referential key

我们将 Enforce Referential IntegrityCascade Update Related Fields

cascade update

以下是多对多关系。

many to many

Ms Access - Wildcards

通配符是特殊字符,可以在文本值中代表未知字符,并且非常适合于查找具有相似但不相同数据的多个项目。通配符还可以帮助根据特定模式匹配获取数据库。

Access 支持两组通配符,因为它支持两种结构化查询语言标准。

  1. ANSI-89

  2. ANSI-92

一般来说,在对 Access 数据库(例如 .mdb.accdb 文件)运行 queriesfind-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 对话框。

paste errors

在查询网格中添加想要作为查询结果查看的字段。

add query grid

运行查询。

run query project

让我们再次转到 query design 并添加项目名称提示符。

query2

现在运行查询,让我们假设你不知道确切的项目名称,但你知道项目名称包含单词“potion”。单击 Ok

potion

上述步骤不会生成任何结果。这是因为 Access 正在 project name field 中寻找完全匹配。它正在寻找名称中包含单词 potion 的项目。

如果你想要让用户输入通配符来替换未知字符,那么你需要调整条件并包括运算符 like

like operator

运行查询时,用户可以使用通配符替换任意数量的字符。

number of characters

让我们假设你知道单词 potion 出现在标题中的某处,但你无法确定具体位置。

你可以在 potion 前添加一个 * 来替换任意数量的字符,然后在后面再添加一个 。单击 *Ok

add potion
potion scroll

用户了解他们可以输入哪些通配符总是有益的。但有些用户可能不知道他们可以和不可以输入哪些通配符。在这种情况下,你可以自己输入通配符。

在这种情况下,我们可以在 Like 运算符和我们的参数提示符之间添加这些通配符,现在我们必须用一种非常明确的方式来编写它。在带引号的 like 词后,输入我们正在使用的通配符。在这种情况下,我们使用了“ ” to replace any number of characters. We will now add this to the parameter. To do so, we need ampersand *(&) 符号和一个空格。现在,我们将重复此操作,并添加另一个和号 (&),因为我们正在将该通配符连接到用户为该项目名称输入的任何条件,然后在引号中输入“*”。

like enter name

我们现在重新运行查询。在提示中输入单词 potion ,不使用通配符。

potion

该查询现在将在此处输入内容的任一侧跟踪这些通配符。我们需要直接输入药剂并按 Enter。

potion scroll

我们现在得到了我们想要的结果,无论用户输入什么,结果都将相同。

让我们假设我们要查找标题中包含单词“the”的每个项目。然后,您只需要输入该单词和 Enter 或单击 Ok

the parameter
mother word

使用此查询,可以更容易地搜索名称中包含单词“the”的项目。第 2 级结果可能还包含单词“the”是其中一部分的单词“mother”的项目名称。

Ms Access - Calculated Expression

在 MS Access 中,表达式类似于 Excel 中的公式。它包含许多元素,可以单独或组合使用以产生结果。表达式可以包括运算符、常量、函数和标识符。

  1. 表达式可用于执行各种任务,从获取控件的值或向查询提供条件,到创建计算控件和域,或定义报表的分组级别。

  2. 在本章中,我们将重点关注创建一种非常特定的表达式,称为计算表达式。我们将创建几个计算域,它们将计算和显示数据库本身中没有存储的任何数据,而是从存储的单独域中计算得出的。

我们现在有一个包含更多要计算数据的新 Access 数据库。

Example

让我们尝试一个示例来理解这一点。我们将从各种表—— tblCustomers, tblOrders, tblOrdersDetailstblBooks 中检索一些信息并查看各种域。

reviewing

我们现在运行查询,您将看到以下结果。

subtotal

我们想要一个非常简单的子计计算,该计算将采用订购的书籍数量并乘以该书籍的零售价。最好在每个表达式或任何表达式开头为要调用的字段指定一个名称。我们称之为 subtotal

expression

完整表达式 (Subtotal: [tblOrdersDetails]![QTY] [tblBooks]![RetailPrice])* 包括表名,首先是 tblOrdersDetails 放在方括号内,因为那里是我们数量域所在的地方。现在一个感叹号告诉 Access 在该表中查找 QTY 域,并将其乘以 tblBooks 中的零售价域。

让我们尝试运行您的查询,您将在末尾看到子计字段。

subtotal field

假设我们要计算我们的销售税。在查询网格中,我们会以与之前完全相同的方式操作,这次我们将把该域简单地称为 Tax,然后将 Subtotal 乘以百分之九的税率。

simply tax

让我们再次运行您的查询,您将在末尾看到新的 Tax field

subtotal field

Ms Access - Indexing

索引是一种数据结构,一种特殊的数据结构,旨在提高数据检索速度。如果您经常按特定字段搜索表或按该字段对记录进行排序,则可以通过为该字段创建索引来加快这些操作。Microsoft Access 在表中使用索引的方式与您在书中使用索引查找数据的方式相同。

  1. 在某些情况下,例如对于主键,Access 会自动为您创建索引。

  2. 在其他情况下,您可能希望自己创建索引。

  3. 索引会根据您选择用于建立索引的字段或字段来存储记录的位置。

  4. 在 Access 从索引中获取位置后,其可通过直接移动到正确的位置来检索数据。

  5. 通过这种方式,使用索引可能比扫描所有记录以查找数据快得多。

  6. 索引可以在查询中加快搜索速度,但它们也会在添加或更新记录时降低性能。

现在让我们来了解 Microsoft Access 默认创建的索引以及我们如何自己创建索引,并学习删除任何不必要的索引。在 Access 数据库中打开我们创建的 tblEmployees 表。

  1. 我们在该数据库中实际没有使用索引,但这并不意味着没有索引。

  2. 事实上,在 Access 中设置为主键的任何字段都会自动建立索引。

  3. Access 会根据字段的名称创建其他二级索引。

现在,让我们转到“文件”菜单,然后选择“选项”。

file menu

您将看到“Access 选项”窗口。

object designer

转到 Object Designers ,您将看到一个标题为“导入/创建自动编制索引”的部分,并在文本框中看到 ID;key;code;num。默认情况下,Access 会自动为以这些名称开头或结尾的字段添加二级索引,这适用于您导入的字段以及您手动创建的字段。

如果要使任何字段建立索引,可以转到 Field 选项卡。

indexed

选择您希望建立索引的任何字段,然后选中“字段验证”部分中的“已建立索引”复选框。您还有替代选项可以创建或删除索引。您可以返回 Design View

design view

您可以通过选择任何字段来调整索引。您还可以在下面的字段属性区域中查看它们的建立索引方式。具有 No 下拉菜单项旁边选定的任何字段表示该指定字段没有索引。您可以通过单击下拉菜单并选择其他两个选项( Yes (Duplicate OK)Yes (No duplicates) )来更改该选项。

compression

最后一个选项 Yes (No Duplicates) 表示 Access 将自动禁止该字段中的重复值。现在让我们为我们的姓氏字段创建索引。

duplicate

让我们选择 LastName 建立索引并说 Yes (Duplicates OK) 。当我们保存时,Access 将创建该索引。您可以查看和调整表索引的另一个区域是 Show/Hide 组中的“表设计”区域。

duplicate yes

如果您单击此“索引”按钮,则会弹出一个特殊视图,显示针对该表创建的所有索引。

special view

我们现在有两个 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 包括日期/时间字段的字段值方差

让我们打开数据库,转到查询设计并包含以下表格 -

tblbooks

关闭此对话框,以下两个字段将显示在查询网格中,如下面的屏幕截图所示。

screenshot

这是一个简单的查询,我们只显示了两个字段—— book titlequantity ,当我们运行它时,我们将在我们的数据库中看到每一个单个订单。

现在让我们运行这个查询,您将看到以下结果。

individual order

这就是书名重复的原因。此处为每本图书分别下了不同的订单,并且它们订购的数量不同。让我们假设我们只想查看只列出一次的书名的摘要。然后列在其旁边的数量之和。

现在让我们转到设计视图,在设计选项卡中,您会看到一个西格玛符号。这是您的总计按钮。

screenshot

单击西格玛符号,它将在表格行中的字段下方打开另一行,您可以在此指定如何对该查询进行分组。

groupby

现在我们按书名进行分组,并对数量字段进行求和。

如果我们单击 group by area 并进一步单击下拉菜单,所有的选项都将被列出来。在本例中,我们将选择选项 Sum ,然后运行您的查询。

sum

现在您可以看到每本书,以及所有单笔订单,这些订单显示在书名旁边。

individual

Concatenation in Access

我们学习了规范化的过程,将信息存储在不同的字段中。有时您希望一起查看或查看数据,例如将名字和姓氏字段合并为单个字段。您可以通过创建一个连接一个或多个字符串的计算字段来一起显示这些信息。您还可以添加您想要的其他字符,如逗号或句点。

  1. 要联接 Access 中,可以使用两种不同的运算符 ampersand (&)plus (+) 符号。

  2. “和”符号会将两个字符串合并为一个字符串,而加号会将两个字符串合并并传播 NULL 值,例如,如果一个值为 NULL,整个表达式计算结果为 NULL。

Example

让我们举一个简单的例子来理解使用查询设计创建新查询的过程。这将是一个非常简单的查询,它将从客户表中提取信息。

现在,让我们添加 tblCustomers 关闭表的表格对话框。我们尝试将一些简单的命名字段与一些连接进行连接。

tblcustomers

现在,让我们添加名和姓字段并运行查询。

如你所见,名和姓被分成了两个不同的字段。

table name

我们需要一起显示这些信息。

info together

回到 Design View ,并在第三个字段创建一个名为 full name 的新字段。现在,添加全名并输入将这两个字段连接在一起的表达式。

design view full name

让我们运行查询,然后你将看到一个新的计算字段。

calculated field

它可以连接来自这两个字段的信息,但它并非完全按照我们希望的方式显示。它将所有文本运行在一起,因为它正在按照我们要求的方式执行。现在,我们将不得不要求 Access 在这两个字段的信息之间添加空格。

现在让我们回到设计视图并向该表达式添加另一个部分。

design view full name

在引号内添加一个空格和另一个和号。这使得 Access 取自名字段的信息;用空格将它添加,然后在最后添加姓字段的信息。现在,再次运行查询,然后你将看到以下结果。

calculated field

Ms Access - Summarizing Data

如果你只想要一个特定的数字,汇总查询非常棒,但是,如果你想要汇总信息,比如电子表格式汇总,你可能想要考虑尝试交叉表查询。当您想要重组汇总数据,以便更轻松地阅读和理解时,请考虑使用 Crosstab Query

  1. 交叉表查询是一种 Select Query 。当您运行交叉表查询时,结果将显示在数据表中。该数据表与其他类型的数据表具有不同的结构。

  2. 与显示相同数据的一个简单选择查询相比,交叉表查询的结构可以使其更容易阅读,如下面的屏幕截图所示。

迄今为止,创建 Access 交叉查询的最简单方法是直接使用 Access 自带的向导来创建交叉查询。现在我们转到“创建”选项卡,进入“查询”组,然后单击“查询向导”。

new query

在上面的对话框中,可以看到各种特殊查询。你可以创建一个简单的查询向导,就像我们迄今为止一直从设计视图执行的操作一样。第二个查询向导是我们想要的——以紧凑型电子表格格式显示数据的交叉查询。现在,选择交叉查询,然后单击“确定”。

crosstab

向导中的第一个屏幕会提示你的交叉查询结果中包含哪些字段的表或查询。单击“ Queries ”单选按钮,然后选择“ qryOrdersInformation ”——这是我们之前创建的包含小计、销售税等的表格。单击“ Next ”。

crosstab query

现在我们将查看该查询中可用的字段。系统会提示你输入要作为行标题的字段值。假设我们希望按我们所有不同的书名生成一个简单列表。现在,选择书名字段,然后将其发送到所选字段区域,并单击“ Next ”。

transaction

在上面的对话框中,问题是你希望将什么用作列标题,这实际上取决于你的评估内容。假设你要查看我们的“ sales by date ”,选择“ TransactionDate ”,然后单击“ Next ”。

transaction date

由于我们选择了日期时间列,因此上面对话框中的问题是一个专门提出的问题,基于我们之前选择字段。它询问我们是否希望按特定的间隔对我们的日期时间列信息进行分组。选择年份选项,然后单击“ Next ”。

function

上面对话框屏幕中的下一个问题询问你希望为行交集中的每一列计算什么数字。在这种情况下,我们可以按所售书籍的数量进行计算,选择“ quantity (QTY) ”,从函数中求和,然后单击“ Next ”。

view query

向导的最后一个屏幕将询问“ what do you want to name your query ”,然后单击“ Finish ”以“ View that query ”。

finish query

我们现在获得按书分类的信息以及总销售额等信息,例如每一销售额何时发生。

Ms Access - Joins

数据库是一个数据表集合,这些数据表允许相互进行逻辑关系。你可以使用关系通过表中公共的字段来连接表。一个表可以是任意数量的关系的一部分,但每个关系始终恰好有两个表。在查询中,关系由 Join 表示。

What is Join

联接指定如何在一个数据库中的两个或多个表中组合记录。从概念上来说,联接与表关系非常相似。实际上,联接对于查询就像关系对于表一样。

以下是本章将讨论的两种基本类型的联接 −

  1. The inner join

  2. The outer join

两者都可以轻松地从 queries design view 中创建。

Inner Join

现在让我们了解 Inner Join

  1. 最常见的联接类型是内部联接,这也是 Microsoft Access 中的默认联接类型。

  2. 内部联接将仅显示两个表中联接字段相等的那些行或记录。

  3. 这种联接类型查看那些公共字段和其中包含的数据。它仅显示匹配项。

inner join

Outer Join

现在让我们了解 Outer Join 是什么 −

  1. 外部联接将显示来自一个表的所有行,以及只显示来自联接字段相等的另一个表的那些行或记录。

  2. 换句话说,外部联接显示来自一个表的所有行,以及来自另一个表中仅对应的行。

outer join

还有其他联接类型 −

Left Outer Join & Right Outer Join

让我们理解 Left Outer JoinRight Outer Join -

  1. 你可以选择显示所有行的表格。

  2. 你可以创建左外连接,它将包含第一个表格的所有行。

left join
  1. 你可以创建右外连接,它将包含第二个表格的所有行。

right join

让我们转到 Create 选项卡,从 Design View 创建一个查询。选择 tblProjectstblTasks ,关闭“显示表格”对话框,如图所示。

tbltasks

添加 tblProjects 中的 ProjectName 字段,以及 tblTasks 表格中的 TaskTitle, StartDateDueDate

add projectname

让我们运行这个查询。

project details

我们只显示了几个项目的记录。一些项目有很多与该项目相关联的任务,这些信息通过 ProjectID 字段关联。

  1. 当我们在Microsoft Access中创建这个查询时,Access是从我们创建的关系中获取这种关系。

  2. 默认情况下,它会在这两个表格之间创建所谓的 Inner Join between these two fields ,这就是它如何从这两个表格中关联这些信息。

  3. 它只向我们显示匹配项,因此,当我们运行此查询时, tblProjects 中列出了很多其他未显示为该查询记录集一部分的项目,这是因为这两个表格是如何通过内连接连接在一起的,这再次是任何查询的默认连接。

但是,如果你想改变关系,假设你想创建外连接,或者换句话说,显示 tblProjects 的所有项目,该表格中的所有记录以及 tblTasks 中的所有任务——打开连接属性;只需双击关系行即可。

join properties

Access将在连接属性对话框中显示左表格名称和右表格名称。

  1. 左列名和右列名,第一个单选按钮仅仅只包含两个表格的连接字段相等的行,那便是内连接,在创建关系以及在查询中创建连接时默认选择这个选项,但是你可以更改它。

  2. 我们还有两个其他选择;我们可以包含 tblProjects 中的所有记录,以及仅包含连接字段相等的 tblTasks 中的那些记录,此操作为左外连接。

  3. 我们有第三个选项,包含tblTasks中的所有记录,以及仅包含连接字段相等的tblProjects中的那些记录,此操作为右外连接。

这些是你能从“设计视图”轻松创建的不同类型的连接。我们选择第二个选项,即左外连接,然后单击 Ok

让我们看看其他步骤 -

other steps

当你查看关系行时,你会看到一个指向 tblTasksProjectID 的小箭头。当你运行此查询时,你将看到以下结果。

arrow pointing results

如您所见,它向我们展示了每个项目的名称,无论它是否具有关联的任务。您还将看到许多空字段。所有这些都将为空,因为在这些字段来自的 tblTasks 中没有相关信息。现在,让我们再次转到 Design View ,然后双击关系线。

related task

在“联接属性”对话框中,选择第三个选项,即右外联接,然后单击 Ok

other steps

现在,看看我们的关系线。您将看到一个箭头现在指向 tblProjects 中的 ProjectID 。当您运行此查询时,您将看到以下结果。

relationship line

Self-Joins

自联接是另一种类型的联接。自联接关联同一表内匹配的字段。例如,查看具有主管字段的员工表,该字段引用存储在同一表内另一个字段(员工 ID)中的同类数字。

self joins

如果我们想了解 Kaitlin Rasmussen 的主管是谁,我们将不得不获取存储在该主管字段中的号码并在完全相同的表内该员工 ID 字段中查找它,才能知道 Charity Hendricks 是主管。

此表不是关系数据库的理想结构,因为它未经过规范化。

如果我们有一种情况,即我们想创建仅列出员工姓名及其主管姓名的查询,则除非我们创建自联接,否则我们无法轻松查询它。

要查看自联接,请使用以下字段创建一张表并输入一些数据。

create table

在这里,我们再次想创建一个包含员工名字和主管姓名的列表。让我们从 query design view 创建查询。

现在,添加 tblEmployees 表。

add tblemployees

关闭此对话框。

现在,为我们的员工添加名字和姓氏。

names of employee

我们现在需要一种方法在此表及其自身之间创建关系。为此,我们需要打开 the show table dialog box 并再次添加 tblEmployees。

show table dialog box

我们在本查询视图中创建了相同表的另一份副本。现在,我们需要创建自联接。为此,单击 tblEmployees 表中的主管,按住鼠标按钮,将其直接拖到复制表 tblEmployees_1 中的 EmployeeID 上方。然后,从该复制表中添加名字和姓氏。

create self join

现在让我们运行您的查询,您将看到以下结果。

display names

它显示员工的名字和他们主管的名字。这是如何在 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

duplicate query

查找重复查询向导的第一个屏幕会询问要搜索可能的重复项的哪个表或哪个查询。假设我们想要检查作者表以确保同一作者未无意输入两次。因此,选择 tblAuthors 并单击 Next

view table
author id
  1. 向导中的第二个屏幕将询问哪些字段可能包含重复信息。

  2. 通常,你不会使用主键字段,因为当你在 Access 中将字段指定为主键时,Access 将不允许输入重复项。

  3. 我们将查看任何其他字段或字段的组合。

我们可以按姓或名和姓搜索,也可以按他们的街道地址搜索,也可以更具体地按他们的电话号码或生日搜索。

我们现在按名、姓和生日搜索,然后点击 Next

date created

该向导的以下屏幕将要求输入我们希望在查询中显示的字段。为此,点击双箭头,所有字段都将移至其他查询字段区域,并将会添加到我们的查询结果中。

additional query

我们现在点击 Next 。它将带我们进入该查询向导的最后一个屏幕。

next query wizard

在以下屏幕中,输入你希望如何命名查询。

view result

默认情况下,它将为其命名 find duplicateswhatever the name of the object that you’re querying 。在这种情况下, tblAuthors ,但你也可以为其提供任意其他名称,然后点击 finish

此处,Access 找到了一个可能的重复项,作者 Jose Caline,他有相同的生日、地址、电话号码但有不同的 AuthorID。

possible duplicate

这一定是无意间重复输入了两次。我们现在已经将所有字段添加到查询中,我们能直接删除记录。我们还必须确保在其他表中没有与此相关的记录。

related records

选择任何记录,然后在以下对话框中选择“删除”。

delete record

Access 会提示你“您即将删除一条记录。”如果你要继续,请点击“是”。

如果你想查看该向导创建该查询的方式,请进入设计视图,查看该向导向该查询添加了哪些内容。

added list

正如你在以上屏幕截图中所看到的,我们的字段及一些特定的条件在名字段的下方。

specified criteria

这是该向导搜索重复信息的方式。这是迄今为止查找重复项最简单的方法。

Ms Access - Unmatched Query Wizard

在 Access 中,还有另一个非常有用的向导,即 Find Unmatched Query Wizard 。查找不匹配查询向导创建一个查询,该查询查找表中没有另一个表中相关记录的记录或行。

正如我们先前讨论的那样,数据如何在查询中连接在一起,以及大多数查询如何查找两个或更多表之间的匹配项。

matched
  1. 例如,这是 Access 中的默认联接,如果您使用两个表 tblCustomerstblOrders 设计一个查询,并通过 CustomerID 来联接这两个表,则此查询将仅返回匹配的结果。换句话说,就是下过订单的客户。

  2. 有时,我们不想看到匹配项,例如,我们可能不想看到数据库中的某个客户(尚未下过订单的客户)。

not placed orders
  1. 这正是查找不匹配项查询所做的。

此类查询还有许多其他可能的用途。

在我们的数据库中,我们可以使用它来查看哪些作者尚未编写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。现在让我们打开包含 CustomersOrders 表的数据库;转到“创建”选项卡并单击查询向导按钮。

选择 Find Unmatched Query Wizard 并单击 Ok

unmatched

在此场景中,我们将找出尚未下订单的客户。在第一个屏幕中,它询问包含查询结果记录的表或查询。

我们现在想要 tblCustomers 中的客户列表。选择该选项并单击 Next

customers table

在以下屏幕中,您需要指定 which table or query contains the related records 。换句话说,您使用哪个表与第一个表进行比较。为此,我们需要找到尚未下订单的那些项目。我们需要选择包含所有订单信息的表 tblOrders 。现在,单击 Next

tblorders

在以下屏幕中,您需要指定两张表中包含哪些信息。

  1. 这通常是一些主键、外键、字段或关系。

  2. 如果您在数据库中已有现成的关系,Access 会为您自动选择和匹配这些字段。

  3. 但是,如果您有其他可以一起联接的字段,并包含类似信息,则也可以在此处进行选择。

此处,我们在“tblCustomers”字段和“tblOrders”字段中默认选择了 CustID。现在,单击 Next

custid

在以下屏幕中,您可以选择想要在查询结果中显示的字段。

selected files

现在让我们选择所有可用字段并单击双箭头。这将把所有 available fields 移动到 selected fields 区域。现在,单击 Next

first order

最后一个屏幕将允许您为查询选择一个名称并单击 Finish

without matching

这里我们列出了尚未向我们下订单的某个客户。

customer listed

您还可以了解如何创建该查询。为此,您需要返回到 Design View

is null

此向导在 tblCustomer 和 tblOrders 之间创建了 Outer Join ,并且 Is Null 条件已添加到 tblORders 中的 CustID。这样做是为了排除某些记录。在本例中,这些记录是已下达订单或在 tblOrders 中有相关信息的客户。

Ms Access - Create Form

Access 中的表单就像商店中的展示柜,可以更容易地查看或获取你想要的产品。由于表单是你可以或其他用户可用于添加、编辑或显示存储在你 Access 桌面数据库中的数据的对象,因此你的表单设计是重要因素。你可以使用 Microsoft Access 中的表单进行许多方面的设计。你可以创建两种基本类型的表单 -

  1. Bound forms

  2. Unbound forms

Bound Forms

我们现在了解一下什么是 Bound Forms -

  1. 绑定表单连接到一些基础数据源,例如表、查询或 SQL 语句。

  2. 当人们想到表单的目的是什么时,他们通常都会想到绑定表单。

  3. 表单应填写或用于输入或编辑数据库中的数据。

  4. 绑定表单的示例通常是用户用来在数据库中输入、查看或编辑数据。

Unbound Forms

让我们查看未绑定表单 -

  1. 这些表单不连接到基础记录或数据源。

  2. 未绑定表单可以是对话框、交换板或导航表单。

  3. 换句话说,未绑定表单通常用于导航或与整个数据库交互,而不是数据本身。

Types of Bound Forms

在 Access 中,您可以创建多种类型的绑定表单。我们来了解一下类型 −

Single Item Form

这是最流行的一种,其中会显示记录——一次显示一条记录。

Multiple Item Form

这会显示来自该绑定数据源的多个记录。

Split Form

表单被分成两半,垂直或水平。一半会显示一个单项或记录,另一半会显示一个列表或提供基础数据源的多个记录的数据表视图。

Creating Forms

有几种方法可以在 Access 中创建表单。为此,打开您的数据库并转到 Create tab 。在右上角的“表单”组中,您会看到“表单向导”按钮。

form wizard

单击该按钮以启动表单向导。

在此向导中的第一个屏幕上,您可以选择想在表单中显示的字段,并且可以选择从多个表或查询中的字段。

我们假设我们只需要一个简单的表单,用于输入我们的员工信息。

Tables/Queries 下拉列表中,选择 tblEmployees 表。单击双箭头一次移动所有字段。

form wizard field

我们只使用此表,然后单击 Next

select job file

表单向导中的下一个屏幕将询问我们希望表单采用何种布局。我们有 columnar, tabular, datasheet and justified 布局。我们在此处选择“列式”布局,然后单击 Next

layout

在以下屏幕中,我们需要为表单指定一个标题。我们将其命名为 frmEmployees

为表单指定标题后,您可以打开表单以查看表单的外观,或可以开始向表中输入信息。或者,您可以选择修改表单设计的选项。我们选择第一个选项 open the form to view or enter information ,然后单击 Finish

open form

现在,请看以下屏幕截图。这就是您表单的外观。这是一个单项表单,这意味着一次显示一条记录,在下方您可以看到导航按钮,这告诉我们这是正在显示 9 条记录中的第 1 条。如果您单击该按钮,它将移动到下一条记录。

one record

如果您想跳转到该表单或该表中的最后一条记录,则可以使用位于该右箭头旁边的按钮,一个箭头后边带有一条线,那是最后一条记录按钮。如果您想添加新的员工信息,则转到这些记录的末尾,然后在 9 条记录后,您会看到一个空白表单,您可以在其中开始输入新员工的信息。

employee information
new form

这是一个使用表单向导创建表单的示例。现在,让我们关闭此表单并转到“创建”选项卡。现在,我们将使用向导创建稍复杂的表单。单击“表单向导”,这次,我们将从几个不同的表中选择字段。

在此表单向导中,让我们选择 tblProjects 用于 Tables/Queries ,并选择一些可用的字段,例如 ProjectID、ProjectName、ProjectStart 和 ProjectEnd。这些字段现在将移动到所选字段。

form budget

现在,选择 tblTasks 以使用表/查询,并发送 TaskID、ProjectID、TaskTitle、StartDate、DueDate 和 PercentComplete。单击 Next

available fields
single form

在这里,我们希望从几个不同的对象中检索数据。我们还可以选择如何安排表单的选项。如果我们想要创建一个扁平的表单,则可以选择按 tblTasks 进行排列,这将创建那个单一的表单,所有字段都以扁平视图进行布局,如上所示。

但是,如果我们想要基于一对多的关系创建一个分层表单,则可以选择按tblProjects排列数据。

subform

在上面的窗口中,我们有一个选项,可以为 tblTasks 包含 subform ,或者我们可以将其制作成一个链接的表单。此链接表单是 tblProjects 将具有一个按钮的位置,该按钮将启动过滤到我们在该基础项目表单中选择的项目的第二个表单。现在,让我们选择 Form with subform(s) ,然后单击 Next

在以下屏幕中,您可以为子表单选择一个布局。默认情况下选择数据表视图。数据表视图类似于表视图。现在,单击 Next

datasheet form

在以下屏幕中,您需要为您的表单提供一个名称。输入您想要的名称并单击 Finish

frm projects

Access 将为您提供表单的外观预览。在顶部,您可以在主表单上进行控制,它来自我们的 Projects 表。向下滚动,您将看到一个子表单。它就像一个表单中的表单。

project tables

Multiple Item Form

您可能还希望创建特定类型的表单。为此,您可以单击 More Forms 下拉菜单。

multiple items

从菜单中,您可以创建一个 Multiple Items 表单、一个 Datasheet 表单、一个 Split 表单,甚至一个 Modal Dialog 表单。这些通常是绑定表单;选择您想要绑定到该表单的对象。这不适用于模态对话框表单。

要创建这种类型的表单,您首先需要在导航窗格中选择对象。让我们在此处选择 tblEmployees

employee form

通过单击 More FormsMultiple Items 继续。

more forms

以上步骤将进一步创建一个多项表单,列出所有员工。

Split Form

这种类型的表单平均分为两半,垂直或水平。一半显示单个项目或记录,另一半显示来自基础数据源的多个记录的列表或数据表视图。

现在,让我们在导航窗格中选择 tblEmployees ,然后在 Create 标签中,从“更多表单”菜单中选择 Split Form 选项,您将看到其中一个表单纵向划分的表单。

split form

Ms Access - Modify Form

我们已经学习了几种创建简单数据输入表单的方法。虽然表单简化了数据输入进程;但这些可能无法满足您想要的其他目的。它们可能不会像您预期的那样引人注目或用户友好。

  1. 在创建表单后,您可能会想要做的第一件事是重新调整控件的大小或移动控件。

  2. 您可能还需要添加控件或删除控件。

现在,我们将讨论如何轻松地修改表单。

Controls

它仅仅描述了表单或报表中用于显示数据、执行操作或作装饰的物品的通用术语,比如线条。换句话说,控件就是任何放置在表单或报表上的内容。

以下可以看作是控件:

  1. Objects such as labels.

  2. 用来添加、编辑甚至计算表达式的未绑定或绑定的文本框。

  3. 执行操作的命令按钮,如 Save, Open 电子邮件或 Print ,这些按钮也被称为控件。

  4. 它仅仅是用来表示表单或报表中任何物品的通用术语。

我们现在将了解有关使表单美观并了解如何编辑和修改表单的不同方面。让我们现在打开从 tnlEmployees 列出所有员工的多项表单。

edit form

正如你所看到的员工列表,但并不像非常用户友好的列表。我们的控件超出了大小。它们太大,间距分布开,没有提供非常有用的列表视图。

如需编辑此表单上控件的外观,你可以使用两个表单视图。在主页选项卡中,单击 View 下拉菜单。

appearance controls

你有布局视图或设计视图,并且这两个视图都用于编辑你的表单。默认情况下打开表单视图;这是你用来与基础数据源交互或编辑的视图。

若要编辑表单本身的外观,我们需要首先转到布局视图。

form itself

当你切换到布局视图时,你会看到一系列上下文选项卡出现。

在 Access 的顶部,你会看到一个标记为 Form Layout Tools 的区域,其中有三个选项卡——设计选项卡、排列选项卡和格式选项卡,并且每个选项卡都有不同的选项,用于设置表单外观的格式。

当你使用鼠标并单击任意一个控件时,你会注意到 Access 会高亮显示表单的指定区域,并且该区域内的所有控件都被浅橙色阴影覆盖,而你选择的实际控件的阴影将比前一个更深或在单击处周围有一个更深的橙色边框。

layout tools

在这里,你可以通过单击并拖动鼠标来按你的需要调整控件的大小,以调整该控件的高度、宽度或两者。

resize control

在这个特定表单上,当你调整任何一个控件的大小时,还会随之更改表单上其他控件的大小,这是因为这些控件是如何分组的。让我们现在使用鼠标的单击并拖动功能,按你的需要调整所有字段。

adjust fields

这是从此布局视图编辑表单中控件的高度和宽度的一种快捷方法。

Themes

在 Access 中,可以通过使用内置主题、颜色和字体样式、自定义填充颜色和为交替行着色来设置表单的格式。让我们打开 frmEmployees

themes

Access 创建的表单是朴素简洁的。它们在顶部有一个蓝色栏,背景是白色的。

如果你想了解如何美化这些表单,你可以在设计视图或布局视图中探索设计选项卡中主题区域中的一些选项。

stylize

如果你点击“主题”下拉画廊,将有许多预设好的主题可供你尝试。将鼠标悬停在任意主题上,你会看到随之改变的预览,如颜色、字体大小和实际使用的字体。要应用特定的样式,只需点击鼠标即可看到它的外观。

drop down gallery

如果你喜欢某个主题但想要更改颜色,你可以通过返回“设计”选项卡上的“主题”组并选择你喜欢的颜色来调整颜色。还可以创建自定义颜色以匹配你的公司颜色。

colors theme

同样,你还可以从一系列字体样式中进行选择。你可以从 Office 套件中预先创建的众多样式中选择一个,也可以自定义那些字体,选择特定的标题字体、正文字体,甚至创建自定义名称并保存该字体组。

heading font

让我们返回到 frmEmployees 。在此表单中,你将看到每隔一行都会用浅灰色阴影填充。

row shade

此格式选项称为 Alternate Row Color ,如果你想要在多表单中调整该选项,请转到 Design View

row color

选择该详细信息部分,然后转到“格式”选项卡,在“背景”组中,你应该会看到 Alternate Row Color 的选项。你可以更改交替行的颜色。要查看这有什么效果,只需转到“表单视图”或“布局视图”。

change color

如果你完全不想要阴影,可以选择 No Color 作为你的 Alternate Row Color ,它类似于早期版本 Access 中的传统外观。

no color

Ms Access - Navigation Form

Access 包含一个导航控件,可以轻松地在数据库中的各种表单和报表之间切换。导航表单只是一种包含导航控件的表单。导航表单是任何桌面数据库的极佳补充。

  1. Microsoft Access 提供了用于控制用户如何导航数据库的几个功能。

  2. 我们已经使用导航窗格导航我们创建的所有 Access 对象,如表单、查询、表等。

  3. 如果你想要创建自己的导航结构,并让用户更容易找到他们真正需要的特定对象,你可以构建导航表单,该表单使用导航控件,以便用户可以直接从主导航表单中使用或查看表单和报表。

Example

现在我们来看一个简单的示例,其中我们将创建一个导航表单。为此,请转到“创建”选项卡;在“表单”组中,你将看到此导航下拉菜单。

navigation menu

在此菜单中,你将看到用于排列你想要嵌入到此导航表单中表单和报表的不同布局。

  1. 一种是水平选项卡,一种是垂直选项卡——其中所有选项卡都左对齐,一种是垂直选项卡布局,其中所有选项卡都右对齐。

  2. 有一个水平选项卡布局包含两级,因此如果你有许多想要显示在顶部对象,你可以使用此布局。

  3. 你可以同时拥有水平选项卡和垂直选项卡,它们可以左对齐或右对齐。

在以下示例中,我们将使用水平选项卡和垂直选项卡。要创建该布局或该导航表单,只需单击它,Access 就会创建一个不限表单,其中包含一个导航控件。

navigation tabs

向此导航表单添加对象的最简单方法是通过你的布局视图,只需将对象拖放至你希望它们显示的位置即可。

现在让我们从导航窗格中拖动 frmProjects 表单并将其放到顶部的 [添加新项] 上。

drag frmprojects

类似地,从导航窗格拖动 frmAuthers 表单,并将其放置在“新建”按钮的左侧。

add new button

让我们现在添加其他与项目相关的表单,如 frmSubTasks、frmCurrentProjects 等。

related forms

现在让我们在顶部添加其他的标签。我们先添加 frmEmployees 表单。

additional tab

现在,您将看到您的其他项目按钮已经从左侧消失了,这是因为它们附加到了项目标签。您在左侧看到的所有按钮都链接到您在顶部所选择的任何内容。现在,在选择“员工”标签后,让我们将与员工相关的信息拖动到左侧。

project buttons

现在一个标签上是我们项目信息,另一个标签上是员工信息。类似地,您可以根据要求添加更多的标签。正如您所看到的那样,这些标签的名称不恰当,所以让我们开始重命名其中一些标签,以便使其更加用户友好。最简单的方法是双击左侧的任意标签或任意按钮,然后按如以下屏幕截图中所示重命名。

rename

Ms Access - Combo BOx

在任意表单中输入数据时,从列表中选择一个值可能会比记住要输入的值更快、更方便。选项列表还可以帮助确保输入字段中的值是合适的。列表控件可以连接到现有数据,或者可以在创建控件时显示您输入的固定值。在本章中,我们将介绍如何在 Access 中创建组合框。

Combo Box

组合框是一个对象或控件,其中包含一个用户可以选择值的下拉列表。

  1. 组合框控件提供了一种更简洁的方式来呈现选项列表。

  2. 列表在您单击下拉箭头之前是隐藏的。

  3. 组合框还允许您输入列表中没有的值。

  4. 通过这种方式,组合框控件结合了文本框和列表框的特性。

Example

现在让我们举一个创建组合框的简单示例。我们已经创建了一个员工表单,如下面的屏幕截图所示。

combo box

我们现在想要为电话类型创建组合框,因为我们知道电话类型应该是 Home, CellWork 。此信息应该在下拉列表中可用,并且用户无需键入此信息。

现在让我们转到此表单的 Design View 。选择 Phone Type 字段并按 delete 键。

phone type
phone type delete

删除电话类型字段后,转到“设计”标签。

use control words

现在,让我们从控件菜单中选择 Use Control Wizards 选项,然后从菜单中选择组合框控件,如下面的屏幕截图所示。

design tab combo

现在,在您想要的位置绘制组合框,当您松开鼠标时,您将看到组合框向导对话框。

combo wizard

在这里,您有不同的数据选项;让我们选择第 2 个选项,在此选项中,我们将添加值并单击下一步。

option

输入您想要在下拉列表中显示的值,然后单击 Next

remember value

再次单击 Next

label

在组合框中输入 label ,然后单击 Finish

unbound

可以看出,已创建组合框,但其未对齐至其他字段。我们先全选所有字段,然后转至“排列”选项卡。

arrange tab

左侧将看到 Stacked 选项。单击该按钮。

stacked

现在可以看到,这些字段已对齐。

为了使每个字段的大小一致,我们可以使用不同的选项,让我们单击“大小/空格”按钮。

size shape button

在下拉列表中,单击 To Shortest

to shortest

现在转至 Form 视图。

view form

用户现在可以选择电话类型的任何选项。

Ms Access - SQL View

在本教程中,我们将介绍 SQL 视图。无论何时在查询设计器中创建一个查询,Access 都会自动为你创建 SQL 查询。这实际上是从表中检索数据。如需了解在查询设计器中创建查询时你的查询如何以 sql 创建,让我们打开你的数据库。

Create 选项卡中选择 Query Design ,并添加 tblEmployees 表。

sql view
employee design

选择要作为查询结果的字段,然后运行查询。

field query result

现在可以将所有员工信息作为查询结果查看。已在查询网格中选择特定字段;与此同时,MS Access 还使用从查询网格中获得的结果创建了 SQL 查询。

若要查看 SQL,请转至“开始”选项卡。从“视图”菜单中选择 SQL View ,你将看到该查询的 SQL。

home tab

Example

以下是另一个示例,其中我们将看到正在进行的项目。

project progress
navigation relationship

现在让我们运行查询。

task title

若要查看 SQL,请从“视图”菜单中选择“SQL 视图”。

sql query

可以看到 Access 自动生成的 SQL 查询。这有助于从两个表中检索数据。

Ms Access - Formatting

Access 中的一个特别有用的格式化工具是能够应用 Conditional Formatting 以突出显示特定数据。让我们做一个条件格式的简单示例。

Example

在这个示例中,我们将在数据库中使用表单 fSubCurrentProjects

current project

我们有这个数据库中所有项目的清单,我们还有一些新字段,如 On Time StatusNumber of Late Tasks 。此表单是通过另一个查询创建的。

completed

在此查询中,我们有一个表与查询之间的联接,查询将显示到期日期计数或有多少项目有逾期任务。我们这里还有一个计算字段,它使用 IF 函数来确定到期日期的计数是否大于零。如果项目已逾期,它将显示单词 Late ;如果特定项目没有逾期任务,它将显示 On Time

on time

Example 1

在此示例中,我们将使用上面的表单来了解如何使用条件格式突出显示特定信息。我们现在将突出显示当前逾期的每个项目。若要将条件格式应用于一个字段或多个字段,我们需要切换到“布局”视图。

现在,选择 On Time Status 字段。

time status

现在,转到“格式”选项卡。

format tab

在此“格式”选项卡上,您应看到一个名为“控件格式”的组和一个用于“条件格式”的特殊按钮。现在,我们单击“条件格式”。

rules manager

现在,您将看到一个条件格式规则管理器,目前我们未对此控件应用任何规则。现在,通过单击“新建规则”按钮来创建新规则。

new rule

现在,您将看到一个“新建格式规则”对话框。我们首先将指定将要创建的规则类型,这里有两个选项。第一个选项是 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 ”。

equal to

我们现在可以设置我们的条件格式,如果单词 Late 出现在该字段中,我们希望此字段的外观如何。现在,让我们将字体颜色更改为红色,并使其 bold, italicunderline ,这就是我们的条件规则。现在,让我们单击 Ok ,再单击 ApplyOk

formatted late

您可以看到单词 Late 已格式化。这是一个创建非常基本的条件格式规则的示例。

Example 2

让我们以另一个示例说明。此处,我们将使项目的标题或名称 redbold, italicunderline 。在您的表单上选择项目名称控件。

conditional formatting

我们现在将返回我们的“格式”选项卡并单击“条件格式”,并为特定控件创建新规则,如上方屏幕截图所示。

no format set

此处,我们将不会检查已选择的当前字段的值,而是将其与此表单上的另一个字段进行比较。在第一个组合框中选择 Expression Is ,然后单击如上方屏幕截图中所示的末尾的 … 按钮。

expression builder

在“表达式类别”中,您具有此表单中的每个对象。双击 CountofDueDate 。这会将对控件或字段的引用发送到我们的表达式生成器,条件为大于零。现在,单击“确定”。

formatting rule

现在,让我们单击“确定”,再单击“应用”并再次单击“确定”。

example value

这是基于另一个字段中的值的字段上条件格式的示例。

Example 3

我们现在来看看条件格式的另一个示例。假设我们希望查看哪些项目比其他逾期项目更加逾期或有更多逾期任务。选择“条件格式”选项。

count due date

单击新建规则按钮以创建新规则,然后单击确定,如上图所示。

new formatting rule

在新建格式规则中,我们现在将选择规则类型“ Compare to other records ”。我们进一步更改 Bar color to red 。我们希望最短条形图表示最小值,最长条形图表示最大值。现在单击确定,然后再次单击应用和确定。

bar color red

你现在可以看到条件性阴影已应用,如上图所示。现在让我们转到表单视图。

conditional shading

Ms Access - Controls & Properties

在本章中,我们将介绍 Access 中可用的 Controls and Properties 。我们还将学习如何向表单添加控件。控件是表单或报告的组成部分,您使用这些控件可以 enter, edit,display 数据。使用控件,您可以查看和处理数据库应用程序中的数据。

  1. 最常使用的控件是文本框,但其它控件包括命令按钮、标签、复选框以及子窗体/子报表控件。

  2. 您可以创建不同种类和类型的控件,但所有控件都属于两个类别之一,即绑定或未绑定。

Bound Controls

我们现在来了解一下什么叫绑定控件。

  1. 绑定控件是与数据库中的特定数据源(例如某个字段和一个表或一个查询)关联的控件。

  2. 值既可以是文本、日期、数字、复选框、图片,甚至图表。

  3. 您可以使用绑定控件来显示来自数据库中字段的值。

Unbound Controls

我们现在来了解一下什么叫未绑定控件。

  1. 另一方面,未绑定控件不与数据源关联,它们仅仅存在于窗体本身中。

  2. 这些控件可以是文本、图片或形状(如线条或矩形)。

Control Types

您可以在 Access 中创建不同类型的控件。这里,我们将讨论一些常见的控件,如文本框、标签、按钮标签控件等。

Text Box

  1. 通常,文本框中的任何内容都将绑定,但这并非总是如此。

  2. 您可以使用这些控件与存储在数据库中的数据交互,但是您也可以设置未绑定的文本框。

  3. 计算控件将基于您编写的表达式执行某种计算,并且该数据不会存储在您数据库的任何地方。

  4. 它会即时计算,并且仅存在于该窗体中。

Labels

  1. 标签始终是文本,并且未绑定。

  2. 通常,标签不会连接到数据库中的任何源。

  3. 标签用于标记窗体上的其他控件,如文本框。

Button

  1. 这是另一种流行的控件类型;这些命令按钮通常用于执行宏或模块。

  2. 按钮通常用于与数据库中的数据或对象进行交互。

Tab Controls

  1. 选项卡控件使您可以查看表单中的控件或其他控件的选项卡视图。

  2. 向表单添加选项卡可以使其更容易使用和更井然有序,尤其是在表单包含大量控件的情况下。

  3. 通过将相关的控件放在选项卡控件的不同页面中,您可以减少混乱并简化数据处理。

  1. 超链接会在您的表单中创建一个指向其他内容的超链接。它可以是网页,甚至是数据库中的其他对象或位置。

Some Other Controls

现在让我们来看看其他一些控件−

  1. 您还可以创建 Web 浏览器控件和导航控件、组、分页符、组合框。

  2. 您可以创建图表、线条、切换按钮、列表框、矩形、复选框、非绑定对象框架、附件、单选按钮、子表单和子报表、绑定对象框架,甚至在表单上放置图像。

Example

现在让我们通过创建一个新的空白表单,看看其中一些控件的简单示例。转至 Create 组中的 forms 选项卡,然后单击 Blank Form

blank form

上述步骤将打开一个未绑定的表单,该表单尚未附加到我们数据库中的任何项目。

field list

默认情况下,它将以布局视图打开,如上图所示。

现在让我们转到“设计”视图以添加字段。

add design fields

在“设计”选项卡上,单击“属性表”。

property sheet design

在“属性表”中,单击下拉箭头并确保选择了“表单”,然后转到“数据”选项卡。

details property

在“数据”选项卡上,您将看到记录源仍然为空白。让我们假设我们想要创建一个将绑定到我们数据库中两个不同表的表单。现在单击…按钮。它会进一步打开其自己的查询生成器。

query builder

选择包含您要显示的数据的表;单击“添加”按钮,然后关闭此对话框。

select property sheet

现在,让我们从 tblEmployees 中选择所有字段并将其拖动到查询网格中,并以类似的方式从 tblHRData 中添加所有字段。

现在,单击“另存为”并为该查询命名。

query2 save

我们称之为 qryEmployeesData 并单击 Ok ,然后关闭查询生成器。

employee data

您现在可以看到该查询作为其记录源。我们现在已将此表单绑定到我们的数据库中的一个对象,在本例中是 qryEmployeesData。我们现在可以开始向此表单添加一些控件,要添加任何一个控件,请转到“设计”选项卡并从“控件”组中查看您的选项。

use control wizard

在控件菜单中,你将看到“使用控件向导”已高亮,如上图所示。默认情况下,这个小按钮周围有高亮框。这意味着控件向导已打开。这就像一个切换开关。当你点击切换开关,向导就会关闭。再次点击它,将再次打开向导。

现在让我们点击标签,拖动此标签,输入“员工信息”,然后转到“格式”选项卡,按以下屏幕截图进行格式化。

detail employee information

你可以选择应用粗体样式或更改该标签内文本的字体大小等。此控件显示在表单的详细信息部分。最好将此标签放在表单页眉部分中,该部分暂时不可见。

header section

右键单击表单背景的任意位置,并选择 Form Header ,如上图所示。

form header

将此控件移动到表单页眉区域。现在让我们从“设计”选项卡创建更多控件。此时,假设我们要将所有字段分发到两个不同的选项卡中。

header area

在控件菜单中,你可以看到“选项卡控件”,将创建表单上的选项卡。单击选项卡控件,并在详细信息部分中将其绘制到表单上,如上图所示。

tab control

它将创建两个选项卡 - 页面 2 和页面 3,如上图所示。

现在让我们开始向此选项卡控件添加一些控件。

如果我们想查看基本查询中存储的一些信息,请从“工具”组中的功能区单击 Add Existing Fields 选项,以查看基本查询中的所有可用字段。

existing fields

若要将现有字段添加到页面中,请如以下屏幕截图所示,选择“字段列表”中可用的所有字段。

fields available

现在,将字段拖动到选项卡控件的 Page2,如以下屏幕截图所示。

drag fields

现在,转到“排列”选项卡并选择 Stacked 布局。

stacked layout

在第二页,现在让我们从此查询添加剩余字段。

remaining fields

你可以浏览并调整这些控件的大小和宽度,以使其按你希望的方式显示。

完成格式化后,单击 Save As 图标,使用你希望的名称保存表单。

save employee data

单击“确定”,然后转到“表单”视图,以查看该表单中的所有信息。

view information

选项卡控件将我们的控件或字段分成两个屏幕,以便更轻松地查看和添加信息。

adding information easier

Ms Access - Reports Basics

在本章中,我们将介绍报表的原理以及如何创建报表。报表提供一种查看、格式化和整理 Microsoft Access 数据库中的信息的方式。例如,你可以为所有联系人创建电话号码的简单报表。

  1. 报表包含从表或查询中提取的信息,以及与报表设计存储在一起的信息,例如标签、标题和图形。

  2. 提供基础数据的表或查询也称为报表的记录源。

  3. 如果你想要包含的所有字段都存在于一个表中,则将该表用作记录源。

  4. 如果这些字段包含在多个表中,则需要使用一个或多个查询作为记录源。

Example

现在,我们使用一个简单的示例来了解创建非常简单的报表的流程。为此,我们需要转到“创建”选项卡。

report

在单击“报表”按钮创建基本报表之前,请确保选择正确的查询。在这种情况下,你的导航窗格中已选择“ qryCurrentProjects ”。现在单击“报表”按钮,该按钮会根据该查询生成一份报表。

project selected

你将看到报表在版式视图中打开。这提供了一种快速方式来调整你在报表中看到的所有字段的大小或宽度。现在我们调整列宽,以便以更好的方式使所有内容都适合放置。

adjust columns

向下滚动并调整底部的页面控件。

adjust page control

这是创建非常简单的报表的一种非常快的方法。你还可以从报表设计视图进行轻微的更改和调整。

quick way
  1. 就像表单一样,报表由各种不同的部分组成。

  2. 您有详细信息部分,大部分数据都在此处。

  3. 您还将看到页眉和页脚部分;这些部分显示在报表中每一页的顶部和底部。

现在让我们更改报表标题并赋予它另一个名称。

change title

单击保存图标保存报表。

report name

您将看到上面的对话框。

为报表输入名称并单击“确定”。如果您想查看此报表实际的样子,在打印预览中,您可以返回到“视图”按钮并单击“打印预览”查看此报表在纸张或 PDF 上打印时的样子。

actual look

使用右下角的工具,您可以放大或缩小。当您切换到“打印预览”时,还可以在“打印预览”选项卡上看到一些按钮,这些按钮会自动显示。在缩放部分,您可以查看一页、两页;或者如果您有较长的报表,您可以一次查看四页、八页或十二页。您还可以调整一些简单内容,例如打印要使用的纸张大小、报表页边距、方向、列数、页面设置等。这就是使用“创建”选项卡上的“报表”按钮创建非常快速简单的报表的方式。

Create a Report Using Report Design

报表设计是使用 Access 创建快速报表的另一种方法。为此,我们需要使用报表设计视图按钮,它类似于窗体设计按钮。这将创建一个空白报表并直接将其打开到设计视图,这使您可以更改控件源并直接将字段添加到报表的设计视图。

现在,让我们转到“创建”选项卡并单击“报表设计”按钮。

report design

它将打开一个空白报表或一个未绑定的报表,这意味着此报表未连接到我们的数据库中的任何其他对象。

unbound report

在“工具”组中的“设计”选项卡上,选择“属性表”。这将打开属性窗格。

tools group

在“数据”选项卡上,为该报表分配一个记录源,以将其连接到数据库对象,如下面的屏幕截图所示。

data tab

从下拉菜单中选择 qryLateProjects ,现在,下一步是单击“设计”选项卡上的“添加现有字段列表”按钮来添加一些字段到此报表。

late projects

选择字段,如上面的屏幕截图所示。

select fields

将字段拖动到报表中,如上面的屏幕截图所示。转至“排列”选项卡,然后在“表”组中,您可以从几个选项中进行选择。

choose form

有一个堆叠布局和一个表格布局,它们类似于电子表格。让我们选择表格布局。

tabular layout

您会看到它会将所有标签移到页眉区域。这些标签只会显示在每一页的顶部一次,而数据查询会针对详细信息部分中的每条记录重复。现在,您可以进行一些调整,使您的 ProjectName 字段更宽。

field wider

正如您在上面的屏幕截图中看到的那样,详细信息部分和页脚之间有很大的空间。

让我们将页面页脚向上拖动,以减少空间,如下面的屏幕截图所示。我们现在将转到“设计”选项卡,然后单击“视图”按钮,并选择“报表视图”。

page footer
report view

你现在可以看到,一些项目名称不完整;你可以使用设计视图或版式视图调整它。

simple report

这就是我们只使用“设计视图”就创建简单报表的步骤。

Ms Access - Formatting Reports

在本章中,我们将学习如何格式化报表。你会发现格式化报表与格式化表单有很多相似之处,但有一些工具和技巧是专门针对报表的。现在让我们了解报告部分和分组的概念。

为此,我们需要打开我们在上一章中创建的一个报告。在这里,我们将看到其中一些信息如何在报告中显示。

displayed information

在这里,我们将从报告部分和分组开始。

现在让我们转到此报告的设计视图。

report section

你可以看到这里没有很多内容,这里只有页眉、详细信息部分和页脚可见。你可以非常容易地添加其他几个部分。

additional section

在此报告上的任意位置单击鼠标右键,你将看到页眉/页脚和报告页眉/页脚。此报告没有显示该报告页眉/页脚。让我们选择该选项并返回报告视图。

report header

可以看到,它只在报告的顶部添加了一个小彩色区域。在设计视图中,将鼠标悬停在该页眉分隔符正上方、单击并向下拖动以展开该区域。这将为报告页眉添加更多区域。

report design view

在报告视图中,现在你将在报告的顶部看到更多区域,如下面的屏幕截图所示。

more area

报告页眉和页脚控件显示在该报告第一页的顶部。报告页脚控件控制你在报告底部最后一页上看到的内容。

footer control

报告页眉和页脚与你的页眉和页脚不同。放在页眉中的任何内容都会显示在每一页的顶部。同样,放在页脚中的任何内容都会在每页底部重复。

bottom report

现在你可以添加其他分组级别,要做到这一点,你要确保打开了组排序和总计区域。

在设计选项卡的分组和总计部分中,单击组和排序按钮,这将在底部打开组、排序和总计区域,如下面的屏幕截图所示。

repeat footer

你现在可以在报告中的任何控件上添加其他组或分组。现在让我们单击添加组。

additional group

在上图中,你可以看到报告的基本控件来源,包括项目名称、任务标题、到期日期和完成百分比。现在假设我们想要按项目将所有逾期任务分组,因此从列表中选择项目名称。

task by project

现在,你将在详细信息部分上方看到一个额外的分组级别 ProjectName Header 。我们现在可以将此控件上移到此项目名称标题,而不是让项目名称显示在每个逾期任务旁边。你可以选择它,然后按键盘上的 Ctrl + X 将其从详细信息部分中剪切下来,然后单击该项目名称标题背景中的任意位置,然后按 Ctrl + V 将该控件粘贴到该项目名称标题中。

name header

现在,你可以转到报告视图,查看对报告中事务进行分组所做的调整,如下面的屏幕截图所示。

adjustments

每个项目在自己的线上都有自己的小级别,然后在这个区域下方,您将看到所有该项目已逾期的任务。现在,稍做更改之后,您可以在布局视图中开始设置报告格式。

如果您想要扩大项目名称,则拖动下面的行,然后在“格式”选项卡中将字体大小更改为 20。

project name bigger

您可以增加控件的宽度,使其覆盖整个页面宽度。

increase width

若要移除控件周围的边框,请在“格式”选项卡中单击“形状轮廓”,如下面屏幕截图所示。

shape outline

选择 Transparent 选项。

transparent

让我们现在转到设计视图,如下面屏幕截图所示。

group sort

将任务标题调整到页面的左侧,如下面屏幕截图所示。

task title design

让我们现在使用 Ctrl+XCtrl+V 将数据从“页眉”部分带到 ProjectName 标题部分。

add group

让我们现在返回到报告视图。您现在会看到这些标签直接显示在它们描述的控件上方。

appeared label

如果您注意到了,您会发现任务和下一个项目名称之间没有空格。它们之间应该有额外的空格。为此,我们需要添加 ProjectName Footer

现在,转到设计视图。

name footer

在“分组、排序和总计”区域中,单击项目名称旁边的“更多”按钮。

您现在将看到有关如何按项目名称分组和排序的所有选项,如下面屏幕截图所示。

group sort name

在此处,我们有一个名为 Without a Footer Section 的属性。让我们通过单击文字 Without a Footer Section 旁边的那个小箭头更改该选项。

footer section

将其更改为 With a Footer Section

with section

正如您在上面的屏幕截图中看到的那样,在“详细信息”部分下方的“ProjectName Footer”部分已添加。这将作为该项目名称组的页脚。

让我们现在返回到报告视图。

detail section

若要移除交替区域在“详细信息”部分和“项目名称”区域中作为背景的阴影或外观,请再次转到设计视图。

remove shading

让我们先通过单击详细信息分隔符然后打开“属性”表来更改“详细信息”部分。

在“格式”选项卡上,更改 Alternate Back ColorNo Color ,如下面的屏幕截图所示。

alternate color

类似地,将“备用背景颜色”更改为“无颜色”,以适用于“ProjectName Header”和“ProjectName Footer”,然后转到“报表视图”。

change alternate color

现在你可以看到报表的显示方式。要了解数据将逐页打印的方式,让我们转到“打印预览”。

print preview

这就是打印时显示的样子。

Ms Access - Built-In Functions

在本章中,我们将使用内置函数。在 Access 中,内置函数接近 100 个,不可能涵盖所有函数。在本章中,我们将涵盖基本结构、语法以及使用一些常见的函数,还有一些需要注意的事项,以便你能自己探索其他一些函数。

Functions

函数是执行任务或计算并返回结果的 VBA 过程。函数通常可以用于查询,但还有其他可以使用函数的地方。

  1. 例如,如果你要为日期/时间字段指定默认值,则可以在表属性中使用函数,可以使用日期或 Now 函数从你的系统中调用当前日期/时间信息,并自动输入该值。

  2. 当创建计算字段或在窗体或报表控件中使用函数时,你也可以在表达式中使用函数。你甚至可以在宏参数中使用函数。

  3. 函数可以非常简单,不需要调用其他信息,或者仅仅引用表或查询中的一个字段。

  4. 另一方面,函数也可能变得非常复杂,具有多个参数、字段引用,甚至嵌套在其他函数内部的其他函数。

现在让我们了解一些使用内置函数的示例。

Date & Time Functions

现在让我们了解日期和时间函数 −

  1. Date() 函数旨在返回当前系统日期。此函数不需要任何函数参数或附加信息。你所要做的就是编写函数的名称以及那些圆括号。

  2. 有两种非常相似的内置函数 Time() 和 Now()。

  3. Time() 函数仅返回当前系统时间,而 Now() 函数同时返回当前系统日期和时间。

  4. 根据你想要跟踪、存储或查询的数据,你有三个内置的易于使用的函数来帮助完成该任务。

现在让我们打开数据库,并使用查询设计创建一个新查询,然后添加 tblProjects 和 tblTasks。

add tables

从 tblProjects 添加 ProjectName,从 tblTasks 添加 TaskTitle、StartDate 和 DueDate,然后运行查询。

reconnecting

现在你可以看到来自所有项目的不同任务。如果你想要查看截至今天日期的正在进行中的项目任务,那么我们必须使用 Date() 函数指定一个条件来查看在今天或之后开始的项目。

我们现在来具体说明 StartDate 下的条件。

date function

条件以一个运算符 greater than symbol 开头,其后是一个 equal to symbol 再加上一个 Date Function

当我们运行此查询时,所有任务要么出现在今天的日期,要么出现在未来日期,如以下屏幕截图所示。

today date

这是一个关于如何将 Date() 函数用作查询条件的示例。

  1. 现在让我们假设此查询在拉取本周开始的日期方面需要更加灵活。

  2. 我们有几个本周开始的不同任务,但由于我们的条件,它们未显示在此当前列表中。它正在查找等于或大于今天的开始日期。

如果我们要查看已开始但尚未完成或应在今天完成的本周的任务,让我们返回到设计视图。

在此,我们将会向这些条件添加一些附加信息。事实上,我们希望它大于或等于今天的日期减去七天。

greater than date

如果我们键入减去七然后运行查询,您还将看到本周开始的任务。

started task

DateDiff() Function

DateDiff() 函数是另一个非常流行的日期/时间函数。DateDiff 函数返回一个变体(长整型),指定两个特定日期之间的时间间隔数量。换句话说,它可以计算两个日期之间的差值,而且您可以选择函数用以计算该差值的间隔。

现在让我们假设我们要计算作者的年龄。为此,我们首先需要创建一个新查询并添加作者表,然后添加 FirstName、LastName 和 BirthDay 字段。

datediff

我们可以通过计算出生日期或生日与今天的日期之间的差值来计算人们的年龄。

让我们尝试在一个新字段中使用 DateDiff 函数。

add datediff

我们称之为年龄,后加一个冒号,然后编写 DateDiff 函数。

  1. DateDiff 函数的第一个函数参数是间隔,因此键入“yyyy”。

  2. 下一个函数参数是我们要计算的第一个日期,在本例中,将是 Birthday 字段。

  3. 第三个函数参数是今天的日期。

现在,运行您的查询,您将看到新字段,该字段显示每个作者的年龄。

age of each author

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 function

输入 Format 函数。第一个函数参数将是一个表达式,它几乎可以是任何东西。现在,我们让 birthday 字段是第一个,接下来要做的是编写我们的格式。在这种情况下,我们需要月份、月份、天、天。用引号写上“mmdd”,然后运行你的查询。

argument expression

它现在正在从 birthday 字段获取日期,4 是月份,17 是天。

让我们在下一个字段中添加“mmm”和“mmmm”,而不是“mmdd”,如下面的屏幕截图所示。

add month

运行你的查询,您将看到结果,如下面的屏幕截图所示。

month name

在下一个字段中,它将返回该生日中月份的前 3 个字符,在最后一个字段中,您将获得完整的月份名称。

要查看生日之后的月份和年份,让我们添加“yyyy”,如下面的屏幕截图所示。

year

让我们再次运行你的查询。

month year

您现在将看到月份后面跟着一个逗号,然后是年份。

IIf() Function

IIf() 函数是“Immediate If”的缩写,此函数将表达式评估为真或假,并为每个表达式返回一个值。它最多有三个函数参数,所有这些参数都是必需的。

  1. 第一个参数是您想要评估的任何表达式。

  2. 下一个参数代表真部分,如果第一个表达式为真,则可以是值或返回的表达式。

  3. 最后一个参数是当你的表达式为假时要返回的内容。

Example

我们举一个简单的例子。我们将使用查询设计创建一个新查询,添加 tblAuthors 表,然后添加以下字段。

immediate if

您现在可以看到我们有三个字段——FirstName、MiddleInitial、LastName,然后是这个连接字段,它将所有三个字段都拉在一起。让我们运行你的查询来查看此查询的结果。

concat fields

现在,您可以看到查询的结果,但您也会注意到有些记录没有中间名首字母。例如,Joyce Dyer 记录没有中间名首字母,但在 FullName 字段中,您将看到实际不需要的句点。因此,返回到设计视图。在这里,我们将使用 IIf 函数以不同的方式连接名称。

different way

让我们在另一个字段中写出名称并将其称为 FullName1,然后键入 IIf 函数。

  1. 立即如果函数的第一个函数参数将是你的表达式。在表达式中,我们将检查中间首字母字段是否为空或为 null。

  2. 下一个参数是真部分。因此,如果中间名首字母为 null,那么我们希望显示 FirstName 和 LastName。

  3. 现在,对于我们的虚假部分——如果 MiddleInitial 不为空,那么我们希望显示 FirstName、MiddleInitial 和 LastName。

现在让我们运行您的查询,您将看到结果,如下面的屏幕截图所示。

display result

Ms Access - Macros

在本章中,我们将介绍 Access 中宏的基础知识。宏是一种工具,允许您自动执行任务并向表单、报表和控件添加功能。

  1. Access 中的宏与 Word 或 Excel 中的宏的工作方式略有不同,在 Word 或 Excel 中,您基本上会录制一系列击键操作,然后稍后播放这些击键操作。

  2. Access 宏由一组预定义的操作构建,允许您自动执行常见任务,并向控件或对象添加功能。

  3. 宏可以是可从导航窗格查看的独立对象,或者直接嵌入到表单或报表中。在创建数据库对象(如表、表单和报表)后,宏可以提供一种快速简便的方式将所有这些对象连接在一起,从而创建一个简单的数据库应用程序,任何人都可以使用,甚至可以进行修改,并且无需接受太多培训。

  4. 宏提供了一种运行命令的方式,而无需编写甚至了解 VBA 代码,而且仅使用宏就可以完成很多操作。

Creating a Macro

让我们开始创建当单击命令按钮时打开表单的非常简单的宏。为此,我们需要打开数据库和 frmEmployeeData 表单,其中我们创建了两个选项卡。

creating macro

在该表单中,我们可以添加一个按钮,允许用户打开所有职位信息。

job information

现在让我们转到该表单的设计视图,并从“控件”菜单中添加按钮表单。释放鼠标后,您将看到“命令按钮向导”对话框。

common button

创建宏操作的方法有很多,但最简单的方法是仅使用“命令按钮向导”。

simplest way

对于常见操作(如打开表单),请从“类别”列表中选择“窗体操作”,然后从“操作”列表中选择“打开窗体”,然后像上面屏幕截图中所示单击“下一步”。

frmjobs

您需要指定要使用命令按钮打开哪个表单。现在,让我们选择 frmJobs 并单击 Next

open records

在这个屏幕中我们有两个选项,我们可以 open the form and display a very specific record ,或者我们可以 open the form and show all the records 。让我们选择第二个选项,然后像上面屏幕截图中所示单击下一步。

view jobs

命令按钮本身可以显示图片,或者可以选择“显示文本”。在此处,我们希望显示文本“查看职位”,现在单击“下一步”。

cmd viewjobs

现在,您可以像上面屏幕截图中所示向命令按钮提供一个有意义的名称。这可以在其他代码或其他宏中使用。我们来称此为 cmdViewJobs 并单击 Finish

现在转到“窗体视图”。

form viewjobs

现在您将在表单中看到一个“查看职位”按钮。让我们单击它。

view jobs button

现在您打开了一个表单,但您不会查看任何信息。让我们返回到 frmEmployeeData 表单设计视图。确保命令按钮已选择,然后单击“属性表”中的“事件”选项卡。

command button

点击后,您将看到向导创建的嵌入式宏。如果您现在想要修改此宏,请单击…按钮来打开向导生成的宏。

embedded macro

这是宏设计器,在右侧您将看到操作目录。您的所有操作都将在此存储在文件夹中。您有数据输入选项、数据导入/导出等等,在主区域左侧您有另一个宏。它只包含一个操作,通过单击该操作,您可以查看该特定操作的其他属性。

macro designer

您将看到表单名称,您可以点击该下拉箭头以查看数据库中可用的表单。您可以更改该表单的查看方式,可以选择以表单视图、设计视图、打印预览打开它。您可以应用筛选器名称或 Where 条件。在这里,我们要更改数据模式,因为 frmJobs 被设置为仅允许添加新记录的“添加模式”。我们可以通过将其更改为编辑模式在此宏中覆盖它。

data mode

现在保存您的宏,然后关闭宏设计器并返回到表单视图。

save macro

让我们再次单击“查看工作”。

viewjob

您现在可以看到它打开您的 frmJobs 表单,并允许您滚动浏览我们数据库中所有可用的工作。

Ms Access - Data Import

在本章中,我们将讨论在 Access 中导入数据以及您可以使用 Access 导入哪些类型的数据。通常,数据存储在各种格式、文件和位置,这使得获取和使用数据变得很困难。如果您在电子表格、SharePoint 列表或其他格式中拥有数据,则只需几个步骤即可将其导入 Access 数据库,使其在 Access 中更易于获得。

  1. “另存为”命令通常用于以另一种格式保存文档,以便您可以在其他程序中打开它。

  2. 在 Access 中,您不能以相同的方式使用“另存为”命令,您可以将 Access 对象另存为其他 Access 对象,但不能将 Access 数据库另存为电子表格文件。

  3. 要将 Access 另存为电子表格文件,您需要使用“外部数据”选项卡中的导入功能。

Different Types of Data Access Can Import

要了解您可以在 Access 数据中导入哪种类型的数据,让我们打开您的数据库并转到“外部数据”选项卡。

import

在“导入和链接”组中,您可以看到 Access 中可用于数据导入的不同类型选项。下面是使用最广泛的数据导入格式。

  1. Microsoft Office Excel

  2. Microsoft Office Access

  3. ODBC 数据库(例如,SQL Server)

  4. 文本文件(分隔的或固定宽度的)

  5. XML Files

Example

让我们看一个从 Excel 文件导入数据的简单示例。以下是 Access 文件中的数据。

access file

要在 Access 中导入数据,我们首先需要打开 Access 数据库,然后转到“外部数据”选项卡,如下面的屏幕截图所示。

external data

在“导入和链接”组中,您会看到一个选项 Excel。让我们单击该选项。

link group

浏览您想要从中导入数据的 Excel 文件,然后我们有不同的选项来存储数据。让我们选择第一个选项并单击确定。

spreadsheet

在这里您将看到您数据的预览。现在,单击下一步。

preview data

在预览中,你现可以看到第一行包含列标题。现在我们勾选该复选框,然后点击下一步。

field option

你现在将看到一个对话框,你可以在其中为每列/字段设置数据类型。如果你不想导入任何字段,只需勾选该复选框。完成“FirstName”字段之后,只需点击“MiddleInitial”字段。

middleinitial

现在让我们遍历所有字段,然后点击下一步。

select option

以下是主键的不同选项。让我们选择第一个选项并点击下一步。

tblcontacts

在最后一个对话框中,你可以输入你选择的表名称,然后点击完成。

last dialog box

如果你希望保存所有这些步骤,则勾选复选框,然后关闭该对话框。

现在让我们到导航窗格。你将看到此处添加了一个新表,当你打开新添加的表时,你会在 Access 中看到所有数据。

data in access

Example

现在让我们看看从 Access 数据库导入数据的另一个示例。让我们再次进入外部选项卡。

external tab

在导入和链接组中,点击 Access 选项。

access database

浏览你想从中导入数据的 Access 数据库,然后选择第一个选项,即导入表、查询、窗体等。现在,点击确定。

import objects

在上述对话框中,你可以看到表、查询、窗体等的不同选项卡,你可以从中选择希望导入哪种类型的数据。

import reports

让我们进入 Reports 标签,然后选择你想导入的任何报表;你还可以通过点击 Select All 按钮选择所有数据。让我们选择 Projects 并点击 Ok

select all

现在,关闭对话框。在导航窗格中,你将看到添加了一个新报表。让我们打开此报表,你将看到该报表中的所有数据。

new report

Ms Access - Data Export

在本章中,我们将了解如何从 Access 中导出数据。数据导出实际上与数据导入相反。在数据导入中,我们将数据从其他格式导入 Access,而在导出中,我们会以其他格式保存数据。

要了解你可以从 Access 数据中导出哪种数据,让我们打开你的数据库,进入外部数据选项卡。

export

在导出组中,你可以看到为从 Access 中导出数据而提供的不同类型的选项。以下是使用最广泛的数据导出格式−

  1. Microsoft Office Excel

  2. Microsoft Office Access

  3. ODBC 数据库(例如,SQL Server)

  4. 文本文件(分隔的或固定宽度的)

  5. XML Files

Example

让我们来看一个从 Access 中导出数据的简单示例。打开你想从中导出数据的数据库。在导航窗格中,选择你想从中导出数据的对象。

export data

你可以从表、查询、窗体和报表对象等导出数据。让我们选择 qryAllProjects,然后进入外部数据选项卡。

在外部数据选项卡上,点击你想导出的数据类型。例如,要以可通过 Microsoft Excel 打开的格式导出数据,请点击 Excel。

excel

访问启动导出向导。在向导中,您可以设置导出目标文件名和格式、是否包含格式设置和布局以及要导出的记录等信息。填写完所需的信息后,单击“确定”。

export wizard

在此向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为将来需要反复执行相同的操作,则选中“ Save export steps ”复选框并关闭对话框。

随即打开以下 Excel 文件。

save export

现在假设您想将数据导出到文本文件,请在“外部数据”选项卡中单击“文本文件”。

text file

指定导出选项并单击“确定”。您将看到编码对话框,其中我们要使用默认编码导出数据。

windows default

选择第一个选项并单击“确定”。

first option

在此向导屏幕上,Access 通常会询问您是否要保存导出操作的详细信息。如果您认为将来需要反复执行相同的操作,则选中“ Save export steps ”复选框并关闭对话框。

现在,您将看到打开文本文件。

explore

同样,您还可以探索其他选项。因此强烈建议也熟悉其他导入导出功能。