Функции преобразования типа

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Каждая функция принудя выражение к определенному типу данных.

Синтаксис

CBool(expression)

CByte(expression)

CCur(выражение)

CDate(expression)

CDbl(выражение)

CDec(выражение)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(выражение)

CVar(выражение)

Обязательным аргументом выраженияявляется любое строковое или числовое выражение.

Возвращаемые типы

Тип возвращаемого значения определяется по имени функции в соответствии со следующей таблицей:

Функция Тип возвращаемого значения Диапазон для аргумента выражения
CBool Boolean Любое допустимое строковое или числовое выражение.
CByte Byte От 0 до 255.
CCur Currency От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
CDate Date Любое допустимое выражение даты.
CDbl Double -1,79769313486231E308 до
-4,94065645841247E-324 для отрицательных значений; С 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений.
CDec Decimal +/-79 228 162 514 264 337 593 543 950 335 для чисел без дробной части. Для чисел с 28 десятичными знаками диапазон имеет значение
+/-7.9228162514264337593543950335. Наименьшее допустимое ненулевое число — 0,0000000000000000000000000001.
CInt Integer От -32 768 до 32 767, дробная часть округляется.
CLng Long От -2 147 483 648 до 2 147 483 647, дробная часть округляется.
CSng Single От -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных.
CStr String Результат, возвращаемый функцией CStr, зависит от аргумента выражение.
CVar Variant Тот же диапазон, что и Double для числовых значений. Тот же диапазон, что и Строка для нечисловых значений.

Замечания

Если выражение , переданное функции, находится за пределами диапазона типа данных, в который преобразуется, возникает ошибка.

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

Функции преобразования типа данных следует использовать вместо функции Val для преобразования типов данных в приложениях, поддерживающих различные региональные стандарты. Например, при использовании функции CCur десятичные разделители, разделители групп разрядов и параметры денежных единиц распознаются в соответствии с языковыми и региональными параметрами компьютера.

Если дробная часть целого числа строго равна 0,5, функции CInt и CLng всегда округляют результат до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. В отличие от функций CInt и CLng, в функциях Fix и Int дробная часть не округляется, а отбрасывается. Кроме того, функции Fix и Int всегда возвращают значение того же типа, что и переданное им выражение.

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

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

Функция CVDate предназначена для обеспечения совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен синтаксису функции CDate, однако функция CVDate возвращает не результат типа Date, а результат типа Variant с подтипом Date. Поскольку теперь реализован встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date и присвоив это значение переменной типа Variant. Этот способ позволяет преобразовать все прочие встроенные типы в эквивалентные им подтипы Variant.

Примечание

Функция CDec не возвращает отдельный тип данных. Вместо этого она всегда возвращает результат типа Variant, значение которого преобразовано в подтип Decimal.

Примеры запросов

Выражение Результаты
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; Возвращает значения "SalePrice", "FinalPrice" и оценивает, превышает ли значение SalePrice, чем окончательная цена. Возвращает значение "-1", если значение true, и "0", если false.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Quantity" в формат байтов и отображается в столбце Expr1 Возвращает "ProductID", преобразует значения в поле "Quantity" в денежный формат и отображается в столбце Expr1.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле DateofSale в формат Date и отображается в столбце Expr1.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в формат Double и отображается в столбце Expr1.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в целочисленный формат и отображается в столбце Expr1.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в длинный формат и отображается в столбце Expr1.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в одиночный формат и отображается в столбце Expr1.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в формат строки и отображается в столбце Expr1.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Возвращает "ProductID", преобразует значения в поле "Скидка" в Double для числовых значений и String для нечисловых значений.

Примеры VBA

Примечание

В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Дополнительные сведения о работе с VBA см. в статье Access VBA Reference.

Функция CBool

В этом примере функция CBool используется для преобразования выражения в тип Boolean. Если выражение разрешается в ненулевое значение, функция CBool возвращает значение True; в противном случае она возвращает значение False.


Dim A, B, Check
A = 5: B = 5    ' Initialize variables.
Check = CBool(A = B)    ' Check contains True.
A = 0    ' Define variable.
Check = CBool(A)    ' Check contains False.

Функция CByte

В этом примере функция CByte используется для преобразования выражения в тип Byte.


Dim MyDouble, MyByte
MyDouble = 125.5678    ' MyDouble is a Double.
MyByte = CByte(MyDouble)    ' MyByte contains 126.

Функция CCur

В этом примере функция CCur используется для преобразования выражения в тип Currency.


Dim MyDouble, MyCurr
MyDouble = 543.214588    ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)    
' Convert result of MyDouble * 2 (1086.429176) to a 
' Currency (1086.4292).

Функция CDate

В этом примере функция CDate используется для преобразования выражения в тип Date. Как правило, не рекомендуется определять дату и время в виде строк (как показано в этом примере). Вместо этого пользуйтесь литералами даты и времени, например #2/12/1969# и #4:45:23 PM#.


Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" 
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM" 
' Convert to Date data type.
MyShortTime = CDate(MyTime)

Функция CDbl

В этом примере функция CDbl используется для преобразования выражения в тип Double.


Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

Функция CDec

В этом примере функция CDec используется для преобразования выражения в тип Decimal.


Dim MyDecimal, MyCurr
MyCurr = 10000000.0587    ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr)     ' MyDecimal is a Decimal.

Функция CInt

В этом примере функция CInt используется для преобразования выражения в тип Integer.


Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble is a Double.
MyInt = CInt(MyDouble)    ' MyInt contains 2346.

Функция CLng

В этом примере функция CLng используется для преобразования выражения в тип Long.


Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55  ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

Функция CSng

В этом примере функция CSng используется для преобразования выражения в тип Single.


Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

Функция CStr

В этом примере функция CStr используется для преобразования выражения в тип String.


Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

Функция CVar

В этом примере функция CVar используется для преобразования выражения в тип Variant.


Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000") 
' MyVar contains the string 4534000.