Ошибка пользовательских функций: "выражение не может быть использовано в вычисляемом столбце"
В Access 2010 я пытаюсь использовать пользовательские функции VBA в вычисляемом столбце. Я получаю "выражение не может быть использовано в вычисляемом столбце".
Вот мои шаги:
- Запуск Access 2010.
- Создайте новую базу данных "DB".
- создайте таблицу " Table1 "с текстовым столбцом"Column1". Создайте тестовую строку с "hello" в столбце 1.
- на ленте" создать "нажмите кнопку" модуль " в правом верхнем углу, которая запускает редактор VBA.
- в Редакторе VBA " проект" окно, есть два проекта "ACWZTOOL"и " DB". Выберите " DB "и выберите" Insert " - > "Module".
-
Напишите следующий код:
Public Function TestFunc() As String TestFunc = "test" End Function
- " Debug "- > " Compile DB "пройден," Save " и закрыт редактор VBA. Теперь "Module1" появляется на вкладке "Modules" в левой панели.
- в Таблице 1 Создайте вычисляемый столбец " Column2 "с выражением" Len([Column1])", столбец работает правильно со значением в строке теста, равным 5.
- измените выражение на " TestFunc ()", ошибка выскочить.
- я попробовал несколько других встроенных функций, похоже, в expression builder поддерживаются только "базовые". Например, "InStrRev ()" также не признается.
1 ответ:
Согласно этому руководству, определяемые пользователем функции не допускаются в выражениях вычисляемых столбцов. Соответствующая цитата находится в разделе "Read It":
Имейте в виду, что вычисляемые поля не могут вызывать пользовательские функции, только встроенные функции. Кроме того, необходимо указать все параметры для вызываемых методов, даже если параметры являются необязательными.