ms-access - Access Report 不允许我引用 VBA 中的字段,除非它本身就在报告中

标签 ms-access vba

因此,在 Access Form 或 Report 中,在屏幕上显示比 =[UnitPrice]*[Quantity] 更复杂的动态内容的一个好方法是放入 VBA。

例如在这个简化的示例中,此报表的基础表有两个字段 ShowTaxTaxRate。通过制作文本框的控件源 =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 代码中引用字段,除非您已经以常规方式将字段引用为一个字段报告?

我不记得以前遇到过这个限制。还是我有腐败报告? (我尝试了通常的压缩/修复、导出/重新导入报告等)

编辑:

奇怪的是......现在它又开始工作了。而且 - 我很确定 - 报告中没有控制权。这就是为什么我认为这是报告中的腐败。

最佳答案

您需要对表单/报告进行控制。

如果这太困惑,您可以将函数放在模块中并在 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 

然后在这个报表和其他的这个字段中设置控件。

关于ms-access - Access Report 不允许我引用 VBA 中的字段,除非它本身就在报告中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3944691/

相关文章:

ms-access - 如何在 Microsoft Access Reports 中动态获取超链接?

VBA仅替换整个字符串

由组合框设置的 Excel 自动筛选范围?

excel - 将字符串更改为大写(如果存在) - VBA

c# - 从 C# 读取 Access 2007 (accdb) 文件的性能真的很慢

linux - 如何从 Linux 使用 MS-Access 文件?

asp.net - 连接数据库 (MS Access) 或服务器端代码 (ASP.NET) 中的记录值

ms-access - 使用C#创建数据库?

vba - 移动单元格时保持颜色和字体并跳过空白单元格

在多个子文件夹中搜索文件的VBA宏