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ž |
CDec |
Decimal |
+/-79 228 162 514 264 337 593 543 950 335 pro čísla bez desetinných míst. Pro čísla s 28 desetinnými místy je rozsah |
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í).
Funkce CDate rozpozná formáty data podle Národní prostředí nastavení systému. Správné pořadí dne, měsíce a roku nemusí být určeno, pokud je zadané v jiném než jednom z nastavení rozpoznaných dat. Kromě toho není dlouhý formát data rozpoznán, pokud obsahuje i řetězec den v týdnu.
Funkce CVDate je k dispozici také kvůli kompatibilitě s předchozími verzemi jazyka Visual Basic. Syntaxe funkce CVDate je shodná s funkcí CDate, ale CVDate vrátí variantu, jejíž podtyp je Date místo skutečného typu Date. Vzhledem k tomu, že už existuje typ data ukončení, není už potřeba další DATUM CVDate. Stejného efektu lze dosáhnout převodem výrazu na datum a jeho přiřazením k variantě. Tento postup je konzistentní s převodem všech ostatních typů variant na odpovídající 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í "SalePrice", "FinalPrice" a vyhodnotí, jestli Je HodnotaProdeje vyšší než konečná cena. Vrátí "-1", pokud platí, a "0" v případě nepravdy. |
SELECT ProductID, CByte(Množství) AS Výraz1 FROM productSales; |
Vrátí "ID_produktu", převede hodnoty v poli Množství na formát Bajty a zobrazí ve sloupci Výraz1 Vrátí "ID_výrobku", převede hodnoty v poli Množství na formát Měna a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CDate(DateofSale) AS Výraz1 FROM productSales; |
Vrátí hodnotu "ID_výrobku", převede hodnoty v poli DateofSale na formát Datum a zobrazí ve sloupci Výraz1. |
SELECT ProductID, CDbl(Discount) AS Výraz1 FROM productSales; |
Vrátí "ID_výrobku", převede hodnoty v poli Sleva na formát Double a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CInt(Discount) AS Výraz1 FROM productSales; |
Vrátí "ID_výrobku", převede hodnoty v poli Sleva na formát Celé číslo a zobrazí ve sloupci Výraz1. |
SELECT ProductID, CLng(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu "ID_výrobku", převede hodnoty v poli Sleva na formát Long a zobrazí je ve sloupci Výraz1. |
SELECT ProductID, CSng(Discount) AS Výraz1 FROM productSales; |
Vrátí "ID_výrobku", převede hodnoty v poli Sleva na formát Single a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CStr(Discount) AS Výraz1 FROM productSales; |
Vrátí "ID_výrobku", převede hodnoty v poli Sleva na formát Řetězec a zobrazí se ve sloupci Výraz1. |
SELECT ProductID, CVar(Discount) AS Výraz1 FROM productSales; |
Vrátí hodnotu "ID_výrobku", převede hodnoty v poli Diskont_cena 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). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.
Funkce CBool
Tip: Se správnou formulací výrazů vám pomůže Tvůrce výrazů s funkcí IntelliSense v Accessu 2010.
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.