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