【发布时间】:2014-06-13 01:33:44
【问题描述】:
我有一个 Access 报表,它有一个嵌套的子报表。在子报表中,有一个图表,我需要通过 VBA 引用它来调整坐标轴。
我遇到的问题是子报表有多个记录,它们适合同一页面。我的 VBA 是在主报表的详细信息部分的 OnPrint 事件中触发的(这是包含图表的子报表所在的位置),并且似乎对图表的引用仅引用了每页上的第一个图表。
我的代码如下:
If (Reports![Desired_Future_State Overview]![Desired_Future_State_Metric Programme Breakdown].Report![Walkup Chart].Object.Axes(2).MaximumScale) = 0 Then
Reports![Desired_Future_State Overview]![Desired_Future_State_Metric Programme Breakdown].Report![Walkup Chart].Object.Axes(2).ReversePlotOrder = True
End If
我在 MS 文档中看不到有关如何使用此语法引用多个实例的任何信息 - 这可能吗,我将如何处理?
【问题讨论】:
-
你说的多个实例,你指的是什么?
-
我指的是图表的实例——因为子报表有多个记录,所以一个页面上有不止一个图表。上面的参考语法只对每页上的第一个图表执行(它在主报表的 OnPrint 事件中)。
-
您的问题是找到控件或您应该在这些控件上运行的代码吗?如果是先前的,您可能会遍历每个控件(For Each ctl In Me.Controls),检查每个控件的 ControlType。检查此文档:msdn.microsoft.com/en-us/library/office/…。如果控件类型是某种类型(在您的情况下为 acSubform)加上其他一些识别功能,您可以在其上运行您的代码。祝你好运。