化繁为简:Access 与 SQL 创新指南(第三篇)
化繁为简Access 与 SQL 创新指南(第三篇)第一章 化繁为简Access 与 SQL 创新指南-生存的智慧—— 为什么是 Access第二章 化繁为简Access 与 SQL 创新指南-生存的智慧—— 打破壁垒Access 如何让普通人变身“开发者”第三章 化繁为简Access 与 SQL 创新指南-生存的智慧—— 查询窗体和报表第四章 化繁为简Access 与 SQL 创新指南-生存的智慧—— SQL 编程核心文章目录化繁为简Access 与 SQL 创新指南(第三篇)第三篇查询窗体和报表3.1 创建 查询3.1.1 常用的查询3.1.2 选择查询操作3.1.3 参数查询操作3.1.4 聚合查询3.1.5 SQL 查询3.2 怎么创建窗体3.2.1 窗体的功能与构成3.2.2 窗体操作3.2.3 其他窗体3.2.4 设计窗体视图3.3 怎么创建报表3.3.1 报表的功能与类型3.3.2 创建报表第三篇查询窗体和报表上一章节我们讲了如何创建表。表是 Access 数据库中最基础、最核心的对象因为所有数据最终都要落到表中进行存储。可以说没有表就没有后续的数据管理、查询分析和界面展示。但是把数据放进表里还远远不够。真正让数据库“活”起来的是对数据的提取、加工、展示和输出能力。Access 之所以适合中小型信息管理系统正是因为它不仅能存数据还能围绕数据建立完整的操作界面和输出结果。因此从这一篇开始我们继续学习 Access 中另外三个非常重要的对象查询、窗体和报表。查询负责从已有数据中筛选出我们真正需要的信息窗体负责为用户提供更加友好、直观的数据录入和查看界面报表负责把整理好的数据以规范、美观的形式输出出来用于打印、汇总和汇报。这三者与表相互配合构成了一个完整的 Access 应用基础3.1 创建 查询查询是数据库管理系统中的一个基本功能。使用查询可以将不同表中的信息结合起来提供一个相关数据项的统一视图。使用查询还可以选择记录、更新表中数据、向表中添加新记录。使用查询功能选择一组满足制定条件的特定记录。查询和表的区别在使用数据库中的数据时并不是简单地使用某一个表中的数据而常常是将有“关系”的多张表中的数据关联起来使用有时还可能要对这些数据进行一定的计算才可使用。对于这样的要求创建“查询”对象可以很轻松地解决查询就是依据一定的查询条件对数据库中的数据信息进行查找。查询的字段来自互相之间有“关系”的表这些字段组合成一个新的数据表视图但它并不存储任何的数据。当改变表中的数据时查询得到的数据不也随之发生改变。在运行查询时查询所生成的结果数据动态地来源于表对象可以理解是表中数据的一个镜像。所以在查询数据表中无法加入或删除字段也不能修改查询字段的字段名。查询结果将以工作表的形式显示出来。3.1.1 常用的查询使用查询可以按照不同的方式查看、更改和分析数据。同时查询也可以作为窗体报表和数据访问页的数据源。Access中常用的查询有选择查询、参数查询、聚合查询、交叉表查询、操作查询、SQL查询。1.选择查询选择查询是最常见的一种查询它先从一个或多个有关系的表中将满足要求的数据提取出来并把这些数据显示在新的查询数据表中再对记录进行分组、总计、计数、求平均值以及其他类型的计算。2.参数查询如果用户查询时需要通过在对话框中输入要查询的数据就要创建参数查询。参数查询可以在运行查询的过程中修改查询的规则并且执行参数查询时会显示一个输入对话框以是示用户输入信息。聚合查询(分组查询 )聚合查询也称分组查询创建分组查询有助快速分组和汇总数据。SQL查询SQL查询是用户使用SQL语句直接创建的一种查询。实际上Access所有的查询都可以认为是一个SQL查询因为Access就是以SQL语句为基础来实现查询功能的。SQL查询的分类SQL查询的分类包括联合查询、传递查询、数据定义查询和子查询。还有一些其它的查询方法这里就不在展开了说了如操作查询交叉表查询等。具体可以参考微软的帮助。3.1.2 选择查询操作你可以使用查询设计视图来创建查询。第一步点击 Query Qizard第二步点击 选择 Simple Query Wizard第三步选择表和字段 后点击 next第四部完成query 定义一个名称 Customers_Query你也可以修改排序方法选择 设计视图对Customers 修改排序规则是倒序 如下 图3.1.3 参数查询操作参数查询可以在运行查询的过程中自动修改查询的规则用户在执行参数查询时会显示一个输入对话框以提示用户输入信息这种查询称为参数查询。当需要对某个字段进行参数查询时首先切换到这个查询的设计视图然后在作为参数使用的字段下的“条件”单元格中先输入一对方括号在方括号内输入相应的提示文本。这样简单的参数查询就完成。具体操作如下在导航窗格中复制一个查询Customers_Query 并重命名为 Customers_Query_parameter打开查询选项卡 切换到设计视图在customerID 字段的 “Criteria” 属性中的方括号内输入相应的 提示文本[ Pls ask the user to enter the CustomerID:]完成以后保存退出。3.然后双击 展示 Customers_Query_parameter 就有会提示最终展示3.1.4 聚合查询聚合查询也称分组查询创建聚合查询有助于快速分组和汇总数据。因为使用传统的选择查询只能检索显示在数据源中的记录而使用聚合查询则可以对检索数据进行总计、平均值、计数等汇总操作。具体操作如下选择设计视图分别添加 Customersorders 和 Producrs2 在 功能区选项 “设计” 选项卡然后单击 “Totals”按钮3. 点击完成后会出现新的一行称为“Total”Total行会指示 access 在对指定字段执行聚合是使用什么聚合函数 默认函数是 “Group by ”。如下图所示你也可以根据需求选择其他的函数3.最后点击保存完成 操作。3.1.5 SQL 查询SQL(Structured QueryLanguage结构化查询语言)的主要功能就是在各种数据库之间创建联系相互沟通。SQL是关系数据库管理系统的标准语言SQL语句可以用来执行各种各样的操作例如更新表中的数据从表中提取数据等。目前绝大多数流行的关系数据库管理系统如 Oracle、Sybase、Microsoft SQL Server、Access 等都采用了 sQL标准。虽然很多数据库都对 SQL语句进行了再开发和扩展但是包括SELECT、INSERT、UPDATE、DELETE、CREATE 及 DROP 在内的标准 SQL 命令仍然可以用来完成几乎所有的数据库操作。这利我们在 下一个章节会重点介绍和说明具体操作如下比如我想 通过全名显示一些数据我可以这样写SQL1.选择 SQL QuerySQLSELECT [FirstName] [LastName] AS FullName, Customers.[PhoneNumber], Customers.[CustomerID]FROM CustomersORDER BY Customers.[CustomerID];2.保存后输入 Queries name 是 “Customer_SQL ” 完成。显示的如下3.2 怎么创建窗体友好的操作界面(窗体)会给用户使用数据库带来很大的便利用户不需要进行专门培训就能根据窗口中的提示完成工作。数据库中表或查询设计得好那仅是数据的内部存储方式而已如果窗体设计得杂乱而且没有足够的提示就会给用户带来很大的不便直接影响数据库系统的使用3.2.1 窗体的功能与构成窗体是系统与用户交互的界面为查看、添加、编辑和删除数据提供了较灵活的方式。绝大多数情况下不应该允许用户直接访表或查询数据表窗体为管理数据库数据的完整性提供了一种有用工具。1 窗体的功能窗体用于数据库中数据的维护主要用来输入数据。窗体是一个为用户提供可以输入和编辑数据的界面其具有以下三种功能。数据的显示与编辑窗体最基本的功能是显示与编辑数据。数据输入用户可以根据需要来设计窗体并作为数据库中数据输入的接口通过窗体可以节省数据录入的时间并提高数据输入的准确度。应用程序流控制与VB窗体类似Access 2003中的窗体也可以与函数、子程序相结合。在每个窗体中用户可以使用VBA编写代码并利用代码执行相应的功能。2.窗体视图这里的窗体视图可以理解是窗体的设计页面是最终用户与窗体较常见的交互方式。在窗体视图中显示窗体相当与运行应用 程序或者是软件的一个页面。3.2.2 窗体操作窗体的操作主要集中下面蓝色的线中它包含 Form DesginBlank FormForm Wizard 等操作对于初学者来说可以使用 Form Wizard 一 步步完成创建第一步 点击 Form Wizard 后选择你需要的多个字段第二步点击Next 选择 你的 Layout 类型有四种类型分别是 ColumnarTabularDatasheet and Justified如果选 datasheet 相当于一个Query。第三步确认 form 的名称 这个输入 Customer_Form。第四步完成。下面是完成显示后的效果。在底部状态栏可以显示记录数。以及搜索功能3.2.3 其他窗体当你 选择More Forms button 后, 你可以选择其他forms 如 Multiple itemsDatasheetSqlit Form 和 Modal Dialogue1 点击 Multiple Items给Form 命名为 Customers_Form_item.2. 点击Datasheet,给Form 命名为 Customers_Form_sheet点击 Sqlit Form,给Form 命名为 Customers_Form_sqlit4. 点击 Modal Dialogue 给Form 命名为 Customers_Form_test不过对于初学者来说Access 窗体中的 Modal Dialog 可能会稍微有些难理解。因为它不仅仅是一个普通窗体还常常会涉及窗体的显示方式、交互逻辑甚至可能进一步关联到 VBA 编程 的使用。简单来说模态对话框的特点是当它被打开时用户通常需要先完成当前对话框中的操作才能继续返回到其他窗口进行操作。正因为这种“必须先处理当前窗口”的特性它在一些数据录入、确认提示或参数输入的场景中非常实用。对于刚开始学习 Access 的读者来说这一部分不必一下子钻得太深。现阶段只需要先知道 如何创建和命名这种窗体理解它是一种具有特殊交互方式的窗体即可。至于它和 VBA 的配合使用可以在后续学习更高级的窗体设计时再逐步掌握。下面做一个演示 第一步双击 OK第二步 进入 VBA 界面 。输入VBA 代码Option Compare DatabasePrivate Sub Command1_Click()Dim result As Integerresult MsgBox(“hello access”, vbOKCancel vbQuestion, “OK”)If result vbOK Then MsgBox You clicked OK., vbInformation Else MsgBox You clicked Cancel., vbInformation End IfEnd Sub展示如下3.2.4 设计窗体视图如果觉得窗体不美观你需要怎么做呢 答案很简单 修改它。具体如下第一步 右击 Customer_Form, 选择Design View第二步 设计 View你可以修改 text input 的长度高度 背景色字体的 颜色sizesyle Font name,Font Color,Border Style, Back style 等很多属性第三步完成设计后点击保存。下面是完成后的效果。3.3 怎么创建报表报表是access数据库中的对象其主要功能是将表或查询的数据按照设计的方式打印出来。在报表中不仅可以控制每个对象的大小和显示方式还可以按照所需的方式 来显示相应的内容。可以添加 多级汇总统计比较甚至加上图片和图表3.3.1 报表的功能与类型尽管数据表和查询都可以打印但是报表作为Access数据库的一个重要组成部分可用于数据分组单独提供各项数据和执行计算还可以制成各种丰富的格式使用户的报表更易于阅读和理解;使用剪贴画、图片或扫描图像可以美化报表的外观;通过页眉脚可以在每页的顶部和底部打印标识信息。与其他的打印数据方法相比报表具有以下个优点。1报表不仅可以执行简单的数据浏览和打印功能还可以对大量原始数据进行比软汇总和小计。2报表可生成清单、订单及其他所需的输出内容可以方便、有效地处理信息。报表类型可以分为 单列报表多列报表表格式报表分组/总计报表等报表和窗体的区分报表和窗体的主要差别在于预期的输出。窗体主要用于数据输入及与用户进行交互。报表主要用于在屏幕上或通过打印副本的形式查看数据。在窗体中可使用计算字段来基于记录中的其他字段显示某个计算结果。对于报表通常情况下会针对记录组、一页记录或报装中包含的所有记录执行计算。3.3.2 创建报表创建报表主要有如下命令 ReportReport Desgin Blank ReportReport Wizard对于初学者来说可以选择 Report Wizard第一步 点击 Report Wizard第二步 点击 next 是否需要分组第三步点击 next,是否需要排序第四步 点击 next,选择 Layout 和 Orientation 。第五步点击 Finish 给报表命名Customers_report .第六步 对报表格式做微调先选中 Customers_report右键点击选择 Design View设计视图。报表创建完成后通常还需要进行进一步的格式调整。因为不同数据表中的字段数量、字段长度和显示内容都不完全一致系统自动生成的报表有时可能无法做到完全合理的排版例如字段显示不全、间距不协调或者整体布局不够美观。所以在这一步中我们需要根据实际显示效果对报表的格式进行微调使报表内容更加完整、布局更加清晰最终达到更好的展示效果。最终report 呈现的效果当然如果你觉的需要美化可以进一步处理。