Access_CH04_窗体

本章目标

  • 窗体概述
  • 通过自动方式创建简单窗体
  • 通过向导创建窗体
  • 通过设计视图创建窗体

窗体概述

在窗体时一种最具有灵活性的数据库对象,用来显示、输入或编辑数据库中的数据,虽然在前几章已经介绍过数据表、查询等数据库对象,并利用他们对数据进行管理,但是数据表和查询对象在显示数据时,界面缺乏友好性。而窗体时一个交互的界面、一个窗口,用户可以通过窗体直观地查看或维护数据库,事实上,用户的数据处理工作大多都是通过窗体来完成的。

窗体的功能

作为用户和Access应用程序之间的主要接口,窗体骑着联系数据库与用户的桥梁作用。它既可以用于显示表和查询中的数据,输入数据、编辑数据和修改数据,也可以作为输入界面,接受用户的输入,判定其有效性,合理性,并针对输入执行一定的功能。具体来说,窗体具有以下几种功能。

(1)数据的显示与编辑

窗体最基本的功能是显示与编辑数据。窗体可以显示来自多个数据表中的数据。此外,用户可以利用窗体对数据库中的相关数据进行添加、删除和修改,并可以设置数据的属性。用窗体来显示并浏览数据比用表和查询的数据表格是显示数据更加灵活

(2)数据输入

用户可以根据需要设计窗体,作为数据库中数据输入的接口,这种方式可以节省数据录入的时间并提高数据输入的准确度。

(3)应用程序流控制

Access中的窗体可以和函数,子程序相结合,在每个窗体中,用户可以编写代码,并利用代码执行相应的程序

(4)信息显示和数据打印

在窗体中可以显示一些警告或解释信息。此外,窗体也可以用来执行打印数据库数据的功能

窗体的类型

根据显示数据方式的不同,窗体可分为纵栏式窗体、表格式窗体、数据表窗体、主/子窗体、图表窗体和分割窗体,它们各有不同的功能和特点

(1)纵栏式窗体

纵栏式窗体是最基本的,也是默认的窗体格式。纵栏式窗体每屏显示一条记录,每行一个字段。这种布局非常清晰,它将窗体中的一条记录按列分隔,每列的左边显示字段名,右边显示字段内容。

img

(2)表格式窗体

表格式窗体是一种连续窗体,即每屏显示多条记录,字段在一行中从左向右排列

不过这种窗体更适合查看字段数量较少的表,否则操作数据时,常需要左右移动,不太方便

img

(3)数据表窗体

数据表窗体从外观上看与表和查询的数据表视图显示数据的界面是一样的,就是将“数据”表套用到窗体上,显示Access最原始的数据风格

img

(4)主/子窗体

窗体中的基本窗体是主窗体,窗体中的窗体成为子窗体。主/子窗体通过常用于显示多个表或查询中的数据,这些表与查询中的数据具有一对多关系。一般来说,主窗体显示一对多关系中的主表信息,通常使用纵栏式窗体。子窗体显示一对多关系的子表信息,通常使用的是表格式窗体或者数据表窗体

(5)图表窗体

图表窗体以图形的方式显示用户的数据,例如柱形图、折线图、饼图等

(6)分割窗体

分割窗体是一个窗口分割为上下两个分区,窗口下部的分区显示一个数据表,上部的分区中显示一个窗体。用于输入或编辑数据表中所选记录的有关信息

窗体的视图

为了能够以各种不同的角度和蹭面来查看窗体,Access提供了3种常用视图模式,分别为窗体视图、设计视图、布局视图

(1)窗体视图:窗体视图是完成窗体设计之后的效果图,体现的是最终面向应用程序用户的效果。它是窗体的运行视图,该视图用来显示数据表中的记录。用户可以通过它来查看、添加和修改数据

(2)设计视图:和我们的表设计以及查询设计一样,对窗体进行创建和修改的主要场所。在设计视图中,可以编辑窗体中需要显示的任何元素,包括需要显示的文本和样式、控件的添加和删除、图片的插入等

(3)布局视图:布局视图是用于修改窗体的最直观的视图,可用于对窗体进行几乎所有的需要的更改,在布局视图中,窗体实际正在运行,因此用户可以在浏览数据的同时更改设计

通过自动方式创建窗体

与表和查询的创建相同,窗体的创建也是在“创建”选项卡中完成的

创建窗体的方法

在创建选项卡的“窗体”功能面板中,就可以看到创建窗体的多种方法

img

(1)窗体:根据选择的某个表或查询对象自动创建一个纵栏式窗体,使用“窗体”按钮创建窗体是最快的方法

(2)窗体设计:用于打开窗体设计视图,创建一个新的空白窗体

(3)空白窗体:创建一个空白窗体,并在布局视图中显示新窗体

(4)窗体向导:打开窗体向导对话框,根据向导提示创建窗体

(5)导航:用于创建导航窗体。如果在Access应用程序中需要在不同的窗体和报表之间进行切换,可以选择创建导航窗体来将这些数据库对象组成一个整体,实现他们的快速跳转,就像Access的导航窗格一样

(6)其他窗体:有四种创建窗体的方法,如下:

一、多个项目:利用当前选定(打开)的数据表或查询自动创建一个包含多条记录的窗体,也就是表格式窗体

二、数据表:利用当前选定(打开)的数据表或查询自动创建一个数据表窗体

三、分割窗体:可以同时提供两种视图,既上方的窗体视图和下方的数据表视图。两种视图格式的数据是一样的,如果在窗体的某个视图选择了一条记录,那么下面的视图也选择同样的记录

四、模式对话框:创建一个带有命令按钮的浮动对话框窗口,始终保持在系统的最上面,登录窗体就属于这种窗体

自动创建窗体

Access提供了4种基于表和查询快速自动创建窗体的方法,分别是显示单条记录的纵栏式窗体、显示多条记录的表格式窗体、同事显示单条和多条记录的分割式窗体、每条记录的字段以行和列格式显示的数据表窗体

(1)创建纵栏式窗体

选中一个学生表,然后点击创建选项卡—点击“窗体”,就自动创建了一个纵栏式窗体,点击保存,将窗体保存下来

img

(2)创建表格窗体

表格窗体是像表格一样,每一个内容都用一个单元格围起来

img

(3)创建数据表窗体

数据表窗体的特点是每条记录的字段以行和列的格式显示,也就是每条记录为一行,每个字段为一列,和表里面显示的内容一致,字段名称显示在每一列的顶部

img

(4)创建分割窗体

分割创建是显示两种布局形式的窗体

img

在分割窗体中,点击下面的导航切换,两种视图都会切换数据。同样在窗体的下半部分,选中一行记录,上半部分的记录也会更着变化,可以使用创建中间的分隔条调整窗体上、下部分的大小

通过向导创建窗体

窗体中的数据可以来自一个表或者是查询,也可以来自多个表和查询。创建一个基于一个表或查询的窗体最简单的方法是通过自动方式创建窗体。创建基于多个表或查询的窗体最直接的方法就是使用窗体向导。

虽然使用窗体向导创建窗体不如自动创建窗体快捷、方便,但可以进行相对详细的设置,包括按要求选定字段和窗体布局,创建的窗体更灵活一点。

创建基于一个表的窗体

例如,创建一个学生表的窗体,只选择学号、姓名、性别、电话。

(1)点击窗体向导,选择字段

img

(2)选择一种布局方式,例如表格

img

(3)为窗体起名

img

(4)点击完成,创建完毕

img

创建基于多个表或查询的窗体–主/子窗体

使用窗体向导可以创建基于多个表或查询的窗体,并且可以以主/子式窗体呈现。在创建窗体之前,要确定作为主窗体的数据源与作为子窗体的数据源之间创建了关系

例如,我们查询年级表和学生表,我们先不创建关系,在执行的之后会提示出错

img

所以我们要先保证已经创建了关系,然后这时候可以创建多表窗体了

将两个表的字段都选择到右边的窗口

img

点击单位大的表

img

完成创建

img

通过设计视图创建窗体

使用向导可以方便地创建窗体,但在大多数情况下,无论格式还是内容,向导所生成的窗体都不能满足用户的预期要求,这就需要在设计视图中对其进行修改,以满足需要

窗体的组成

要想在设计视图中设计窗体,首先就要了解设计视图中窗体的结构组成

在窗体设计视图中,窗体的工作区主要包括窗体页眉、页面页眉、主体、页面页脚和窗体页脚五个部分

img

主体:是窗体的主要组成部分,用来显示窗体数据源中的记录。主体具有多种显示格式,非常灵活,所有相关记录显示的设置都在这一节里

窗体页眉:是窗体的首部,位于设计窗口的最上方,一般用于设计窗体的标题、说明性文字或放置命令按钮、下拉列表等不随记录改变的信息,打印时只在第一页出现一次。

窗体页脚:是窗体的尾部,与窗体页眉相对应,位于窗体底部,作用于窗体页眉类似。也可以用于显示汇总主体节的数据,使用命令的操作说明等信息

页面页眉:显示在窗体页眉的下方,位于每一页的顶部,一般用来设置窗体在打印时的页头信息,如日期、页码等数据

页面页脚:在每一页的底部,与页面页眉相对应,一般用来设置窗体在打印时的页脚信息,如日期、页码等数据

页面页眉和页面页脚中的内容,都是只在设计视图中和打印窗体的时候显示,其他视图看不到

一般来说,窗体工作区只有主体部分,但是通过在设计视图中右击可以自定义是否显示窗体页眉/页脚、页面页眉/页脚

img

窗体中的控件

窗体只是一个存放窗体空间的容器,窗体对象要具有多种功能,是通过窗体中放置的各种空间来完成的。空间和属性构成了窗体和报表的基础。因此我们在使用空间和属性自定义窗体或报表之前,要先理解空间和属性的一些基本概念

一、常用控件介绍:

在设计视图中,“控件“功能面板可以查看到所有控件

img

按钮 名称 功能
img 选择对象 选择控件,对其进行移动、放大、缩小和编辑,单击该按钮可以释放以前选定的控件按钮
img 文本框 显示数据,并允许用户编辑数据
img 标签 显示说明文本的控件,如窗体的标题
img 按钮 也成为命令按钮,单击时执行宏或者VBA的代码
img 选项卡控件 创建一个多页的选项卡窗体或选项卡对话框,用来显示属于同一内容的不同对象的属性
img 链接 创建一个超级链接,单击可以启动相应的链接对象
img web浏览器控件 用于在窗体中显示网页信息
img 导航控件 用于创建窗体或报表中的导航
img 选项组 显示一组可选值,常与复选框、选项按钮或切换按钮搭配使用
img 插入分页符 用于定义多页窗体的分页位置
img 组合框 含有列表框和文本框的组合框控件,既可以在文本框中输入文字,也可以在列表框中选择输入项
img 图表 用于在窗体中创建图表,如创建图表窗体等
img 直线 用于在窗体上画线,一般用于对象的分割
img 切换按钮 通过按钮的按下或者弹起来显示状态,一般使用图片或者图标,很少使用文字
img 列表框 显示可滚动的数据列表
img 矩形 用于在窗体上画矩形,通常用于突出显示某些对象或数据
img 复选框 建立复选按钮,可以对多组是/否型数据进行共存选择
img 未绑定对象框 用来加载未绑定的OLE对象,如图片、视频、音频等
img 附件 用于管理附件数据类型的文件
img 选项按钮 也成为单选按钮,在一组中只能选择一个
img 子窗体/子报表 加载另一个子窗体或子报表,显示来自多个数据源的数据
img 绑定对象框 用来加载另一个子窗体或子报表,显示来自多个数据源的数据
img 图像 用于显示一个图片,占用空间极少,是修饰窗体的重要手段之一
img 控件向导 在选中该按钮时,创建其他控件的过程中,系统会自动启动控件向导帮助用户快速地设计控件(默认是选中状态)

在Access中,可以将所有控件根据其与数据源的关系分为绑定型、非绑定型与计算型3钟,绑定型控件主要用于显示、输入和更新数据库中的字段;非绑定型空间没有数据来源,可以用来显示信息、线条、矩形或图像等;计算型空间用表达式作为数据源,表达式可以是窗体所引用的表或查询字段中的数据,也可以是窗体上的其他控件中的数据。由于计算型空间的值不会改变基本表中的数据,所以通常也可以看做是非绑定型控件

二、控件的使用

(1)控件的添加

创建空间的步骤都是先在”控件”组中选择需要添加的控件种类,单击相应的按钮,然后,按住鼠标组件拖动松手就可以了。或者直接点击在主体中

控件创建好后,就要对它进行个性化的设置–设置属性值,每一个空间都有自己的属性项。不同类型的空间属性项不同,某些控件在被添加的时候,会启动“控件向导”,在不熟悉空间的属性的时候,就可以使用控件向导来添加。但是并不是所有的控件都有控件向导,组合框是有控件向导的。

我们可以在添加控件后,对右边的属性进行设置,右击控件选择”属性“

img

(2)控件的操作

在控件添加到窗体上之后,可以对控件进行调整位置和大小、复制和删除等操作,但是在执行这些操作之前,必须要先选中空间。选择控件的操作只能在窗体设计视图或布局视图中进行

可以操作空间的大小以及移动位置

img

另外,如果想要对多个空间进行对齐、大小、间距等操作,可以用CTRL或者shift键选中多个空间,然后利用“窗体设计工具”中的“排列”和“格式”子选项卡下的响应命令进行操作。其中“排列”主要是针对空间的位置、大小、对齐方式等设置,“格式”是针对控件的外观,字体颜色或者字号等进行设置

同样,要复制或者删除控件,直接选中控件,然后右击点击复制或删除

(3)添加绑定控件

添加绑定控件与其他控件的方法有所不同,一般有下列两种方法:

1、从字段列表中拖动。单击“窗体设计工具”中的“设计”选项卡,在“工具”功能面板的“添加现有字段”按钮即可打开“字段列表”窗口,将字段拖动进来,可以用ctrl键或者shift键多选

img

2、利用属性表窗格。将某个需要绑定的控件添加到窗体中,单击“窗体设计工具”、设计选项卡–工具组的“属性表”按钮,在“属性表”窗格中的“数据选项卡”,在“控件来源”下拉列表中可以选择控件要绑定的字段或者是要绑定的表

img

创建自定义窗体

自定义窗体就是开发人员根据用户的需求在空白窗体中设置记录、创建控件、设置控件属性,将控件与窗体结合在一起的窗体对象

例如:创建一个“学生成绩查询”的窗体对象

(1)创建一个空白窗体,点击创建选项卡–点击窗体设计

(2)添加一个窗体标题。在窗体设计这里右击,点击显示窗体页眉/页脚,然后添加一个标签控件,将标签控件显示在页眉处,输入“学生成绩查询”,我们可以在上方的“格式”选项卡对字体颜色以及大小进行改变

img

(3)通过查询向导创建一个组合框控件。我们成绩查询,就需要写成绩是有哪些成绩,通过向导一步一步来写

首先要确保控件向导是否已经打开

img

img

img

img

可以将名称更改为简单一点的,更改为C1

(4)在窗体中创建文本框控件。添加两个文本框控件,分别输入“输入学号”,名称改为B1、“输入姓名”,名称改为B2,可以将文本框的“名称”属性更改为简单一点的,这样引用的时候会方便同时我们可以选中这几个控件,然后在排列里面更改好对齐方式,保持一致

(5)调整控件大小。同时我们可以选中这几个控件,然后在排列里面更改好对齐方式,保持一致

(6)保存并定义名称

img

这个时候我们可以切换到窗体视图,查看最终的效果啦,如果不满意,就重新进入设计视图中调整

img

然后,为了使刚刚创建的窗体具有真正查询的功能,实现窗体和查询数据之间的传递,那么我们就需要根据窗体控件来创建相对应的查询对象“学生成绩查询”

(1)点击查询设计,选择学生表、成绩表、科目表

(2)选择查询学号、学生姓名、科目、成绩

(3)在条件这一栏输入表达式:分别对应刚刚输入的名称

学号是定义为B1,输入 Like [Form]![刚刚定义的窗体名称]![B1]& “*”

姓名定义是B2,输入Like [Form]![刚刚定义的窗体名称]![B2]& “*”

科目定义是C1,输入Like [Form]![刚刚定义的窗体名称]![C1]& “*”

img

保存即可

第三步,增加一个命令按钮,是刚刚创建的窗体能够查询到查询设计的信息

(1)进入到成绩查询的窗体设计

(2)增加一个按钮控件

(3)类别选择杂项,操作选择运行查询

(4)选择要运行哪个查询

(5)选择显示文本、输入名称、保存

此时就可以在窗体中输入姓名或学号来查询成绩了

使用设计视图创建主/子窗体

之前讲过使用窗体向导创建主/子窗体的方法,实际上,子窗体也是窗体的一个控件,可以在窗体的设计视图中直接创建。

利用设计视图为窗体添加子窗体分两种情况:

(1)在主窗体中添加已存在的子窗体

(2)在主窗体中直接创建子窗体

例如,我们要在年级表中创建子窗体学生表

(1)点击创建选项卡中,窗体设计创建一个空白窗体

(2)打开“窗体”控件中的“属性表”窗格,设置“数据”选项卡下面的“记录源”属性,设置为年级表

img

(3)在窗体的适当位置插入一个“组合框”控件,系统自动弹出“组合框向导”对话框,选择“基于组合框中选定的值而创建的窗体上查找记录”

(4)点击下一步,选择要显示的字段,再点击下一步,主键不会显示在这个表当中,然后点击完成

(5)在适当位置再插入一个控件“子窗体/子报表”控件,弹出向导框

(6)选择使用现有的窗体(前提是已经有了子窗体),这时候选择学生表查询的窗体

(7)选择默认操作

img

(8)选择下一步,取名,点击完成

最终结果:

img

创建其他类型的窗体

一、创建图表窗体

图表窗体将数据以直观的图标形式显示出来,能很容易地区分出数据之间的差异,便于对数据进行分析处理

(1)点击窗体设计,创建一个空白窗体

(2)点击图表控件,选择一个表或者一个查询,这里选择成绩表

(3)选择成绩表当中的字段,我们想要看每个同学每个科目的分数,那么就选择学号、科目编号和成绩三个字段就可以了

(4)选择一个图表类型,这里我们可以选择柱形图

(5)直接下一步下一步,最后给图表取个名称,点击完成,这里会出现一个问题,当图表真正创建之后,不会显示我们想要的信息,这时候需要切换到窗体视图,就会显示正确的数据了

img

可以再演示,先创建一个查询,查询学生表当中男生和女生的人数,然后是图表选择查询显示出来

二、创建导航窗体

导航窗体相当于一个装载各种窗体对象的容器,它将不同的窗体对象整合在一个窗体中,通过标签来实现他们之间的切换

(1)单击“创建”,点击“窗体”组中的“导航”按钮,在下拉菜单中选择“水平标签”选项,打开导航窗体的布局视图

(2)在导航窗格中的“新增”标签出添加窗体对象,直接拖进来

(3)可以修改标签的 名称, 双击修改

(4)切换到窗体视图,可以查看最终效果

(5)保存,填写名称

img

三、为窗体添加日期和时间

在窗体中添加系统日期和时间的操作步骤如下:

(1)打开要操作的窗体的设计视图

(2)单击“设计”选项卡中”页眉和页脚“功能,点击日期和时间,选择包含日期或包含时间或者两个都选中,日期和时间会插入到窗体页眉上面。

(3)插入之后切换到窗体视图查看,可显示正常效果,另外,插入徽标和标题也是一样

(4)删除日期和时间,在设计视图中,选中,点击Delete键

img

四、设置窗体背景颜色

第一种方法:在窗体设计视图中,点击“格式”选项卡,点击“背景图像”上传一个背景图片

第二种方法:在属性表中,点击窗体中的格式,图片选项里面可以选择图片。另外还可以更改图片的格式:

img

思考题

1.窗体的作用是什么?

2.窗体结构包含哪几个部分

3.如何在窗体上创建和使用控件

4.举例说明,标签、文本框和组合框三者的异同之处

5.如何正确创建带子窗体的窗体?主窗体和子窗体的数据来源有何关系?