Kukin funktio pakottaa lauseken tiettyyn tietotyyppieen.
Syntaksi
CBool( expression )
CByte( expression )
CCur( expression )
CDate( expression )
CDbl( expression )
CDec( expression )
CInt( expression )
CLng( expression )
CSng( expression )
CStr( expression )
CVar( expression )
Pakollinen expressionargumentti-argumentti on mikä tahansa merkkijonolauseke tai numeerinen lauseke.
Palautustyypit
Funktion nimi määrää palautustypin seuraavasti:
Funktio |
Palautustyyppi |
Alue expression -argumentille |
---|---|---|
CBool |
Totuusarvo |
Mikä tahansa kelvollinen merkkijono tai numeerinen lauseke. |
CByte |
Tavu |
0–255. |
CCur |
Valuutta |
-922,337,203,685,477.5808– 922,337,203,685,477.5807. |
CDate |
Päivämäärä |
Mikä tahansa kelvollinen päivämäärälauseke. |
CDbl |
Double-tietotyyppi |
-1.79769313486231E308 kohteeseen -4,94065645841247E-324 negatiivisille arvoille; 4.94065645841247E-324 – 1,79769313486232E308 positiivisille arvoille. |
CDec |
Desimaali |
+/-79 228 162 514 264 337 593 543 950 335 pyöristetyille numeroille eli numeroille, joissa ei ole desimaalipaikkoja. Jos luku on 28 desimaalia, alue on +/-7.9228162514264337593543950335. Pienin mahdollinen nollasta poikkeava numero on 0,0000000000000000000000000001. |
CInt |
Kokonaisluku |
-32,768–32 767; murtoluvut pyöristetään. |
CLng |
Pitkä |
-2,147,483,648–2,147,483,647; murtoluvut pyöristetään. |
CSng |
Single-tietotyyppi |
-3,402823E38–-1,401298E-45 negatiivisille arvoille; 1,401298E-45–3,402823E38 positiivisille arvoille. |
CStr |
Merkkijono |
Palauttaa CStr expression-argumentin mukaan. |
CVar |
Muuttuja |
Sama alue kuin Double-tietotyyppi numeerisille arvoille. Sama alue kuin tyypin Merkkijono ei-numeerisille. |
Huomautuksia
Jos funktioon siirretty expression-argumentti on muunnettavan tietotyypin alueen ulkopuolella, tapahtuu virhe.
Voit yleensä kirjata koodin tietotyypin muuntofunktioiden avulla sen näyttämiseksi, että joidenkin operaatioiden tulos olisi ilmaistava tiettynä tietotyyppinä oletustietotyypin sijasta. Voit esimerkiksi käyttää CCur-funktiota valuutta-aritmetiikan pakottamiseksi tapauksissa, joissa käytetään tavallisesti Single-tietotyypin tarkkuutta, Double-tietotyypin tarkkuutta tai kokonaisluvun aritmetiikkaa.
Val-funktion sijasta olisi käytettävä tietotyypin muuntofunktioita kansainvälisten muuntojen suorittamiseksi yhdestä tietotyypistä toiseen. Esimerkiksi kun käytät CCur-funktiota, eri desimaalierottimet, eri tuhaterottimet ja erilaiset valuuttaoptiot tunnistetaan oikein tietokoneen kieliasetuksen mukaan.
Kun murto-osa on täsmälleen 0,5, CInt- ja CLng-funktiot pyöristävät sen aina lähimpään parilliseen lukuun. Esimerkiksi 0,5 pyöristetään lukuun 0 ja 1,5 pyöristetään lukuun 2. CInt- ja CLng-funktiot eroavat Fix- ja Int-funktioista, jotka katkaisevat luvun murto-osan sen pyöristämisen sijasta. Lisäksi Fix- ja Int-funktiot palauttavat aina saman tyypin arvon kuin siirrossa.
Voit IsDate-funktion avulla määrittää, voidaanko päivämäärä muuntaa päivämääräksi vai kellonajaksi. CDate-funktio tunnistaa päivämääräliteraalit ja aikaliteraalit samoin kuin jotkin luvut, jotka ovat hyväksyttävien päivämäärien alueen sisällä. Kun muunnat luvun päivämääräksi, kokonaisluvun osa muunnetaan päivämääräksi. Luvun jokainen murto-osa muunnetaan tiettyyn kellonaikaan alkaen keskiyöstä.
CDate-funktio tunnistaa päivämäärämuodot järjestelmän aluekohtaiset asetukset-asetuksen mukaan. Päivän, kuukauden ja vuoden oikeaa järjestystä ei voida ehkä määrittää, jos se on annettu jossakin toisessa muodossa kuin päivämääräasetuksissa tunnistetussa muodossa. Lisäksi pitkää päivämäärämuotoa ei tunnisteta, jos se sisältää myös viikonpäivä-merkkijonon.
CVDate-funktio tarjoaa myös yhteensopivuuden Visual Basicin aiempien versioiden kanssa. CVDate-funktion syntaksi on identtinen CDate-funktion kanssa, mutta CVDate palauttaa variantin, jonka alatyyppi on Päivämäärä todellisen Päivämäärä-tyypin sijaan. Koska päivämäärätyyppi on nyt itseisarvo, CVDate-päivämäärää ei enää tarvita. Sama vaikutus voidaan saavuttaa muuntamalla lauseke päivämääräksi ja määrittämällä se sitten variantille. Tämä tekniikka on yhdenmukainen kaikkien muiden itseisarvotyyppien muuntamisen kanssa vastaaviksi Variantti-alatyypeiksi .
Huomautus: CDec-funktio ei palauta erillistä tietotyyppiä vaan se palauttaa aina Variant-tyypin, jonka arvo on muunnettu Decimal-alatyypiksi.
Esimerkkejä kyselystä
Lauseke |
Tulokset |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Palauttaa "Myyntihinta", "LopullinenHinta" ja arvioi, onko Myyntihinta suurempi kuin Lopullinen hinta. Palauttaa arvon "-1", jos tosi, ja "0", jos epätosi. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa Määrä-kentän arvot tavumuotoon ja näyttää sarakkeessa Lauseke1 Palauttaa "Tuotetunnus",muuntaa Määrä-kentän arvot Valuutta-muotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa DateofSale-kentän arvot Päivämäärä-muotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa "Alennus"-kentän arvot Double-muotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa "Alennus"-kentän arvot kokonaislukumuotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa "Alennus"-kentän arvot Pitkä-muotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa "Alennus"-kentän arvot yhdeksi muodoksi ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa "Alennus"-kentän arvot merkkijonomuotoon ja näkyy sarakkeessa Lauseke1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Palauttaa "Tuotetunnus",muuntaa Alennus-kentän arvot double-arvoiksi numeerisille arvoille ja Merkkijono ei-numeerisille arvoille. |
VBA-esimerkkejä
Huomautus: Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Lisätietoja VBA:n käsittelemisestä on artikkelissa Access VBA -viittaus.
CBool-funktio
Tässä esimerkissä CBool-funktiota käytetään muuntamaan lauseke totuusarvoksi. Jos lauseke laskee muun kuin nolla-arvon, CBool palauttaa Tosi; muussa tapauksessa se palauttaa Epätosi.
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.
CByte-funktio
Tässä esimerkissä käytetään CByte-funktiota muuntamaan lauseke tavuksi.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur-funktio
Tässä esimerkissä käytetään CCur-funktiota muuntamaan lauseke valuutaksi.
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).
CDate-funktio
Tässä esimerkissä käytetään CDate-funktiota muuntamaan merkkijono päivämääräksi. Yleensä päivämäärien ja aikojen kiinteää koodausta merkkijonoiksi (kuten tässä esimerkissä) ei suositella. Käytä sen sijaan päivämääräliteraaleja ja aikaliteraaleja, kuten #2/12/1969# ja #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)
CDbl-funktio
Tässä esimerkissä käytetään CDbl-funktiota muuntamaan lauseke Double-tietotyypiksi.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec-funktio
Tässä esimerkissä käytetään CDec-funktiota muuntamaan numeerinen arvo desimaaliksi.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt-funktio
Tässä esimerkissä käytetään CInt-funktiota muuntamaan arvo kokonaisluvuksi.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng-funktio
Tässä esimerkissä käytetään CLng-funktiota muuntamaan arvo pitkäksi.
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.
CSng-funktio
Tässä esimerkissä käytetään CSng-funktiota muuntamaan arvo Single-tietotyypiksi.
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.
CStr-funktio
Tässä esimerkissä käytetään CStr-funktiota muuntamaan arvo merkkijonoksi.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar-funktio
Tässä esimerkissä käytetään CVar-funktiota muuntamaan lauseke muuttujaksi.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.