Функции за преобразуване на типове
Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Всяка функция преобразува израз в определен тип данни.

Синтаксис

CBool( израз )

CByte( израз )

CCur( израз )

CDate( израз )

CDbl( израз )

CDec( израз )

CInt( израз )

CLng( израз )

CSng( израз )

CStr( израз )

CVar( израз )

Задължителният израз ,аргумент, е всеки низов израз или числов израз.

Типове връщане

Името на функцията определя типа на връщане, както е показано в следното:

Функция

Тип връщане

Диапазон за аргумент на израз

CBool

булев

Всеки валиден низ или числов израз.

CByte

Byte

от 0 до 255.

CCur

Валута

-922 337 203 685 477,5808 до 922 337 203 685 477,5807.

CDate

Дата

Всеки валиден израз за дата.

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

Цяло число

от -32 768 до 32 767; дробите се закръгляват.

CLng

Дълго

от 2 147 483 648 до 2 147 483 647; дробите се закръгляват.

CSng

Single

от -3,402823E38 до -1,401298E-45 за отрицателни стойности; от 1,401298E-45 до 3,402823E38 за положителни стойности.

CStr

String

Връща за CStr зависи от аргумента на израза .

CVar

Вариант

Същият диапазон като при Double за числови стойности. Същият диапазон като при String за нечислови стойности.

Забележки

Ако изразът , предаден на функцията, е извън диапазона на типа данни, в който се преобразува, ще възникне грешка.

По принцип можете да документирате кода си, като използвате функциите за преобразуване на типа данни, за да покажете, че резултатът от някои операции трябва да бъде изразен като конкретен тип данни, а не като тип данни по подразбиране. Например използвайте 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 връща variant , чийто подтип е Date вместо действителен тип Date . Тъй като вече има присъщ тип "Дата ", вече няма нужда от CVDate. Същият ефект може да се постигне чрез преобразуване на израз в дата и след това присвояване към стойност от тип Variant. Тази техника е съвместима с преобразуването на всички други присъщи типове в техните еквивалентни подтипове Variant .

Забележка: Функцията CDec не връща дискретен тип данни; вместо това винаги връща стойност от тип Variant , чиято стойност е преобразувана в подтип decimal .

Примери за заявки

Израз

Резултати

SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales;

Връща "SalePrice", "FinalPrice" и изчислява дали SalePrice е по-голямо от крайната цена. Връща "-1", ако е истина, и "0", ако е невярно.

SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales;

Връща "ИД на продукт", преобразува стойностите в полето "Количество" във формат байтове и показва в колона Израз1 Връща "ИД на продукт", преобразува стойностите в полето "Количество" във формат "Валута" и показва в колона Израз1.

SELECT ProductID, CDate(DateofSale) AS Израз1 FROM продуктПродажби;

Връща "ИД на продукт", преобразува стойностите в полето "DateofSale" във формат на дата и показва в колона Израз1.

SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" в двоен формат и показва в колона Израз1.

SELECT ProductID, CInt(Discount) AS Израз1 FROM продуктПродажби;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" в целочислен формат и показва в колона Израз1.

SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" във формат Long и се показва в колона Expr1.

SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" в единичен формат и показва в колона Израз1.

SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" в низов формат и показва в колона Израз1.

SELECT ProductID, CVar(Discount) AS Израз1 FROM продуктПродажби;

Връща "ИД на продукт", преобразува стойностите в полето "Отстъпка" в double за числови стойности и String за нечислови стойности.

Примери за VBA

Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA вижте Справка за Access VBA.

CBool функция

Този пример използва функцията CBool, за да преобразува израз в булев. Ако изразът дава за резултат ненулева стойност, 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, за да преобразува израз в байт.

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

Функция CCur

Този пример използва функцията CCur , за да преобразува израз във валута.

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 , за да преобразува низ в дата. По принцип не се препоръчва твърдо кодиране на дати и часове като низове (както е показано в този пример). Вместо това използвайте литерали за дата и час, например #12.2.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 , за да преобразува числова стойност в десетична.

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

Функция CInt

Този пример използва функцията CInt , за да преобразува стойност в цяло число.

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.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.