Kukin funktio muuntaa lausekkeen tietyksi tietotyypiksi.
Syntaksi
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
Pakollinen expression argumentti on mikä tahansa merkkijono tai numeerinen lauseke.
Palautustyypit
Funktion nimi määrää palautustyypin, kuten seuraavassa taulukossa näkyy:
| Funktio | Palautustyyppi | Argumentin expression alue |
|---|---|---|
CBool |
Boolean |
Mikä tahansa kelvollinen merkkijono tai numeerinen lauseke. |
CByte |
Byte |
0 kohteeseen 255. |
CCur |
Currency |
-922,337,203,685,477.5808 kohteeseen 922,337,203,685,477.5807. |
CDate |
Date |
Mikä tahansa kelvollinen päivämäärälauseke. |
CDbl |
Double |
-1.79769313486231E308
-4.94065645841247E-324 to negatiivisille arvoille; 4.94065645841247E-324 to 1.79769313486232E308 positiivisille arvoille. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 pyöristetyille tai numeroille, joissa ei ole desimaaleja. Desimaalilukujen 28 alue on +/-7.9228162514264337593543950335. Pienin mahdollinen nollasta poikkeava luku on 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768
32,767: murtoluvut pyöristetään. |
CLng |
Long |
-2,147,483,648
2,147,483,647: murtoluvut pyöristetään. |
CSng |
Single |
-3.402823E38
-1.401298E-45 to negatiivisille arvoille; 1.401298E-45 to 3.402823E38 positiivisille arvoille. |
CStr |
String |
Palautusarvo riippuu argumentista expression . |
CVar |
Variant |
Sama alue kuin Double numeerisissa arvoissa. Sama alue kuin String ei-numeerisilla arvoilla. |
Huomautuksia
Jos funktioon välitetty arvo expression on muunnettavan tietotyypin alueen ulkopuolella, tapahtuu virhe.
Voit yleensä kirjata koodin tietotyypin muuntofunktioiden avulla sen näyttämiseksi, että toiminnon tuloksessa tulisi käyttää tiettyä tietotyyppiä oletustyypin sijasta. Käytä tätä CCur esimerkiksi valuutta-aritmetiikan pakottamiseksi tapauksissa, joissa käytetään normaalisti Single-tietotyypin tarkkuutta, Double-tietotyypin tarkkuutta tai kokonaisluvun aritmetiikkaa.
Käytä tietotyypin muuntofunktioita sen sijaan, että suorittaisit Val aluekohtaiset muunnokset yhdestä tietotyypistä toiseen. Esimerkiksi käytettäessä CCur, Access tunnistaa eri desimaalierottimet, tuhaterottimet ja valuuttaoptiot tietokoneen kieliasetuksen perusteella.
Kun murto-osa on täsmälleen 0.5, CInt ja CLng pyöristä se aina lähimpään parilliseen lukuun. Esimerkiksi 0.5 pyöristää muotoon 0, ja 1.5 pyöristää .2
CInt ja CLng eroavat Fix JA-funktioista Int , jotka katkaisevat luvun murto-osan sen pyöristämisen sijasta.
Fix ja Int palauttaa aina saman tyypin arvon kuin välität.
Funktion IsDate avulla voit määrittää, voidaanko date tiedot muuntaa päivämääräksi vai kellonajaksi.
CDate Tunnistaa päivämääräliteraalit ja aikaliteraalit sekä jotkin luvut, jotka ovat hyväksyttävien päivämäärien alueen sisällä. Kun muunnat luvun päivämääräksi, kokonaisluvun osasta tulee päivämäärä. Jokaisesta murto-osasta tulee kellonaika, joka alkaa keskiyöllä.
CDate Tunnistaa päivämäärämuodot järjestelmän kieliasetuksen mukaan. Access ei ehkä määritä päivän, kuukauden ja vuoden oikeaa järjestystä, jos käytät jotakin muuta kuin tiettyä päivämääräasetukseksi tunnistettua muotoa. Lisäksi se ei tunnista pitkää päivämäärämuotoa, jos se sisältää myös viikonpäivä-merkkijonon.
Funktio CVDate on myös käytettävissä yhteensopivuuden varmistamiseksi Visual Basicin aiempien versioiden kanssa. Syntaksi CVDate on sama CDate kuin funktiolla. Palauttaa CVDate kuitenkin kenen Variant alatyyppi on Date todellisen Date tyypin sijasta. Koska Access sisältää nyt luontaisen Date tyypin, et enää tarvitse CVDate. Saat saman vaikutuksen muuntamalla lausekkeen a:ksi Date ja liittämällä sen sitten .Variant Tämä tekniikka on yhdenmukainen muiden luontaisten tyyppien muuntamisen kanssa vastaaviksi Variant alatyypeiksi.
Huomautus
CDec Funktio ei palauta erillistä tietotyyppiä. Sen sijaan se palauttaa aina arvon, Variant jonka arvo on muunnettu Decimal alatyypiksi.
Esimerkkejä kyselyistä
| Lauseke | Tulokset |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Palauttaa sanan SalePrice ja FinalPrice, ja arvioi, onko SalePrice se suurempi kuin FinalPrice. Palauttaa -1 , onko se tosi ja 0 epätosi. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Bytearvot Quantity , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Datearvot DateofSale , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Doublearvot Discount , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Integerarvot Discount , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Longarvot Discount , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Singlearvot Discount , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa kentän Stringarvot Discount , ja näyttää ne Expr1 sarakkeessa. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Palauttaa ProductID, muuntaa numeeriset Discount arvot muotoon Double, ja muuntaa ei-numeeriset arvot .String |
VBA-esimerkkejä
Huomautus
Seuraavissa esimerkeissä näytetään, miten tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Lisätietoja VBA-koodin käyttämisestä on Accessin VBA-viittauksessa.
CBool-funktio
Tässä esimerkissä CBool funktiolla lauseke muunnetaan .Boolean Jos lauseke laskee muun kuin nolla-arvon, palauttaa CBool ; Truemuussa tapauksessa se palauttaa 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.
CByte-funktio
Tässä esimerkissä CByte funktiolla lauseke muunnetaan .Byte
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur-funktio
Tässä esimerkissä CCur funktiolla lauseke muunnetaan .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).
CDate-funktio
Tässä esimerkissä CDate funktiolla merkkijono muunnetaan .Date Yleensä päivämäärien ja aikojen kiinteää koodausta merkkijonoiksi, kuten tässä esimerkissä näkyy, 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ä CDbl funktiolla lauseke muunnetaan .Double
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec-funktio
Tässä esimerkissä CDec funktiolla muunnetaan numeerinen arvo .Decimal
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt-funktio
Tässä esimerkissä CInt funktiolla arvo muunnetaan .Integer
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng-funktio
Tässä esimerkissä CLng funktiolla arvo muunnetaan .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.
CSng-funktio
Tässä esimerkissä CSng funktiolla arvo muunnetaan .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.
CStr-funktio
Tässä esimerkissä CStr funktiolla muunnetaan numeerinen arvo .String
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar-funktio
Tässä esimerkissä CVar funktiolla lauseke muunnetaan .Variant
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.