在查询、窗体和报表中使用参数

如果想通过使用 Access 中的查询在每次运行时提示输入,可以创建一个 参数查询。

还可创建一个窗体来收集参数值,这些参数用于限制查询、窗体或报表所返回的记录。本文介绍如何使用窗体来优化查询、窗体和报表中的参数使用。

本文内容

概述

在查询中使用参数

指定参数数据类型

创建收集参数的窗体

创建收集报表参数的窗体

概述

可以在 Access 中使用参数查询条件来限制查询返回的记录集。可能会发现参数查询提供的对话框不足以满足目的。在这种情况下,可创建更能满足参数收集需求的窗体。本文介绍如何创建收集查询和报表参数的窗体。本文假定读者已熟悉如何创建查询和在查询中定义参数。至少应熟悉如何创建选择查询,然后方可继续操作。

本文提供在查询中使用参数的示例。本文不提供有关指定标准的全面参考。

在查询中使用参数

在参数中使用查询和创建使用条件的查询一样简单。可以将查询设计为提示一则信息(例如一个部件号)或多则信息(例如两个日期)。对于每个参数,参数查询显示一个单独的对话框,提示输入该参数的值。

将参数添加到查询

  1. 创建一个选择查询,然后在 设计视图 中打开该查询。

  2. 在需要应用参数的字段的“条件”行中,键入希望参数对话框显示的文本,并将文本括在方括号内,例如:

    [Start Date]

    运行参数查询时,对话框中显示不带方括号的提示。

    还可将表达式用于参数提示,例如:

    Between [Start Date] And [End Date]

    注意: 每个参数提示将显示一个单独的对话框。第二个示例显示两个对话框:一个“Start Date”对话框和一个“Start Date”对话框。

  3. 对要添加参数的每个字段重复步骤 2。

可以使用上述步骤将参数添加到以下任意一种查询类型:选择、交叉表、追加、生成表或更新。

还可以按照如下步骤将参数添加到联合查询:

  1. 在 SQL 视图中打开联合查询。

  2. 添加一个 WHERE 子句,其中包含要提示输入参数的每个字段。

    如果已经存在一个 WHERE 子句,请检查该子句中是否已经存在要使用参数提示的字段。如果字段不存在,请添加相应字段。

  3. WHERE 子句中使用参数提示,而不使用条件。

指定参数数据类型

还可以指定参数应该接受的数据类型。可以指定任何参数的数据类型,但尤其重要的是指定数值、货币或日期/时间数据的数据类型。在指定参数应该接受的数据类型后,如果用户输入错误类型的数据(例如,应该输入货币,但输入了文本),则会看到更有帮助的错误消息。

注意: 如果将参数配置为接受文本数据,则输入的任何内容都将被解释为文本,并且不会显示任何错误消息。

若要指定查询中参数的数据类型,请按照以下步骤操作:

  1. 在设计视图中打开查询,在“设计”选项卡上的“显示/隐藏”组中,单击“参数”

  2. 在“查询参数”对话框中的“参数”列中,为您要为其指定数据类型的每个参数键入提示信息。请确保每个参数都与您在查询设计网格的“条件”行中使用的提示信息相匹配。

  3. “数据类型”列中,选择每个参数的数据类型。

创建收集参数的窗体

虽然参数查询具有收集参数的内置对话框,但是它们仅提供基础功能。使用报表收集参数可获得以下功能:

  • 使用特定于数据类型的控件,例如对于日期使用日历控件。

  • 保留已收集的参数,以便将其用于多个查询。

  • 提供用于参数收集的组合框或列表框,便于从可用数据值列表中进行选取。

  • 提供其他功能的控件,例如打开或刷新查询。

下方视频介绍如何通过创建简单窗体而不是使用通常与参数查询关联的对话框来收集查询参数。

你的浏览器不支持视频。请安装 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

创建收集报表参数的窗体

实现此方案有多种方式,但我们仅介绍一种主要使用宏的方法。按照以下步骤创建一个收集报表参数的窗体

步骤 1:创建一个接收输入的窗体

步骤 2:创建一个检查参数窗体是否已加载的代码模块

步骤 3:创建一个控制窗体和报表的宏

步骤 4:向窗体添加“确定”和“取消”命令按钮

步骤 5:将窗体数据用作查询条件

步骤 6:将宏操作添加到报表事件

步骤 7:试用

步骤 1:创建一个接收输入的窗体

  1. 在“创建”选项卡上的“窗体”组中,单击“窗体设计”。

  2. 在“设计”视图中,按 F4 显示属性表,然后指定窗体属性,如下表所示。

    属性

    设置

    标题

    输入要在窗体标题栏中显示的名称。

    默认视图

    单个窗体

    允许窗体视图

    允许数据表视图

    允许数据透视表视图

    允许数据透视图视图

    滚动条

    两者均无

    记录选择器

    导航按钮

    边框样式

    对话框边框

  3. 对于希望窗体收集的每个参数,请点击“设计”选项卡上“控件”组中的“文本框”。

  4. 设置文本框属性,如下表所示。

    属性

    设置

    名称

    输入一个描述参数的名称,例如 StartDate

    格式

    选择一个反映参数字段数据类型的格式。例如,对日期字段选择“常规日期”。

  5. 保存窗体,并为其指定名称,例如“frmCriteria”。

步骤 2:创建一个检查参数窗体是否已加载的代码模块

  1. 在“创建”选项卡的“宏与代码”组中,单击“模块”。注意:如果使用 Access 2007,请在“创建”选项卡上的“其他”组中单击“模块”。

    一个新模块随即在 Visual Basic 编辑器中打开。

  2. 在 Visual Basic 编辑器中输入或粘贴以下代码:

    Function IsLoaded(ByVal strFormName As String) As Boolean
    Dim oAccessObject As AccessObject
    Set oAccessObject = CurrentProject.AllForms(strFormName)
    If oAccessObject.IsLoaded Then
    If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
    End If
    End If
    End Function
  3. 保存模块并指定一个独特名称,然后关闭 Visual Basic 编辑器。

步骤 3:创建一个控制窗体和报表的宏

使用 Access 宏的子宏功能可定义单个宏中所需的所有步骤。为控制此过程所需的各种任务,我们将创建 4 个子宏:“打开对话”、“关闭对话”、“确定”和“取消”。使用下方截图作为指南,创建一个包含以下子宏和操作的新宏。请注意,此示例中,参数窗体名为“frmCriteria”。调整宏,使之与先前创建的窗体名称一致。若要查看所有宏操作,还需确保单击“设计”选项卡上的“显示所有操作”。

屏幕截图:包含 4 个子宏和操作的 Access​​ 宏。

保存并关闭宏。为宏指定名称,例如“日期范围宏”。

步骤 4:向窗体添加“确定”和“取消”命令按钮

  1. 重新打开先前在“设计”视图中创建的参数窗体。

  2. 确保未选择“设计”选项卡上“控件”组中的“使用控件向导”。

  3. 在“设计”选项卡上的“控件”组中,单击“按钮”。

  4. 将指针置于窗体中的文本框下方,然后拖动指针创建一个“确定”命令按钮。

  5. 如果属性表不可见,请按 F4 显示该表。

  6. 如下表所示,设置“确定”按钮的属性。

    属性

    设置

    名称

    确定

    标题

    确定

    默认

    OnClick

    输入宏名称,例如 Date Range Macro.OK

  7. 如下表所示,创建“取消”命令按钮并设置其属性。

    属性

    设置

    名称

    取消

    标题

    取消

    OnClick

    输入宏名称,例如 Date Range Macro.Cancel

  8. 保存并关闭窗体。

步骤 5:将窗体数据用作查询条件

  1. 打开先前在“设计”视图中创建的查询。

  2. 输入数据条件。使用“窗体”对象、窗体名称和控件名称:

    • 例如,在 Access 数据库 (.accdb 或 .mdb) 中,对于名为“frmCriteria”的窗体使用如下表达式,以引用查询中名为“Start Date”和“End Date”的控件。

      Between [Forms]![frmCriteria]![Start Date] And [Forms]![frmCriteria]![End Date]

步骤 6:将宏操作添加到报表事件

  1. 打开要在“设计”视图中使用的报表。

  2. 如果属性表不可见,请按 F4 显示该表。

  3. 确保报表的“记录源”属性使用先前定义的参数查询。

  4. 设置其他两项报表属性,如下表所示。

    属性

    设置

    打开

    输入宏名称,例如 Date Range Macro.Open Dialog

    关闭

    输入宏名称,例如 Date Range Macro.Close Dialog

    触发报表“打开”事件时,Access 将运行“日期范围宏”对象的“打开对话框”子宏中所定义的操作。同样,关闭报表时,Access 将运行“日期范围宏”对象的“关闭对话框”子宏中所定义的操作。

  5. 保存并关闭报表。

步骤 7:试用

现已创建所有 Access 对象,是时候开始试用了。在“报表”视图或“打印”视图下打开报表。请注意,Access 显示报表前,参数窗体会以对话框模式打开。在先前创建的文本框中输入所需的条件,然后单击窗体上的“确定”按钮。Access 随后隐藏该窗体(可见 = 否),并且打开的报表中仅包含与条件匹配的数据。其原理在于此报表所基于的参数查询可以阅读隐藏窗体的控件中的值。关闭报表时,Access 也会关闭参数窗体。

返回页首

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×