Funkce pro převody typu

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Každá funkce převede výraz na určitý datový typ.

Syntaxe

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

Povinným expression argumentem je libovolný řetězcový nebo číselný výraz.

Vrácené typy

Název funkce určuje návratový typ, jak je znázorněno v následující tabulce:

Funkce Vrácený typ Oblast argumentu expression
CBool Boolean Libovolný platný řetězcový nebo číselný výraz.
CByte Byte 0 do 255.
CCur Currency -922,337,203,685,477.5808 do 922,337,203,685,477.5807.
CDate Date Libovolný platný datový výraz.
CDbl Double -1.79769313486231E308 to -4.94065645841247E-324 pro záporné hodnoty; 4.94065645841247E-324 to 1.79769313486232E308 pro kladné hodnoty.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 Pro čísla s nulovou škálou nebo čí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 na 32,767; zlomky se zaokrouhlí.
CLng Long -2,147,483,648 na 2,147,483,647; zlomky se zaokrouhlí.
CSng Single -3.402823E38 to -1.401298E-45 pro záporné hodnoty; 1.401298E-45 to 3.402823E38 pro kladné hodnoty.
CStr String Vrácená hodnota závisí na argumentu expression .
CVar Variant Stejný rozsah jako Double u číselných hodnot Stejný rozsah jako String u nečíselných hodnot

Poznámky

expression Pokud je hodnota předaná funkci mimo rozsah datového typu, na který provádíte převod, dojde k chybě.

Obecně platí, že pomocí funkcí pro převod datových typů můžete svůj kód zdokumentovat, abyste ukázali, že výsledek operace by měl používat určitý datový typ místo výchozího typu. Slouží CCur třeba k vynucení měnových výpočtů v 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ů použijte místo Val toho, abyste poskytovali převody datových typů s ohledem na národní prostředí. Použijete-li CCurnapříklad , aplikace Access rozpozná různé oddělovače desetinných míst, oddělovače tisíců a možnosti měny na základě nastavení národního prostředí počítače.

Když je desetinná část přesně 0.5, CInt a CLng vždy ji zaokrouhlit na nejbližší sudé číslo. Například zaokrouhlení 0.5 na 0a 1.5 zaokrouhlení na 2. CInt a CLng liší se od Fix funkcí AND Int , které desetinnou část čísla místo zaokrouhlení zkrátí. Fix a Int také vždy vrátit hodnotu stejného typu, kterou předáte.

Funkce IsDate určuje, jestli date ji lze převést na datum nebo čas. CDate Rozpozná literály typu datum a čas a také některá čísla, která spadají do intervalu povolených kalendářních dat. Když převedete číslo na datum, stane se z celočíselné části datum. Jakákoli desetinná část se stává denní dobou, která začíná o půlnoci.

CDate rozpozná formáty data podle nastavení národního prostředí systému. Pokud zadáte jiný formát než jedno z rozpoznaných nastavení data, Access nemusí určit správné pořadí dne, měsíce a roku. Kromě toho nerozpozná dlouhý formát data, pokud obsahuje také řetězec dne v týdnu.

Funkce CVDate je také dostupná kvůli kompatibilitě se staršími verzemi jazyka Visual Basic. Syntaxe této CVDate funkce je shodná CDate . Vrátí však podtypVariant, CVDate jehož je Date místo skutečného Date typu. Access teď obsahuje vnitřní Date typ, takže už není potřeba CVDate. Stejného efektu můžete dosáhnout tak, že výraz převedete na a Date pak ho přiřadíte k Variantrozhraní . Tato technika je konzistentní s převodem jiných vnitřních typů na jejich ekvivalentní Variant podtypy.

Poznámka

Funkce CDec nevrací diskrétní datový typ. Místo toho vždy vrátí hodnotu Variant , jejíž hodnota byla převedena Decimal na podtyp.

Příklady dotazů

Výraz Výsledky
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Vrátí SalePrice a , a vyhodnotí, jestli SalePrice je větší než FinalPriceFinalPrice. Vrátí -1 , pokud má hodnotu True a 0 pokud False.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Quantity poli na Byte, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v DateofSale poli na Date, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Discount poli na Double, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Discount poli na Integer, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Discount poli na Long, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Discount poli na Single, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede hodnoty v Discount poli na String, a zobrazí je ve sloupci Expr1 .
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Vrátí ProductID, převede číselné Discount hodnoty na Double, a nečíselné hodnoty na String.

Příklady jazyka VBA

Poznámka

Následující příklady ukazují použití této funkce v modulu VBA (jazyk Visual Basic for Application). Další informace o práci s modulem VBA najdete v referenčních informacích k jazyku VBA v Accessu.

Funkce CBool

V tomto příkladu se funkce CBool používá k převodu výrazu Booleanna . Pokud je výraz vyhodnocen jako nenulová hodnota, CBool vrátí Truehodnotu ; v opačném případě vrátí 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žívá k převodu výrazu Bytena .

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

CCur

V tomto příkladu se funkce CCur používá k převodu výrazu Currencyna .

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

Tento příklad používá CDate funkci k převodu řetězce na Date. Obecně se nedoporučuje programovat data a časy jako řetězce, jak je znázorněno v tomto příkladu. Místo toho používejte literály typu datum a čas, napří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)

Funkce CDbl

V tomto příkladu se funkce CDbl používá k převodu výrazu Doublena .

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

CDec

V tomto příkladu se funkce CDec použije k převodu číselné hodnoty na Decimal.

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

CInt

V tomto příkladu se funkce CInt používá k převodu hodnoty na Integer.

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

Funkce CLng

Tento příklad používá CLng funkci k převodu hodnoty na 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

Tento příklad používá CSng funkci k převodu hodnoty na 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 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žívá k převodu výrazu Variantna .

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