Всяка функция преобразува израз в конкретен тип данни.
Синтаксис
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 to -4.94065645841247E-324 за отрицателни стойности; 4.94065645841247E-324 to 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 to -1.401298E-45 за отрицателни стойности; 1.401298E-45 to 3.402823E38 за положителни стойности. |
CStr |
String |
Върнатата стойност зависи от аргумента expression . |
CVar |
Variant |
Същият диапазон като Double при числовите стойности. Същият диапазон като String при нечисловите стойности. |
Забележки
Ако подадените expression към функцията данни са извън диапазона на типа данни, в който преобразувате, възниква грешка.
По принцип можете да документирате своя код с помощта на функции за конвертиране на типа данни, за да покажете, че резултатът от операция трябва да използва конкретен тип данни, а не типа по подразбиране. Използва CCur се например за налагане на валутна аритметика в случаите, когато обикновено се среща аритметика с една точност, двойна точност или цяло число.
Използвайте функциите за преобразуване на типове данни, вместо Val да предоставяте отчитани според езиковата променлива преобразувания от един тип данни в друг. Например когато използвате CCur, Access разпознава различни десетични разделители, разделители за хилядите и опции за валута въз основа на настройката на езиково-географската променлива на вашия компютър.
Когато дробната част е точно 0.5и CIntCLng винаги я закръглявате до най-близкото четно число. Например 0.5 закръглява до 0и 1.5 закръглява до 2.
CInt и CLng се различават от функциите Fix AND Int , които отрязват дробната част на число, вместо да го закръгляват.
Fix и Int също така винаги да връщат стойност от същия тип, която предавате.
Използвайте функцията IsDate , за да определите дали date може да бъде конвертиран в дата или час.
CDate Разпознава литерали за дата и литерали за час, както и някои числа, които попадат в диапазона на допустимите дати. Когато преобразувате число в дата, частта за целите числа става дата. Всяка дробна част става време на деня, което започва в полунощ.
CDate Разпознава формати за дата според езиковата настройка на системата ви. Access може да не определи правилния ред на деня, месеца и годината, ако предоставите формат, различен от една от разпознаваните настройки за дата. Освен това тя не разпознава формат на дълга дата, ако съдържа и низа за ден от седмицата.
Функцията CVDate е налична и за съвместимост с по-стари версии на Visual Basic. Синтаксисът на CVDate е идентичен на функцията CDate . Въпреки това CVDate връща a Variant , чийто подтип е Date вместо действителен Date тип. Тъй като Access вече включва прищенски Date тип, вече не ви е необходимо CVDate. Можете да получите същия ефект, като преобразувате израз в a Date и след това го присвоите на .Variant Тази техника е в съответствие с преобразуването на други присъщи типове в техните еквивалентни Variant подтипове.
Забележка
Функцията CDec не връща отделен тип данни. Вместо това винаги връща a 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 вж . справката за Access VBA.
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.