因此,在“访问表单”或“报表”中,在屏幕上显示比=[UnitPrice]*[Quantity]
更复杂的动态内容的好方法是放入VBA。
e.g。在此简化示例中,此报告的基础表有两个字段 ShowTax 和 TaxRate 。通过创建TextBox的控件源=GetTaxInfo
,我将在VBA中引入一些复杂性:
Public Function GetTaxInfo() As String
Dim result As String
If Me!ShowTax = 0 Then
result = "Tax included @ " & Me!TaxRate
Else
result = ""
End If
GetTaxInfo = result
End Function
好的,这个工作......只要我在其他地方有一个引用TaxRate的字段。否则只打印#Error
。就好像它需要预加载字段才能在VBA代码中使用它。它不是世界末日,因为我可以在报告中将一堆字段设置为不可见,但它不整洁。
因此,您不能在支持报告的VBA代码中引用字段,除非您已经将以传统方式引用该字段作为字段烘焙到报告?
我不记得以前遇到过这个限制。还是我有一个腐败的报告? (我尝试了通常的压缩/修复,导出/重新导入报告等)
修改
奇怪的是......现在又恢复了工作。并且 - 我很确定 - 报告中没有控制权。这就是为什么我认为这是报告中的腐败。答案 0 :(得分:4)
您需要对表单/报表进行控制。
如果这太乱了,你可以将函数放在Module中并在RecordSource中使用(基于查询)。当它可以在其他地方使用时,没有意义将所有这些逻辑掩盖在报告中。
Public Function GetTaxInfo(ShowTax as Boolean, TaxRate as Single) As String
Dim result As String
If ShowTax = 0 Then
result = "Tax included @ " & TaxRate
Else
result = ""
End If
GetTaxInfo = result
End Function
然后在此报告和其他人中将控件设置为此字段。