Возвращает значение типа Long, содержащее число символов в строке или число байт, которое требуется для хранения переменной.
Синтаксис
Len( строка | имя_переменной)
Функция Len имеет следующие аргументы:
Аргумент |
Описание |
строка |
Любое допустимое строковое выражение. Если строка содержит значение NULL, возвращается NULL. |
имя_переменной |
Любое допустимое имя переменная. Если в варнаме содержится значение NULL, возвращается значение NULL. Если варнаме является variant, Len обрабатывает его так же, как строка , и всегда возвращает количество символов, содержащихся в нем. |
Замечания
Необходимо указать один (и только один) из двух возможных аргументов. Для пользовательских типов функция Len возвращает размер, записываемый в файл.
Примечание: Используйте функцию LenB для работы с содержащимися в строке байтами, например, в языках с двухбайтовыми кодировками (DBCS). Функция LenB возвращает не число знаков в строке, а количество байтов, используемых для отображения этой строки. При использовании с данными пользовательского типа функция LenB возвращает размер этих данных в памяти, включая интервалы между элементами. Образец программы с использованием функции LenB приведен во втором примере.
Примечание: С помощью функции Len не всегда возможно определить фактическое количество байтов, необходимых для хранения данных, если эти данные представляют собой строки переменной длины с пользовательским типом данных.
Пример запроса
Expression |
Результаты |
SELECT ProductID, Len(ProductID) AS ProductLen FROM ProductSales; |
Возвращает значения из поля ProductID и длину этих значений в столбцах ProductLen. |
Примеры VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В первом примере с помощью функции Len возвращается число знаков в строке или количество байтов, необходимых для хранения переменной. Перед блоком Type...End Type, определяющим тип CustomerRecord, должно стоять ключевое слово Private, если он включен в модуль класса. В стандартном модуле оператор Type может иметь значение Public.
Type CustomerRecord ' Define user-defined type.
ID As Integer ' Place this definition in a Name As String * 10 ' standard module. Address As String * 30 End Type Dim Customer As CustomerRecord ' Declare variables. Dim MyInt As Integer, MyCur As Currency Dim MyString, MyLen MyString = "Hello World" ' Initialize variable. MyLen = Len(MyInt) ' Returns 2. MyLen = Len(Customer) ' Returns 42. MyLen = Len(MyString) ' Returns 11. MyLen = Len(MyCur) ' Returns 8.
Во втором примере с помощью функции LenB и пользовательской функции (LenMbcs) возвращается количество байтов в строке ANSI.
Function LenMbcs (ByVal str as String)
LenMbcs = LenB(StrConv(str, vbFromUnicode)) End Function Dim MyString, MyLen MyString = "ABc" ' Where "A" and "B" are DBCS and "c" is SBCS. MyLen = Len(MyString) ' Returns 3 - 3 characters in the string. MyLen = LenB(MyString) ' Returns 6 - 6 bytes used for Unicode. MyLen = LenMbcs(MyString) ' Returns 5 - 5 bytes used for ANSI.