Access 数据库基础:查询、窗体与报表详解
上一章节我们讲了如何创建表。表是 Access 数据库中最基础、最核心的对象,因为所有数据最终都要落到表中进行存储。可以说,没有表,就没有后续的数据管理、查询分析和界面展示。
但是,把数据放进表里,还远远不够。真正让数据库'活'起来的,是对数据的提取、加工、展示和输出能力。 Access 之所以适合中小型信息管理系统,正是因为它不仅能存数据,还能围绕数据建立完整的操作界面和输出结果。
因此,从这一篇开始,我们继续学习 Access 中另外三个非常重要的对象:查询、窗体和报表。
查询,负责从已有数据中筛选出我们真正需要的信息; 窗体,负责为用户提供更加友好、直观的数据录入和查看界面; 报表,负责把整理好的数据以规范、美观的形式输出出来,用于打印、汇总和汇报。
这三者与表相互配合,构成了一个完整的 Access 应用基础。
3.1 创建查询
查询是数据库管理系统中的一个基本功能。使用查询可以将不同表中的信息结合起来,提供一个相关数据项的统一视图。使用查询还可以选择记录、更新表中数据、向表中添加新记录。使用查询功能选择一组满足制定条件的特定记录。
查询和表的区别 在使用数据库中的数据时,并不是简单地使用某一个表中的数据,而常常是将有'关系'的多张表中的数据关联起来使用,有时还可能要对这些数据进行一定的计算才可使用。对于这样的要求,创建'查询'对象可以很轻松地解决,查询就是依据一定的查询条件,对数据库中的数据信息进行查找。查询的字段来自互相之间有'关系'的表,这些字段组合成一个新的数据表视图,但它并不存储任何的数据。当改变表中的数据时,查询得到的数据不也随之发生改变。 在运行查询时,查询所生成的结果数据动态地来源于表对象,可以理解是表中数据的一个镜像。所以在查询数据表中无法加入或删除字段,也不能修改查询字段的字段名。查询结果将以工作表的形式显示出来。
3.1.1 常用的查询
使用查询,可以按照不同的方式查看、更改和分析数据。同时,查询也可以作为窗体报表和数据访问页的数据源。Access 中常用的查询有选择查询、参数查询、聚合查询、交叉表查询、操作查询、SQL 查询。
-
选择查询 选择查询是最常见的一种查询,它先从一个或多个有关系的表中将满足要求的数据提取出来,并把这些数据显示在新的查询数据表中,再对记录进行分组、总计、计数、求平均值以及其他类型的计算。
-
参数查询 如果用户查询时需要通过在对话框中输入要查询的数据,就要创建参数查询。参数查询可以在运行查询的过程中修改查询的规则,并且,执行参数查询时会显示一个输入对话框以提示用户输入信息。
-
聚合查询 (分组查询) 聚合查询也称分组查询,创建分组查询有助于快速分组和汇总数据。
-
SQL 查询 SQL 查询是用户使用 SQL 语句直接创建的一种查询。实际上,Access 所有的查询都可以认为是一个 SQL 查询,因为 Access 就是以 SQL 语句为基础来实现查询功能的。 SQL 查询的分类包括联合查询、传递查询、数据定义查询和子查询。
还有一些其它的查询方法这里就不在展开了说了,如操作查询,交叉表查询等。具体可以参考微软的帮助。
3.1.2 选择查询操作
你可以使用查询设计视图来创建查询。
第一步:点击 Query Wizard

第二步:点击 选择 Simple Query Wizard

第三步:选择表和字段 后点击 next

第四步:完成,query 定义一个名称 Customers_Query

你也可以修改排序方法
选择 设计视图,对 Customers 修改排序规则是倒序,如下图


3.1.3 参数查询操作
参数查询可以在运行查询的过程中自动修改查询的规则,用户在执行参数查询时会显示一个输入对话框以提示用户输入信息,这种查询称为参数查询。当需要对某个字段进行参数查询时,首先切换到这个查询的设计视图,然后在作为参数使用的字段下的'条件'单元格中,先输入一对方括号,在方括号内输入相应的提示文本。这样简单的参数查询就完成。 具体操作如下
打开查询选项卡,切换到设计视图,在 customerID 字段的 'Criteria' 属性中的方括号内,输入相应的 提示文本
[ Pls ask the user to enter the CustomerID:],完成以后保存退出。

然后双击 展示 Customers_Query_parameter,就会有提示
在导航窗格中,复制一个查询 Customers_Query,并重命名为 Customers_Query_parameter


最终展示

3.1.4 聚合查询
聚合查询也称分组查询,创建聚合查询有助于快速分组和汇总数据。因为使用传统的选择查询只能检索显示在数据源中的记录,而使用聚合查询则可以对检索数据进行总计、平均值、计数等汇总操作。 具体操作如下
- 选择设计视图,分别添加 Customers,orders 和 Products

- 在 功能区,选项 '设计' 选项卡,然后单击 'Totals'按钮

- 点击完成后,会出现新的一行,称为'Total' "Total"行会指示 access 在对指定字段执行聚合是使用什么聚合函数,默认函数是'Group by'。如下图所示

你也可以根据需求,选择其他的函数

- 最后点击保存,完成 操作。

3.1.5 SQL 查询
SQL(Structured Query Language,结构化查询语言) 的主要功能就是在各种数据库之间创建联系,相互沟通。SQL 是关系数据库管理系统的标准语言,SQL 语句可以用来执行各种各样的操作,例如,更新表中的数据,从表中提取数据等。目前,绝大多数流行的关系数据库管理系统,如 Oracle、Sybase、Microsoft SQL Server、Access 等都采用了 SQL 标准。虽然很多数据库都对 SQL 语句进行了再开发和扩展,但是包括 SELECT、INSERT、UPDATE、DELETE、CREATE 及 DROP 在内的标准 SQL 命令仍然可以用来完成几乎所有的数据库操作。这将在下一个章节会重点介绍和说明。
具体操作如下 比如我想 通过全名显示一些数据我可以这样写 SQL
- 选择 SQL Query

SQL:
SELECT [FirstName]+" "+[LastName] AS FullName, Customers.[PhoneNumber], Customers.[CustomerID]
FROM Customers
ORDER BY Customers.[CustomerID];
- 保存后,输入 Queries name 是'Customer_SQL'完成。
显示的如下

3.2 怎么创建窗体
友好的操作界面 (窗体) 会给用户使用数据库带来很大的便利,用户不需要进行专门培训就能根据窗口中的提示完成工作。 数据库中表或查询设计得好,那仅是数据的内部存储方式而已,如果窗体设计得杂乱,而且没有足够的提示,就会给用户带来很大的不便,直接影响数据库系统的使用。
3.2.1 窗体的功能与构成
窗体是系统与用户交互的界面,为查看、添加、编辑和删除数据提供了较灵活的方式。绝大多数情况下,不应该允许用户直接访表或查询数据表,窗体为管理数据库数据的完整性提供了一种有用工具。
- 窗体的功能 窗体用于数据库中数据的维护,主要用来输入数据。 窗体是一个为用户提供可以输入和编辑数据的界面,其具有以下三种功能。
- 数据的显示与编辑 窗体最基本的功能是显示与编辑数据。
- 数据输入 用户可以根据需要来设计窗体,并作为数据库中数据输入的接口,通过窗体可以节省数据录入的时间,并提高数据输入的准确度。
- 应用程序流控制 与 VB 窗体类似,Access 2003 中的窗体也可以与函数、子程序相结合。在每个窗体中,用户可以使用 VBA 编写代码,并利用代码执行相应的功能。
- 窗体视图 这里的窗体视图可以理解是窗体的设计页面,是最终用户与窗体较常见的交互方式。 在窗体视图中显示窗体,相当于运行应用程序,或者是软件的一个页面。
3.2.2 窗体操作
窗体的操作主要集中下面蓝色的线中,它包含(Form Design,Blank Form,Form Wizard 等操作)。
对于初学者来说可以使用 Form Wizard 一步步完成创建
第一步 点击 Form Wizard 后,选择你需要的多个字段

第二步,点击 Next,选择你的 Layout 类型,有四种类型分别是 Columnar,Tabular,Datasheet and Justified
如果选 datasheet 相当于一个 Query。

第三步,确认 Form 的名称,这个输入 Customer_Form。

第四步,完成。下面是完成显示后的效果。在底部状态栏可以显示记录数。以及搜索功能

3.2.3 其他窗体
当你 选择 More Forms button 后,你可以选择其他 forms,如 Multiple items,Datasheet,Split Form 和 Modal Dialogue

- 点击 Multiple Items,给 Form 命名为 Customers_Form_item

- 点击 Datasheet,给 Form 命名为 Customers_Form_sheet

- 点击 Split Form,给 Form 命名为 Customers_Form_split

- 点击 Modal Dialogue,给 Form 命名为 Customers_Form_test
不过对于初学者来说,Access 窗体中的 Modal Dialog 可能会稍微有些难理解。因为它不仅仅是一个普通窗体,还常常会涉及窗体的显示方式、交互逻辑,甚至可能进一步关联到 VBA 编程 的使用。
简单来说,模态对话框的特点是:当它被打开时,用户通常需要先完成当前对话框中的操作,才能继续返回到其他窗口进行操作。正因为这种'必须先处理当前窗口'的特性,它在一些数据录入、确认提示或参数输入的场景中非常实用。
对于刚开始学习 Access 的读者来说,这一部分不必一下子钻得太深。现阶段只需要先知道 如何创建和命名这种窗体,理解它是一种具有特殊交互方式的窗体即可。至于它和 VBA 的配合使用,可以在后续学习更高级的窗体设计时再逐步掌握。
下面做一个演示 第一步双击 OK

第二步 进入 VBA 界面。输入 VBA 代码
Option Compare Database
Private Sub Command1_Click()
Dim result As Integer
result = MsgBox("hello access", vbOKCancel + vbQuestion, "OK")
If result = vbOK Then MsgBox "You clicked OK.", vbInformation Else MsgBox "You clicked Cancel.", vbInformation
End Sub
展示如下

展示如下

3.2.4 设计窗体视图
如果觉得窗体不美观,你需要怎么做呢?答案很简单 修改它。
具体如下
第一步 右击 Customer_Form,选择 Design View

第二步 设计 View
你可以修改 text input 的长度,高度,背景色,字体的颜色,size,style,Font name, Font Color, Border Style, Back style 等很多属性

第三步,完成设计,后,点击保存。 下面是完成后的效果。

3.3 怎么创建报表
报表是 access 数据库中的对象,其主要功能是将表或查询的数据按照设计的方式打印出来。在报表中,不仅可以控制每个对象的大小和显示方式,还可以按照所需的方式来显示相应的内容。 可以,添加 多级汇总,统计比较,甚至加上图片和图表。
3.3.1 报表的功能与类型
尽管数据表和查询都可以打印,但是报表作为 Access 数据库的一个重要组成部分,可用于数据分组,单独提供各项数据和执行计算,还可以制成各种丰富的格式,使用户的报表更易于阅读和理解; 使用剪贴画、图片或扫描图像可以美化报表的外观;通过页眉脚,可以在每页的顶部和底部打印标识信息。与其他的打印数据方法相比,报表具有以下个优点。
- 报表不仅可以执行简单的数据浏览和打印功能,还可以对大量原始数据进行比较汇总和小计。
- 报表可生成清单、订单及其他所需的输出内容,可以方便、有效地处理信息。
报表类型可以分为 单列报表,多列报表,表格式报表,分组/总计报表,等
报表和窗体的区分 报表和窗体的主要差别在于预期的输出。 窗体主要用于数据输入及与用户进行交互。报表主要用于在屏幕上或通过打印副本的形式查看数据。在窗体中可使用计算字段来基于记录中的其他字段显示某个计算结果。对于报表,通常情况下,会针对记录组、一页记录或报装中包含的所有记录执行计算。
3.3.2 创建报表
创建报表,主要有如下命令 Report,Report Design,Blank Report,Report Wizard

对于初学者来说可以选择 Report Wizard
第一步 点击 Report Wizard

第二步 点击 Next,是否需要分组

第三步,点击 Next,是否需要排序

第四步 点击 Next,选择 Layout 和 Orientation。

第五步,点击 Finish 给报表命名,Customers_report。

第六步 对报表格式做微调
先选中 Customers_report,右键点击,选择 Design View(设计视图)。

报表创建完成后,通常还需要进行进一步的格式调整。因为不同数据表中的字段数量、字段长度和显示内容都不完全一致,系统自动生成的报表有时可能无法做到完全合理的排版,例如字段显示不全、间距不协调,或者整体布局不够美观。 所以,在这一步中,我们需要根据实际显示效果,对报表的格式进行微调,使报表内容更加完整、布局更加清晰,最终达到更好的展示效果。

最终 report 呈现的效果 当然如果你觉的需要美化可以进一步处理。


