如何通过Access表单为Access报表上的嵌入式查询设置参数?

时间:2019-01-16 23:10:09

标签: sql vba ms-access

我有一个基于查询的现有Access报告。在现有报告中,我使用括号将参数设置为; [CSRName],[StartDate]和[EndDate]。我使用下面的VBA将这些参数填写在表单中;

所有这些都很好。我的问题是我有这个查询,计算CSR造成的错误总数。我可以轻松地在报告中显示错误总数。我想做的是在报告上有另一个文本框,其中显示了CSR完成的项目总数。为此,我需要将文本框的“控制源”嵌入到另一个查询中。我已经编写了该查询,并且该查询在表单外起作用。不过,我需要做的是将与生成报表相同的参数传递给报表上的该嵌入式查询。我不知道该怎么做。我可以将参数传递给报表本身,并且可以正常工作,但是尝试执行相同操作不会将参数传递给报表中的嵌入式查询。它不断弹出一个输入框,并要求我为其提供变量。

我假设我可以像对待报表所基于的查询一样对待嵌入式查询,因此我也使用相同的过程尝试将参数传递给它,但是它没有用。

Private Sub RunQuery_Click()

    DoCmd.SetParameter "CSRName", Me.CSRNameCB
    DoCmd.SetParameter "StartDate", "#" & Me.StartDate & "#"
    DoCmd.SetParameter "EndDate", "#" & Me.EndDate & "#"

    DoCmd.OpenReport "rpt_CSRErrorTracking", acViewPreview

End Sub

我需要的是将参数从表单传递到报表所基于的查询以及嵌入在报表本身中的查询的方法。

1 个答案:

答案 0 :(得分:0)

如何让报告和报告字段基于的查询存储到表单字段的“链接”,就像这样(按表单概念查询)...

在查询条件中的适当字段:
= [表单]![MyForm]![CSRNameCB]

和:
在[Forms]![MyForm]![StartDate]和[Forms !! [MyForm]![EndDate]

之间

然后在打开报告的表单上,您根本不需要设置任何参数。