【问题标题】:Can you use a TempVar in MS Access VBA linking to a element on an sub-report您可以在 MS Access VBA 中使用 TempVar 链接到子报表上的元素吗
【发布时间】:2026-01-23 01:00:01
【问题描述】:

我创建了一个 Access 报告,带有一个子报告。

通过电子邮件发送报告时,报告上的电子邮件按钮会在通过电子邮件发送 PDF 副本之前删除“样本”水印。我的 VBA 在主报表上运行良好,但在不对报表名称进行硬编码时,我很难让它在子报表上运行。

主报告显示第 1 页和第 2 页,子报告用于第 3 页 (p3)。

以下正在努力隐藏子报告上的水印:

Me.rptTermsReport1_p3.Report.imgSample3.Visible = False

由于我有大约 40 个报告,我不想硬编码子报告名称,而是使用 TempVar 作为报告名称(例如 rptTermsReport1 & append (_p3)

我尝试了以下(以及一些变体),但 TempVar 和串联的 _p3 不起作用:

Report ("[TempVars]![ReportName]" & "_p3") & .imgSample3.Visible = False

错误是:“编译错误:无效或不合格的引用”并且突出显示的是 [reportname]。 任何想法如何使用带有连接字符串 (_p3) 的 TempVar 链接到子报表上的字段?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    不要将"" 放在变量周围。

    .<Control> 不能串联,直接使用。

    要访问变量报告,请使用Reports 集合

    如果这些不是子报表,这应该可以:

    Reports([TempVars]![ReportName] & "_p3")!imgSample3.Visible = False
    

    如果它们是子报表,请参阅: Refer to Form and Subform properties and controls

    (只需将Forms 替换为Reports

    【讨论】:

    • 感谢安德烈的指点!设法让它工作:Me([TempVars]![ReportName] & "_p3").Report!imgSample3.Visible = False
    最近更新 更多