Každá funkce převede Výraz na určitý Datový typ.
Syntaxe
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ý Argumentvýraz je buď Řetězcový výraz, nebo Číselný výraz.
Vrácené datové typy
Název funkce určuje vrácený datový typ, který je uvedený v následující tabulce:
Funkce |
Vrácený datový typ |
Rozsah argumentu výraz |
---|---|---|
CBool |
Boolean |
Libovolný platný řetězec nebo číselný výraz. |
CByte |
Byte |
0 až 255. |
CCur |
Currency |
-922 337 203 685 477,5808 až 922 337 203 685 477,5807. |
CDate |
Date |
Libovolný platný výraz odpovídající datu. |
CDbl |
Double |
-1,79769313486231E308 až -4,94065645841247E-324 pro záporné hodnoty; 4.94065645841247E-324 až 1,79769313486232E308 pro kladné hodnoty. |
CDec |
Decimal |
+/-79 228 162 514 264 337 593 543 950 335 pro čísla bez desetinných míst. U čísel s 28 desetinnými místy je rozsah +/-7.9228162514264337593543950335. Nejmenší možné nenulové číslo je 0,0000000000000000000000000001. |
CInt |
Integer |
-32 768 až 32 767; desetinná čísla se zaokrouhlí. |
CLng |
Long |
-2 147 483 648 až 2 147 483 647; desetinná čísla se zaokrouhlí. |
CSng |
Single |
-3,402823E38 až -1,401298E-45 pro záporné hodnoty; 1,401298E-45 až 3,402823E38 pro kladné hodnoty. |
CStr |
String |
Vrácený datový typ závisí na argumentu výraz. |
CVar |
Variant |
Pro číselné hodnoty je rozsah stejný jako u typu Double. Pro jiné než číselné hodnoty je rozsah stejný jako u typu String. |
Poznámky
Pokud výraz předaný funkci neleží v intervalu cílového datového typu, na který ho převádíte, dojde k chybě.
Obecně platí, že při psaní kódu můžete používat funkce pro převod datových typů k zobrazení výsledku operace jako určitého datového typu místo výchozího datového typu. Můžete třeba použít CCur k vynucení měnových výpočtů v těch případech, kde byste normálně použili aritmetické výpočty s přesností na jedno nebo dvě desetinná místa, případně bez desetinných míst (integer).
Funkce pro převod datových typů byste měli používat místo funkce Val, abyste zajistili mezinárodně platné převody datových typů. Například když použijete CCur, budou správně rozpoznány různé oddělovače desetinných míst, různé oddělovače tisíců a různé možnosti symbolů měny podle nastavení národního prostředí v počítači.
Pokud část za desetinnou čárkou přesně odpovídá 0,5, zaokrouhlí funkce CInt a CLng hodnotu vždy na nejbližší sudé číslo. Například 0,5 se zaokrouhlí na 0 a 1,5 se zaokrouhlí na 2. Funkce CInt a CLng se liší od funkcí Fix a Int, které část čísla za desetinnou čárkou místo zaokrouhlení zkrátí. Funkce Fix a Int vrátí vždy stejný typ hodnoty, jaký jim byl předán.
Funkce IsDate umožňuje zjistit, jestli se dá datum převést na datum nebo čas. Funkce CDate rozpozná literály typu datum a čas a také některá čísla, která spadají do intervalu povolených kalendářních dat. Při převodu čísla na datum se na datum převádí celočíselná část. Desetinná část čísla se převádí na denní čas (počínaje půlnocí).
CDate rozpozná formáty kalendářních dat podle Národní prostředí nastavení vašeho systému. Správné pořadí dne, měsíce a roku nelze určit, pokud je k dispozici v jiném formátu, než je některé z rozpoznaných nastavení kalendářních dat. Formát dlouhého data se navíc nerozpozná, pokud obsahuje také řetězec dne v týdnu.
Funkce CVDate je také k dispozici z důvodu kompatibility s předchozími verzemi jazyka Visual Basic. Syntaxe funkce CVDate je shodná s funkcí CDate , ale funkce CVDate vrátí variantu , jejíž podtyp je Date místo skutečného typu Date . Vzhledem k tomu, že teď existuje vnitřní typ Date , není už cvDate potřeba. Stejného efektu lze dosáhnout převodem výrazu na datum a jeho přiřazením k variantě. Tato technika je konzistentní s převodem všech ostatních vnitřních typů na jejich ekvivalentní podtypy Variant .
Poznámka: Funkce CDec nevrátí diskrétní datový typ, ale vždy vrátí typ Variant, jehož hodnota byla převedena na podtyp Decimal.
Příklady dotazů
Výraz |
Výsledky |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Vrátí hodnotu "SalePrice", "FinalPrice" a vyhodnotí, jestli je Cena za prodej větší než Konečná cena. Vrátí hodnotu -1, pokud je pravda, a "0", pokud nepravda. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Množství na formát bajtů a zobrazí se ve sloupci Výraz1 Vrátí "Idproduktu", převede hodnoty v poli Množství na formát měny a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CDate(DateofSale) AS Výraz1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli DateofSale do formátu data a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva do dvojitého formátu a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CInt(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva do celočíselného formátu a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CLng(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva do dlouhého formátu a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CSng(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva do jednoduchého formátu a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CStr(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva do formátu řetězce a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Vrátí hodnotu ProductID, převede hodnoty v poli Sleva na hodnotu Double pro číselné hodnoty a řetězec pro nečíselné hodnoty. |
Příklady jazyka VBA
Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Další informace o práci s jazykem VBA najdete v tématu Referenční informace k jazyku VBA.
Funkce CBool
V tomto příkladu se funkce CBool použije k převodu výrazu na datový typ Boolean. Pokud je výraz vyhodnocený jako nenulová hodnota, vrátí funkce CBool hodnotu True, jinak vrátí 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.
Funkce CByte
V tomto příkladu se funkce CByte použije k převodu výrazu na datový typ Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Funkce CCur
V tomto příkladu se funkce CCur použije k převodu výrazu na datový typ 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).
Funkce CDate
V tomto příkladu se funkce CDate použije k převodu řetězce na datový typ Date. Obecně se nedoporučuje programovat data a časy jako řetězce (viz tento příklad). Raději použijte literály typu datum a čas, třeba #2/12/1969# nebo #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)
Funkce CDbl
V tomto příkladu se funkce CDbl použije k převodu výrazu na datový typ Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Funkce CDec
V tomto příkladu se funkce CDec použije k převodu číselné hodnoty na datový typ Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Funkce CInt
V tomto příkladu se funkce CInt použije k převodu hodnoty na datový typ Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Funkce CLng
V tomto příkladu se funkce CLng použije k převodu hodnoty na datový typ 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.
Funkce CSng
V tomto příkladu se funkce CSng použije k převodu hodnoty na datový typ 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.
Funkce CStr
V tomto příkladu se funkce CStr použije k převodu číselné hodnoty na datový typ String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Funkce CVar
V tomto příkladu se funkce CVar použije k převodu výrazu na datový typ Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.