Каждая функция принудя выражение к определенному тип данных.
Синтаксис
CBool( выражение )
CByte( выражение )
CCur( выражение )
CDate( выражение )
CDbl( выражение )
CDec( выражение )
CInt( выражение )
CLng( выражение )
CSng( выражение )
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.
Примеры запросов
Expression |
Результаты |
---|---|
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.