根据用户输入过滤报告
Filter a Report based on user input
我创建了一个报告模板,我想根据特定的 IDENT NO 打开单页报告。报告中的所有字段都是从关联的 IDENT NO 生成的。
目前,当我打开报表时,它会为报表数据 table 中的每个 ID 编号创建一个单页报表。
相反,当用户试图打开报告时,我想提示用户输入他们正在查找的特定报告的标识号,这样它只会打开与输入了 IDENT NO.
我怎样才能实现这种过滤?
您可以显示一个输入框供用户插入 ID,然后打开并筛选报表。
Dim id As String
id = InputBox("Enter the identification number:", "YourInputBoxTitle")
'if a value was entered, open and filter report
If Len(Trim(id)) > 0 Then
DoCmd.OpenReport "ReportName", acViewPreview, , "[IDENT NO] = " & id, acWindowNormal
End If
使用 InputBox
的替代方法是使用“参数查询”(文档 here)
您可以在查询条件或报表设计视图中的任何位置输入 [IdentNoVariable]
,然后会出现一个对话框(当报表或查询为 运行 时)要求您“输入参数值” IdentNoVariable.
例如,如果您想在查询期间限制 ID #(比如您的报告调用的查询):
看到的对话框在 运行 查询时出现,并且包含在查询条件中看到的变量文本。通过在报告中需要输入值的部分输入 [IdentNoVariable]
,可以在报告中完成相同的操作。
我创建了一个报告模板,我想根据特定的 IDENT NO 打开单页报告。报告中的所有字段都是从关联的 IDENT NO 生成的。
目前,当我打开报表时,它会为报表数据 table 中的每个 ID 编号创建一个单页报表。
相反,当用户试图打开报告时,我想提示用户输入他们正在查找的特定报告的标识号,这样它只会打开与输入了 IDENT NO.
我怎样才能实现这种过滤?
您可以显示一个输入框供用户插入 ID,然后打开并筛选报表。
Dim id As String
id = InputBox("Enter the identification number:", "YourInputBoxTitle")
'if a value was entered, open and filter report
If Len(Trim(id)) > 0 Then
DoCmd.OpenReport "ReportName", acViewPreview, , "[IDENT NO] = " & id, acWindowNormal
End If
使用 InputBox
的替代方法是使用“参数查询”(文档 here)
您可以在查询条件或报表设计视图中的任何位置输入 [IdentNoVariable]
,然后会出现一个对话框(当报表或查询为 运行 时)要求您“输入参数值” IdentNoVariable.
例如,如果您想在查询期间限制 ID #(比如您的报告调用的查询):
看到的对话框在 运行 查询时出现,并且包含在查询条件中看到的变量文本。通过在报告中需要输入值的部分输入 [IdentNoVariable]
,可以在报告中完成相同的操作。