Každá funkcia konvertuje výraz na určitý typ údajov.
Syntax
CBool( výraz )
CByte( výraz )
CCur( výraz )
CDate( výraz )
CDbl( výraz )
CDec( výraz )
CInt( výraz )
CLng( výraz )
CSng( výraz )
CStr( výraz )
CVar( výraz )
Požadovaný výrazargument je ľubovoľný reťazcový výraz 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 argument výrazu |
---|---|---|
CBool |
Boolean |
Ľubovoľný platný reťazcový alebo numerický výraz. |
CByte |
Byte |
0 až 255. |
CCur |
Currency |
-922 337 203 685 477,5808 až 922 337 203 685 477,5807. |
CDate |
Date |
Ľubovoľný platný dátumový výraz. |
CDbl |
Double |
-1,79769313486231E308 do -4,94065645841247E-324 pre záporné hodnoty; 4,94065645841247E-324 až 1,79769313486232E308 pre kladné hodnoty. |
CDec |
Decimal |
Od +/-79 228 162 514 264 337 593 543 950 335 z množiny celých čísel, teda čísel bez desatinných miest. V prípade čísel s 28 desatinnými miestami je rozsah +/-7.9228162514264337593543950335. Najmenšie možné číslo iné ako nula je 0,0000000000000000000000000001. |
CInt |
Integer |
-32 768 až 32 767, zlomky sa zaokrúhľujú. |
CLng |
Long |
-2 147 483 648 až 2 147 483 647, zlomky sa zaokrúhľujú. |
CSng |
Single |
-3,402823E38 až -1,401298E-45 pre záporné hodnoty, 1,401298E-45 až 3,402823E38 pre kladné hodnoty. |
CStr |
String |
Vrátená hodnota pre funkciu CStr závisí od argumentu výrazu. |
CVar |
Variant |
Rovnaký rozsah ako údajový typ Double pre numerické znaky. Rovnaký rozsah ako údajový typ String pre nenumerické znaky. |
Poznámky
Ak sa pre funkciu zadá výraz mimo rozsahu údajového typu, na ktorý sa konvertuje, vyskytne sa chyba.
Svoj kód môžete vo všeobecnosti zdokumentovať prostredníctvom funkcií na konverziu údajových typov a ukázať tak, že výsledok určitej operácie by mal byť vyjadrený ako konkrétny údajový typ a nie ako predvolený údajový typ. Ak chcete napríklad presadiť použitie menovej aritmetiky v prípadoch, v ktorých sa zvyčajne používa aritmetika jednoduchej presnosti, dvojitej presnosti alebo celého čísla, použite funkciu CCur.
Funkcie na konverziu údajových typov by ste mali použiť namiesto funkcie Val, keď chcete poskytnúť konverziu jedného údajového typu na druhý s prihliadnutím na rozličnosť miestnych nastavení. Ak napríklad použijete funkciu CCur, táto správne rozpozná rôzne oddeľovače desatinných miest, oddeľovače tisícov a možnosti meny, ktoré závisia od miestnych nastavení počítača.
Keď má zlomková časť hodnotu presne 0,5, funkcie CInt a CLng vždy zaokrúhlia túto časť na najbližšie párne číslo. Číslo 0,5 sa napríklad zaokrúhli na číslo 0 a číslo 1,5 sa zaokrúhli na číslo 2. Funkcie CInt a CLng sa líšia od funkcií Fix a Int, ktoré zlomkovú časť čísla nezaokrúhľujú, ale odstraňujú. Funkcie Fix a Int okrem toho vždy vrátia hodnotu rovnakého typu, aký má aj vstupná hodnota.
Pomocou funkcie IsDate môžete určiť, či môže byť argument Date skonvertovaný na dátum alebo čas. Funkcia CDate rozpoznáva znakové reťazce dátumu a času, ako aj niektoré čísla, ktoré patria do rozsahu prijateľných dátumov. Pri konverzii čísla na dátum sa na dátum skonvertuje celočíselná časť čísla. Zlomková časť čísla sa skonvertuje na čas dňa, ktorý sa meria od polnoci.
CDate rozpozná formáty dátumu podľa nastavenia miestne nastavenie systému. Správne poradie dní, mesiacov a rokov nie je možné určiť, ak sú zadané v inom formáte ako v niektorom z rozpoznaných nastavení dátumu. Okrem toho sa nerozpozná dlhý formát dátumu, ak obsahuje aj reťazec deň v týždni.
Funkcia CVDate sa používa aj z dôvodu kompatibility s predchádzajúcimi verziami jazyka Visual Basic. Syntax funkcie CVDate je rovnaká ako syntax funkcie CDate, funkcia CVDate však vráti údajový typ Variant, ktorého podtyp je Date, a nie skutočný typ Date. Keďže teraz už existuje vnútorný typ Date, funkcia CVDate už nie je potrebná. Rovnaký efekt je možné dosiahnuť aj skonvertovaním výrazu na typ Date a jeho priradením k údajovému typu Variant. Táto technika je konzistentná s konverziou všetkých ostatných vnútorných typov na ich ekvivalentné podtypy údajového typu Variant.
Poznámka: Funkcia CDec nevráti samostatný údajový typ, ale namiesto toho vždy vráti údajový typ Variant, ktorého hodnota bola skonvertovaná na podtyp Decimal.
Príklady dotazu
Výraz |
Výsledky |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Vráti hodnotu "SalePrice", "FinalPrice" a vyhodnotí, ak je Hodnota SalePrice väčšia ako konečná cena. Vráti hodnotu "-1", ak je hodnota true, a "0", ak má hodnotu false. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Vráti hodnotu ProductID, skonvertuje hodnoty v poli Množstvo na formát bajtov a zobrazí sa v stĺpci Expr1 Vráti hodnotu ProductID, skonvertuje hodnoty v poli Množstvo na formát Mena a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Vráti hodnotu ProductID, skonvertuje hodnoty v poli DateofSale na formát Dátum a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu "ProductID", skonvertuje hodnoty v poli Zľava do formátu Double a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu ProductID, skonvertuje hodnoty v poli Zľava na celočíselný formát a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu "ProductID", skonvertuje hodnoty v poli Zľava na dlhý formát a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu "ProductID", skonvertuje hodnoty v poli Zľava do jedného formátu a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu ProductID, skonvertuje hodnoty v poli Zľava do formátu String a zobrazí sa v stĺpci Expr1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Vráti hodnotu "ProductID", skonvertuje hodnoty v poli Zľava na hodnotu Double pre číselné hodnoty a reťazec pre nečíselné hodnoty. |
Príklady jazyka VBA
Poznámka: Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ďalšie informácie o práci s jazykom VBA nájdete v accessových odkazoch na jazyk VBA.
Funkcia CBool
V tomto príklade je funkcia CBool použitá na skonvertovanie výrazu na booleovskú hodnotu. Ak sa výraz vyhodnotí ako nenulová hodnota, funkcia CBool vráti hodnotu True. V opačnom prípade vráti hodnotu 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.
Funkcia CByte
V tomto príklade sa používa funkcia CByte na skonvertovanie výrazu na hodnotu typu Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Funkcia CCur
V tomto príklade sa používa funkcia CCur na skonvertovanie výrazu na hodnotu typu 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).
Funkcia CDate
V tomto príklade sa používa funkcia CDate na skonvertovanie reťazca na hodnotu typu Date. 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)
Funkcia CDbl
V tomto príklade sa používa funkcia CDbl na skonvertovanie výrazu na hodnotu typu Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Funkcia CDec
V tomto príklade sa používa funkcia CDec na skonvertovanie numerickej hodnoty na hodnotu typu Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Funkcia CInt
V tomto príklade sa používa funkcia CInt na skonvertovanie hodnoty na hodnotu typu Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Funkcia CLng
V tomto príklade sa používa funkcia CLng na skonvertovanie hodnoty na hodnotu typu 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.
Funkcia CSng
V tomto príklade sa používa funkcia CSng na skonvertovanie hodnoty na hodnotu typu 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.
Funkcia CStr
V tomto príklade sa používa funkcia CStr na skonvertovanie numerickej hodnoty na hodnotu typu String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Funkcia CVar
V tomto príklade sa používa funkcia CVar na skonvertovanie výrazu na hodnotu typu Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.