Tyyppimuuntofunktiot

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.