Kiekviena funkcija priverstinai naudoja reiškinį konkrečiam duomenų tipui.
Sintaksė
CBool(išraiška)
CByte(išraiška)
CCur(reiškinys)
CDate(išraiška)
CDbl(išraiška)
CDec(išraiška)
CInt(išraiška)
CLng(reiškinys)
CSng(išraiška)
CStr(išraiška)
CVar(išraiška)
Būtinas reiškinioargumentas yra bet kuris eilutės reiškinys arba skaitinis reiškinys.
Grąžinimo tipai
Funkcijos pavadinimas nurodo grąžinimo tipą, kaip parodyta šiame tekste:
| Funkcija | Grąžinimo tipas | Išraiškos argumento diapazonas |
|---|---|---|
| CBool | bulio logika | Bet kuris galiojantis eilutės ar skaitinis reiškinys |
| CByte | Baitas | Nuo 0 iki 255. |
| CCur | Valiuta | -922 337 203 685 477,5808 iki 922 337 203 685 477,5807. |
| CDate | Data | Bet kuris galiojantis datos reiškinys. |
| CDbl | Dvigubas | -1.79769313486231E308 iki -4.94065645841247E-324 neigiamoms reikšmėms; 4,94065645841247E-324 iki 1,79769313486232E308 teigiamoms reikšmėms. |
| CDec | Dešimtainis | +/-79 228 162 514 264 337 593 543 950 335 skaičių be dešimtainių skyriklių vietų atveju. Skaičių su 28 dešimtainių skilčių diapazonas yra +/-7.9228162514264337593543950335. Mažiausias galimos nenulinis skaičius yra 0,0000000000000000000000000001. |
| CInt | Sveikasis skaičius | -32,768 iki 32,767; Trupmenos suapvalinamos. |
| CLng | Ilgas | -2 147 483 648 iki 2 147 483 647; Trupmenos suapvalinamos. |
| CSng | Viengubas | -3,402823E38 iki -1,401298E-45 neigiamoms reikšmėms; Nuo 1,401298E-45 iki 3,402823E38 teigiamoms reikšmėms. |
| CStr | Eilutė | CStr grąža priklauso nuo išraiškos argumento. |
| CVar | Variantas | Tas pats diapazonas kaip Dvigubas skaičių atveju. Tas pats diapazonas kaip Eilutė ne skaičių atveju. |
Pastabos
Jei funkcijai perduota išraiška yra už konvertuojamo duomenų tipo diapazono ribų, įvyksta klaida.
Apskritai naudodami duomenų tipo konvertavimo funkcijas galite dokumentuoti savo kodą, kad parodytumėte, jog kurios nors operacijos rezultatas turi būti išreikštas kaip konkretus duomenų tipas, o ne numatytasis duomenų tipas. Pavyzdžiui, naudokite funkciją CCur , kad priverstumėte atlikti valiutos aritmetinę funkciją tais atvejais, kai paprastai pasitaiko viengubumo, dvigubo tikslumo ar sveikųjų skaičių aritmetika.
Turėtumėte naudoti duomenų tipo konvertavimo funkcijas vietoj "Val", kad galėtumėte atlikti tarptautiniu mastu pagrįstus vieno duomenų tipo konvertavimus į kitą. Pavyzdžiui, kai naudojate CCur, skirtingi dešimtainių skyrikliai, skirtingi tūkstančių skyrikliai ir įvairios valiutos parinktys yra tinkamai atpažįstami, atsižvelgiant į jūsų kompiuterio lokalės parametrą.
Kai trupmeninė dalis yra lygiai 0,5, CInt ir CLng visada ją apvalina iki artimiausio lyginio skaičiaus. Pavyzdžiui, 0,5 apvalina iki 0, o 1,5 apvalina iki 2. CInt ir CLng skiriasi nuo funkcijų Fix ir Int , kurios sutrumpina, o ne apvalina skaičiaus trupmeninę dalį. Be to, "Fix" ir "Int " visada pateikia to paties tipo reikšmę, kuri yra perduota.
Naudokite funkciją IsDate norėdami nustatyti, ar datą galima konvertuoti į datą ar laiką. CDate atpažįsta datos ir laiko literalus bei kai kuriuos skaičius, patenkančius į priimtinų datų diapazoną. Skaičius konvertuojant į datą, sveikoji skaičiaus dalis konvertuojama į datą. Bet kuri skaičiaus trupmeninė dalis konvertuojama į dienos laiką, pradedant vidurnaktį.
CDate atpažįsta datos formatus pagal jūsų sistemos lokalės nustatymą. Gali būti neįmanoma nustatyti tinkamos dienos, mėnesio ir metų tvarkos, jei ji pateikta kitu formatu nei vienas iš atpažintų datos parametrų. Be to, ilgasis datos formatas neatpažįstamas, jei jame yra ir savaitės dienos eilutė.
CVDate funkcija taip pat yra pateikta suderinamumo su ankstesnėmis "Visual Basic" versijomis užtikrinimui. Funkcijos CVDate sintaksė yra tokia pati kaip funkcijos CDate , tačiau CVDate grąžina variantą , kurio potipis yra Data , o ne tikrasis datos tipas. Kadangi dabar yra vidinis datos tipas, CVDate nebereikia. Tą patį efektą galima pasiekti konvertuojant reiškinį į datą, tada priskiriant jį variantui. Šis metodas atitinka visų kitų vidinių tipų konvertavimą į lygiaverčius variantų potipius.
Pastaba
Funkcija CDec nepateikia atskiro duomenų tipo; vietoj to, ji visada pateikia variantą , kurio reikšmė konvertuota į dešimtainį potipį.
Užklausų pavyzdžiai
| Išraiška | Rezultatai |
|---|---|
| SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; | Grąžina "SalePrice", "FinalPrice" ir įvertina, ar SalePrice yra didesnė už galutinę kainą. Grąžina "-1", jei teisinga, ir "0", jei klaidinga. |
| SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; | pateikia Produkto ID, konvertuoja lauko Kiekis reikšmes į baitų formatą ir rodo stulpelyje Reiškinys1, grąžina Produkto ID, konvertuoja lauko Kiekis reikšmes į valiutos formatą ir rodomas stulpelyje Reiškinys1. |
| SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; | Grąžina ProductID, konvertuoja lauko "DateofSale" reikšmes į datos formatą ir rodo stulpelyje Expr1. |
| SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; | Grąžina Produkto ID, konvertuoja lauko Nuolaida reikšmes į dvigubą formatą ir rodo stulpelio išraiškoje1. |
| SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; | Grąžina "ProductID", konvertuoja lauko "Nuolaida" reikšmes į sveikųjų skaičių formatą ir rodo stulpelio Expr1. |
| SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; | Grąžina "ProductID",konvertuoja lauko "Nuolaida" reikšmes į ilgąjį formatą ir rodo stulpelyje Expr1. |
| SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; | Grąžina "ProductID", konvertuoja lauko "Nuolaida" reikšmes į viengubo formato reikšmes ir rodo stulpelyje Expr1. |
| SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; | Grąžina ProductID, konvertuoja lauko "Nuolaida" reikšmes į eilutės formatą ir rodo stulpelio Expr1. |
| SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; | Grąžina "ProductID", konvertuoja lauko "Nuolaida" reikšmes į "Double" skaitinėms reikšmėms ir "String" neskaitinėms reikšmėms. |
VBA pavyzdžiai
Pastaba
Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA ieškokite "Access" VBA nuoroda.
Funkcija CBool
Šiame pavyzdyje naudojama funkcija CBool norint konvertuoti reiškinį į Bulio logiką. Jei išraiškos reikšmė nėra nulinė, CBool grąžina True; priešingu atveju ji grąžina 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.
Funkcija CByte
Šiame pavyzdyje funkcija CByte naudojama norint konvertuoti reiškinį į baitą.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Funkcija CCur
Šiame pavyzdyje naudojama funkcija CCur norint konvertuoti išraišką į valiutą.
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).
Funkcija CDate
Šiame pavyzdyje naudojama funkcija CDate eilutei konvertuoti į datą. Apskritai datos ir laiko aparatūriškai koduoti kaip eilutes (kaip parodyta šiame pavyzdyje) nerekomenduojama. Vietoj jų naudokite datos ir laiko literalus, pvz., #2/12/1969# ir #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)
Funkcija CDbl
Šiame pavyzdyje funkcija CDbl naudojama konvertuoti reiškinį į dvigubą.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Funkcija CDec
Šiame pavyzdyje naudojama funkcija CDec konvertuojant skaitinę reikšmę į dešimtainę.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Funkcija CInt
Šiame pavyzdyje funkcija CInt naudojama reikšmei konvertuoti į sveikąjį skaičių.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Funkcija CLng
Šiame pavyzdyje naudojama funkcija CLng reikšmei konvertuoti į ilgą reikšmę.
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.
Funkcija CSng
Šiame pavyzdyje naudojama funkcija CSng reikšmei konvertuoti į vieną.
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.
Funkcija CStr
Šiame pavyzdyje naudojama funkcija CStr konvertuojant skaitinę reikšmę į eilutę.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Funkcija CVar
Šiame pavyzdyje naudojama funkcija CVar , norint konvertuoti reiškinį į variantą.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.