自定义函数错误:'表达式不能在计算列中使用'

时间:2011-11-26 05:47:04

标签: ms-access access-vba

在Access 2010中,我尝试在计算列中使用自定义VBA函数。我得到'表达式不能在计算列中使用'。

以下是我的步骤:

  1. 启动Access 2010。
  2. 创建一个新数据库“DB”。
  3. 使用文本列“Column1”创建表“Table1”。在Column1中使用“hello”创建一个测试行。
  4. 在“创建”功能区上,单击右上角的“模块”,启动VBA编辑器。
  5. 在VBA编辑器“项目”窗口中,有两个项目“ACWZTOOL”和“DB”。选择“DB”并选择“插入” - > “模块”。
  6. 编写以下代码:

    Public Function TestFunc() As String
        TestFunc = "test"
    End Function
    
  7. “调试” - > “编译DB”通过,“保存”并关闭VBA编辑器。现在,“Module1”出现在左窗格的“模块”选项卡中。
  8. 在表1中,创建一个计算列“Column2”,表达式为“Len([Column1])”,该列正常工作,测试行中的值为5。
  9. 将表达式更改为“TestFunc()”,弹出错误。
  10. 我尝试了一些其他的内置函数,似乎只有表达式构建器支持“基本”函数。例如。 “InStrRev()”也无法识别。

1 个答案:

答案 0 :(得分:6)

根据this guide,计算列表达式中不允许使用用户定义的函数。相关引用在“阅读”部分:

  

请注意,计算字段无法调用用户定义的函数,   只有内置功能。此外,您必须提供所有参数   对于您调用的方法,即使参数是可选的。