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

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Синтаксис

  • 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.