Ошибка пользовательских функций: "выражение не может быть использовано в вычисляемом столбце"


В Access 2010 я пытаюсь использовать пользовательские функции VBA в вычисляемом столбце. Я получаю "выражение не может быть использовано в вычисляемом столбце".

Вот мои шаги:

  1. Запуск Access 2010.
  2. Создайте новую базу данных "DB".
  3. создайте таблицу " Table1 "с текстовым столбцом"Column1". Создайте тестовую строку с "hello" в столбце 1.
  4. на ленте" создать "нажмите кнопку" модуль " в правом верхнем углу, которая запускает редактор VBA.
  5. в Редакторе VBA " проект" окно, есть два проекта "ACWZTOOL"и " DB". Выберите " DB "и выберите" Insert " - > "Module".
  6. Напишите следующий код:

    Public Function TestFunc() As String
        TestFunc = "test"
    End Function
    
  7. " Debug "- > " Compile DB "пройден," Save " и закрыт редактор VBA. Теперь "Module1" появляется на вкладке "Modules" в левой панели.
  8. в Таблице 1 Создайте вычисляемый столбец " Column2 "с выражением" Len([Column1])", столбец работает правильно со значением в строке теста, равным 5.
  9. измените выражение на " TestFunc ()", ошибка выскочить.
  10. я попробовал несколько других встроенных функций, похоже, в expression builder поддерживаются только "базовые". Например, "InStrRev ()" также не признается.
1 4

1 ответ:

Согласно этому руководству, определяемые пользователем функции не допускаются в выражениях вычисляемых столбцов. Соответствующая цитата находится в разделе "Read It":

Имейте в виду, что вычисляемые поля не могут вызывать пользовательские функции, только встроенные функции. Кроме того, необходимо указать все параметры для вызываемых методов, даже если параметры являются необязательными.