Кожна функція перетворює вираз на певний тип даних.
Синтаксис
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
Обов'язковим expression аргументом є будь-який рядковий або числовий вираз.
Типи значень, що повертаються
Ім'я функції визначає тип значення, що повертається, як показано в таблиці нижче.
| Функція | Тип повернутого значення | Діапазон для expression аргументу |
|---|---|---|
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 |
Значення, що повертається, залежить від аргументу expression . |
CVar |
Variant |
Такий же діапазон, як Double і для числових значень. Такий же діапазон, як String і для нечислових значень. |
Примітки
Якщо дані, що expression передаються до функції, виходять за межі діапазону типу даних, у який перетворюється, станеться помилка.
Загалом ви можете задокументувати код, використовуючи функції перетворення типів даних, щоб показати, що результат операції має використовувати певний тип даних, а не тип за промовчанням. Наприклад, використовується CCur для примусової арифметики грошових одиниць у випадках, коли зазвичай відбувався би розрахунок чисел одинарної чи подвійної точності або цілих чисел.
Функції перетворення типу даних використовуються не Val для того, щоб змінювати типи даних з урахуванням локалізації. Наприклад, якщо ви використовуєте CCur, Access розпізнає різні десяткові роздільники, роздільники груп розрядів і грошову одиницю на основі локалізації комп'ютера.
Коли дробова частина дорівнює точно 0.5, CInt і завжди округлювати її до найближчого CLng парного числа. Наприклад, 0.5 округлює до 0, а 1.5 округлює до 2.
CInt відрізняються CLng від функцій AND FixInt , які обрізають дробову частину числа, а не округлюють її.
Fix а Int також завжди повертати значення того ж типу, яке ви передаєте.
Використовуйте цю IsDate функцію, щоб визначити, чи date можна перетворити формат дати або часу.
CDate Розпізнає літерали дати й літерали часу, а також деякі числа, які потрапляють до діапазону прийнятних дат. Якщо перетворити число на дату, датою стане ціла частина числа. Будь-яка дробова частина стає часом дня, який починається з півночі.
CDate Розпізнає формати дати відповідно до параметрів локалізації системи. Програма Access може визначити неправильний порядок дня, місяця та року, якщо вказати інший формат. Крім того, вона не розпізнає довгий формат дати, якщо він також містить рядок дня тижня.
Функція CVDate також сумісна з попередніми версіями Visual Basic. Синтаксис функції CVDate ідентичний CDate . Проте повертає підтип VariantDate якого, CVDate а не фактичний Date тип. Оскільки в Access тепер є Date спеціальний тип, вам більше не потрібні CVDate. Такого ж ефекту можна отримати, якщо перетворити вираз в a Date і призначити йому Variant. Цей прийом узгоджується з перетворенням інших внутрішніх типів в їх еквівалентні Variant підтипи.
Примітка.
Функція CDec не повертає окремий тип даних. Натомість завжди повертає значення Variant , значення якого було перетворено на Decimal підтип.
Приклади запитів
| Вираз | Результати |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Повертає SalePrice і FinalPrice, та обчислює, чи SalePrice більше FinalPrice. Повертає -1 значення істинного значення або 0 хибність. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Quantity полі на значення та Byteвідображає їх у Expr1 стовпці. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в DateofSale полі на значення та Dateвідображає їх у Expr1 стовпці. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Discount полі на значення та Doubleвідображає їх у Expr1 стовпці. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Discount полі на значення та Integerвідображає їх у Expr1 стовпці. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Discount полі на значення та Longвідображає їх у Expr1 стовпці. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Discount полі на значення та Singleвідображає їх у Expr1 стовпці. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює значення в Discount полі на значення та Stringвідображає їх у Expr1 стовпці. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Повертає ProductID, перетворює числові Discount значення на Double, а нечислові – на String. |
Приклади VBA
Примітка.
У наведених нижче прикладах показано, як використовувати цю функцію в модулі Visual Basic for Applications (VBA). Докладні відомості про використання VBA див. в довіднику з VBA в Access.
Функція CBool
У цьому прикладі використано CBool функцію, щоб призначити виразу Booleanтип . Якщо вираз не дорівнює 0, повертає CBoolTrue; інакше повертає 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)
У цьому прикладі використано 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.