Funkcie na konverziu typu údajov

Každá funkcia skonvertuje výraz na určitý údajový typ.

Syntax

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Povinný expression argument je ľubovoľný reťazcový alebo numerický výraz.

Vrátené typy

Názov funkcie určuje vrátený typ podľa nasledovnej tabuľky:

Funkcia Vrátený typ Rozsah pre expression argument
CBool Boolean Ľubovoľný platný reťazcový alebo numerický výraz.
CByte Byte 0 na 255.
CCur Currency -922,337,203,685,477.5808 na 922,337,203,685,477.5807.
CDate Date Ľubovoľný platný dátumový výraz.
CDbl Double -1.79769313486231E308 To -4.94065645841247E-324 pre záporné hodnoty, 4.94065645841247E-324 TO 1.79769313486232E308 pre kladné hodnoty.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 Ide o čísla s nulovou mierkou alebo čísla bez desatinných miest. Pre čísla s desatinnými 28 miestami je +/-7.9228162514264337593543950335rozsah . Najmenšie možné nenulové číslo je 0.0000000000000000000000000001.
CInt Integer -32,768 Na 32,767; zlomky sa zaokrúhľujú.
CLng Long -2,147,483,648 Na 2,147,483,647; zlomky sa zaokrúhľujú.
CSng Single -3.402823E38 To -1.401298E-45 pre záporné hodnoty, 1.401298E-45 TO 3.402823E38 pre kladné hodnoty.
CStr String Vrátená hodnota závisí od argumentu expression .
CVar Variant Rovnaký rozsah ako Double v prípade číselných hodnôt. Rovnaký rozsah ako String v prípade nečíselných hodnôt.

Poznámky:

Ak je hodnota expression odovzdaná funkcii mimo rozsahu typu údajov, na ktorý konvertujete, vyskytne sa chyba.

Svoj kód môžete vo všeobecnosti zdokumentovať pomocou funkcií na konverziu údajových typov a ukázať tak, že výsledok operácie by mal namiesto predvoleného typu použiť konkrétny typ údajov. Môžete ho napríklad CCur použiť na presadenie menovej aritmetiky v prípadoch, v ktorých sa zvyčajne používa aritmetika jednoduchej presnosti, dvojitej presnosti alebo celého čísla.

Funkcie na konverziu typov údajov použite namiesto poskytovania Val konverzií jedného typu údajov na druhý na základe miestnych nastavení. Ak napríklad použijete CCurprogram , Access rozpozná rôzne oddeľovače desatinných miest, oddeľovače tisícov a možnosti meny na základe miestnych nastavení počítača.

Keď je zlomková časť presne , 0.5CInt a vždy ju zaokrúhlite CLng na najbližšie párne číslo. Napríklad 0.5 zaokrúhli na 0, a 1.5 zaokrúhli sa na 2. CInt a líšia CLng sa od funkcií AND FixInt , ktoré namiesto zaokrúhľovania odstraňujú zlomkovú časť čísla. Fix a tiež vždy vrátiť Int hodnotu rovnakého typu, aký odovzdávate.

Pomocou funkcie IsDate môžete určiť, či date sa dá skonvertovať na dátum alebo čas. CDate Rozpoznáva znakové reťazce dátumu a času, ako aj niektoré čísla, ktoré patria do rozsahu prijateľných dátumov. Keď konvertujete číslo na dátum, celočíselná časť sa stane dátumom. Akákoľvek zlomková časť sa stáva časom dňa, ktorý začína o polnoci.

CDate Rozpoznáva formáty dátumu podľa miestneho nastavenia systému. Ak zadáte iný formát ako niektoré z rozpoznaných nastavení dátumu, Access nemusí určiť správne poradie dní, mesiacov a rokov. Okrem toho nerozpozná dlhý formát dátumu, ak obsahuje aj reťazec dňa v týždni.

Funkcia CVDate je k dispozícii aj kvôli kompatibilite so staršími verziami jazyka Visual Basic. Syntax funkcie je rovnaká ako v argumente CVDateCDate . Vráti však podtypVariant, CVDate ktorého podtyp je Date namiesto skutočného Date typu. Keďže Access teraz obsahuje vnútorný Date typ, už nepotrebujete CVDate. Rovnaký efekt dosiahnete skonvertovaním výrazu na výraz Date a jeho následným priradením k súboru Variant. Táto technika je konzistentná s konverziou iných vnútorných typov na ich ekvivalentné Variant podtypy.

Poznámka

Funkcia CDec nevracia diskrétny typ údajov. Namiesto toho vždy vráti hodnotu Variant , ktorej hodnota bola skonvertovaná na Decimal podtyp.

Príklady dotazov

Výraz Výsledky
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Vráti SalePrice vzorec a FinalPrice, a vyhodnotí, či SalePrice je väčší ako FinalPrice. Vráti, -1 ak má hodnotu true a 0 ak je zadaná hodnota false.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Quantity poli Bytena , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v DateofSale poli Datena , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Discount poli Doublena , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Discount poli Integerna , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Discount poli Longna , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Discount poli Singlena , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje hodnoty v Discount poli Stringna , a zobrazí ich v stĺpci.Expr1
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Vráti ProductID, skonvertuje číselné Discount hodnoty na Double, a nečíselné hodnoty na String.

Príklady VBA

Poznámka

Nasledujúce príklady ukazujú, ako používať túto funkciu v module jazyka Visual Basic for Applications (VBA). Ďalšie informácie o práci s jazykom VBA nájdete v referenčných informáciách k jazyku VBA programu Access.

CBool (funkcia)

V tomto príklade je funkcia použitá CBool na skonvertovanie výrazu na súbor Booleantypu . Ak má výraz nenulovú hodnotu, CBool vráti sa True, inak vráti Falsehodnotu .

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 (funkcia)

V tomto príklade je funkcia použitá CByte na skonvertovanie výrazu na súbor Bytetypu .

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

Funkcia CCur

V tomto príklade je funkcia použitá CCur na skonvertovanie výrazu na súbor Currencytypu .

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 (funkcia)

V tomto príklade je funkcia použitá CDate na skonvertovanie reťazca na Datetvar . Dátumy a časy sa vo všeobecnosti neodporúča programovať ako reťazce ako v tomto príklade. Používajte radšej dátumové a časové znaky, napríklad #2/12/1969# a #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 (funkcia)

V tomto príklade je funkcia použitá CDbl na skonvertovanie výrazu na súbor Doubletypu .

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

CDec (funkcia)

V tomto príklade je funkcia použitá CDec na skonvertovanie číselnej hodnoty na tvar Decimal.

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

Funkcia CInt

V tomto príklade je funkcia použitá CInt na skonvertovanie hodnoty na Integersúbor .

Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble is a Double.
MyInt = CInt(MyDouble)    ' MyInt contains 2346.

Funkcia CLng

V tomto príklade je funkcia použitá CLng na skonvertovanie hodnoty na Longtvar .

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.

Funkcia CSng

V tomto príklade je funkcia použitá CSng na skonvertovanie hodnoty na Singletvar .

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 (funkcia)

V tomto príklade je funkcia použitá CStr na skonvertovanie číselnej hodnoty na tvar String.

Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

CVar (funkcia)

V tomto príklade je funkcia použitá CVar na skonvertovanie výrazu na súbor Varianttypu .

Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.