根据用户输入过滤报告

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],可以在报告中完成相同的操作。