访问报告 - 基于数据隐藏字段、标签和其他元素
Posted
技术标签:
【中文标题】访问报告 - 基于数据隐藏字段、标签和其他元素【英文标题】:Access Reports - Hiding Fields, Labels, and other elements based on data 【发布时间】:2010-11-21 02:52:59 【问题描述】:我一直在尝试格式化一份报告,以便为潜在供应商提供一份清单,其中显示了设备的型号、序列号、范围、资产编号和校准频率。该概念的基础是,如果该提案被接受,稍后将成为采购订单 - 因此提供了诸如是否要在内部执行工作等字段,以及提案的创建时间,我们建议何时发送最后,如果有一个有效的采购订单号已经分配给整个混乱。
我一直在尝试创建一个字段,该字段根据基础查询中“是/否”复选框的值是“真”还是“假”来更改值。但是,我无法让任何标准属性更改在报告中起作用——它不会引发错误,它什么也不做。我已经尝试将我的代码插入到 On Format 事件以及相应表单上的 On Load 事件中 - 但代码根本不会运行。
这些基于底层查询字段值的属性操作是否不能像在表单上那样在报表上工作?
【问题讨论】:
【参考方案1】:在格式化报告时,您可能希望将代码放在“onPrint”事件中。它在“打印”到您的屏幕时触发。
【讨论】:
我不同意。大多数此类代码应该放在相关部分的 OnFormat 事件中。 我曾经在 onFormat 事件中让某些事情正常工作时遇到了一些麻烦。我发现我总是在 onPrint 事件上取得成功。这可能只是由于我对何时发生的事情有些无知,但从那时起,我将所有内容都放在了打印事件上,所以我确信它会触发。【参考方案2】:创建一个未绑定的文本框,在 Control Source 属性中放入如下公式:
=IIF([BooleanField],"Value if True","Value if false")
【讨论】:
这正是我要找的票,我只是不知道 Iif 表达式。谢谢! :)【参考方案3】:我认为最好在查询中分配值,而不是在报告中。
一些示例代码:
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
If Me.YN Then
''Label in the detail section
Me.Label_YN.Visible = False
''Unbound field
Me.txtField1 = "abc"
Else
Me.Label_YN.Visible = True
Me.txtField1 = "def"
End If
End Sub
【讨论】:
【参考方案4】:这有点超出您的具体问题,但从报告设计的角度来看,这可能是一种有用的替代方法。
您可能希望将“内部”数据放入链接到主报告的单独子报告中(例如,在主工作订单号上)。子报表的数据来自一个新表,该表包含内部数据,包括主工单号)。然后,您将主表数据连接到具有主工单号的新表。
如果主报表没有指向子报表的链接,则不应显示数据(不应需要任何代码)。如果您想关闭空白子报告的空白区域,您可以根据需要将主报告详细信息和子报告“可以缩小”属性设置为是。
这种方法的优点是新表可以为给定的主工单编号(例如不同的执行部门)包含多条记录。此外,可以单独修改子报表设计而不影响主报表(除了大小)。
【讨论】:
以上是关于访问报告 - 基于数据隐藏字段、标签和其他元素的主要内容,如果未能解决你的问题,请参考以下文章