使用参数查询在 MS Access 报告中生成图表

Joh*_*rth 5 ms-access

我正在使用 Microsoft Access 2007 并且我有一个看起来像这样的查询;

PARAMETERS Identifier TEXT(255);

SELECT 
  DateDiff('h', (SELECT Min(SampleDateTime) FROM Specimen WHERE UserID=[Identifier]), SampleDateTime) AS ElapsedTime, Specimen.ValueA 
FROM Specimen
WHERE Specimen.UserID=[Identifier]
ORDER BY Specimen.SampleDateTime
Run Code Online (Sandbox Code Playgroud)

现在,如果我打开查询,然后在弹出的表单中输入适当的“标识符”值,则此查询可以正常工作。但是,我想然后使用此查询在列出所有研究的报告中生成图表。IE。报告将由每条记录 1 页组成,每页将包含 1 个图表,将上述数据绘制为折线图。

但是,如果我弹出一个图表并使用向导创建图表,当我到达我想将报告中当前记录中的恶魔分配给图表中的值的阶段时,我无法分配我上面描述的“标识符”参数的报告变量。现在,通常,我会构建查询以提取所有数据,然后使用图表向导为该数据分配一个“过滤器”。但是,由于我有一个子查询,因此在这种情况下这不起作用。

我相信我正在寻找的是一种从多记录报告中的当前记录参数分配参数“标识符”的方法。

Rol*_*DBA 3

您必须尝试一些有点疯狂的事情,例如以下内容:

报表有一个名为 Tag 的属性
在设计视图中打开报表
打开属性表并选择“其他”选项卡
Tag 属性位于列表底部

您可以按如下方式访问该标签:

Reports("Report Name").Tag
Run Code Online (Sandbox Code Playgroud)

只需将 替换[Identifier]Reports("Report Name").TagMe.Tag

这样,如果您打开查询,仍然会提示您输入 UserID

当您打开报告时,设置Me.Tag为您想要的任何数字。首先如何设置它?

在属性表上,单击Event Tab。在 中OnLoad Event,单击三个点(省略号)。菜单弹出窗口。点击Code Builder。VBA 打开:

Private Sub Report_Load()

End Sub
Run Code Online (Sandbox Code Playgroud)

现在将该设置放入(假设 UserID 来自表单):

Private Sub Report_Load()

   Me.Tag = Forms("Form Name")("Field Name")

End Sub
Run Code Online (Sandbox Code Playgroud)

试一试 !!!