Hver funksjon konverterer en uttrykk til en bestemt datatype.
Syntaks
CBool( uttrykk )
CByte( uttrykk )
CCur( uttrykk )
CDate( uttrykk )
CDbl( uttrykk )
CDec( uttrykk )
CInt( uttrykk )
CLng( uttrykk )
CSng( uttrykk )
CStr( uttrykk )
CVar( uttrykk )
Det nødvendige uttrykketargument er en hvilken som helst strenguttrykk eller numerisk uttrykk.
Returtyper
Funksjonsnavnet bestemmer returtypen som vist i følgende:
Funksjon |
Returtype |
Område for uttrykksargument |
---|---|---|
CBool |
Boolsk |
Alle gyldige strenger eller numeriske uttrykk. |
CByte |
Byte |
0 til 255. |
CCur |
Valuta |
-922 337 203 685 477,5808 til 922 337 203 685 477,5807. |
CDate |
Dato |
Et gyldig datauttrykk. |
CDbl |
Dobbel |
-1,79769313486231E308 til -4,94065645841247E-324 for negative verdier; 4,94065645841247E-324 til 1,79769313486232E308 for positive verdier. |
CDec |
Desimal |
+/-79,228,162,514,264,337,593,543,950,335 for zero-scaled numbers, that is, numbers with no decimal places. For tall med 28 desimaler er området +/-7.9228162514264337593543950335. Det minste mulige tallet som ikke er null, er 0,0000000000000000000000000001. |
CInt |
Heltall |
-32 768 til 32 767; brøker avrundes. |
CLng |
Lang |
-2.147.483.648 til 2.147.483.647; brøker avrundes. |
CSng |
Enkel |
-3,402823E38 til -1,401298E-45 for negative verdier; 1,401298E-45 til 3,402823E38 for positive verdier. |
CStr |
Streng |
Returnerer for CStr avhenger av uttrykksargumentet . |
CVar |
Variant |
Samme spekter som Langt flyttall for numeriske verdier. Samme spekter som Streng for ikke-numeriske verdier. |
Merknader
Hvis uttrykket som sendes til funksjonen, er utenfor datatypen som konverteres til, oppstår det en feil.
Generelt sett kan du dokumentere koden ved hjelp av datatypekonverteringsfunksjonene for å vise at resultatet av en operasjon bør uttrykkes som en bestemt datatype i stedet for standard datatype. Du kan for eksempel bruke CCur til å fremtvinge valutaaritmetikk i tilfeller der enkel presisjon, dobbel presisjon eller heltall aritmetisk normalt ville forekomme.
Du bør bruke datatypekonverteringsfunksjonene i stedet for Val til å gi internasjonalt bevisste konverteringer fra én datatype til en annen. Når du for eksempel bruker CCur, gjenkjennes ulike desimalskilletegn, forskjellige tusenskilletegn og ulike valutaalternativer på riktig måte, avhengig av innstillingen for nasjonal innstilling på datamaskinen.
Når brøkdelen er nøyaktig 0,5, runder CInt og CLng alltid av til nærmeste partall. 0,5 runder for eksempel av til 0 og 1,5 runder av til 2. CInt - og CLng skiller seg fra fix - og int-funksjonene , som avkorter, i stedet for runde, brøkdelen av et tall. Fix og Int returnerer alltid en verdi av samme type som sendes inn.
Bruk IsDate-funksjonen til å bestemme om dato kan konverteres til en dato eller et klokkeslett. CDate gjenkjenner datolitteraler og tidslitteraler samt noen tall som faller innenfor området for akseptable datoer. Når du konverterer et tall til en dato, konverteres hele talldelen til en dato. Alle brøkdeler av tallet konverteres til et klokkeslett på dagen, og starter ved midnatt.
CDate gjenkjenner datoformater i henhold til nasjonal innstilling innstillingen for systemet. Riktig rekkefølge for dag, måned og år kan ikke fastslås hvis den er angitt i et annet format enn én av de gjenkjente datoinnstillingene. I tillegg gjenkjennes ikke et langt datoformat hvis det også inneholder dag-i-uken-strengen.
En CVDate-funksjon er også tatt med for kompatibilitet med tidligere versjoner av Visual Basic. Syntaksen for CVDate-funksjonen er identisk med CDate-funksjonen , men CVDate returnerer en variant med undertypen Dato i stedet for en faktisk datotype . Siden det nå finnes en innebygd datotype , er det ikke lenger behov for CVDate. Den samme effekten kan oppnås ved å konvertere et uttrykk til en dato og deretter tilordne det til en variant. Denne teknikken samsvarer med konverteringen av alle andre innebygde typer til tilsvarende variantundertyper .
Obs!: CDec-funksjonen returnerer ikke en diskret datatype. I stedet returnerer den alltid en variant der verdien er konvertert til en desimalundertype.
Spørringseksempler
Expression |
Resultater |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Returnerer «SalePrice», «FinalPrice» og evaluerer om SalePrice er større enn endelig pris. Returnerer «-1» hvis sann og «0» hvis usann. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Returnerer "ProductID",konverterer verdiene i "Antall"-feltet til byteformat og vises i kolonnen Uttrykk1 Returnerer "ProductID",konverterer verdiene i "Antall"-feltet til Valuta-format og vises i kolonne Uttrykk1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i «DateofSale»-feltet til datoformat og vises i kolonne Uttrykk1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til dobbeltformat og vises i kolonne Uttrykk1. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til heltallsformat og vises i kolonne Uttrykk1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til Langt format og vises i kolonne Uttrykk1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til enkeltformat og vises i kolonne Uttrykk1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til strengformat og vises i kolonne Uttrykk1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Returnerer «ProductID», konverterer verdiene i Rabatt-feltet til Langt flyttall for numeriske verdier og Streng for ikke-numeriske verdier. |
VBA-eksempler
Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, kan du se Access VBA-referanse.
CBool, funksjon
Dette eksemplet bruker CBool-funksjonen til å konvertere et uttrykk til en boolsk verdi. Hvis uttrykket evalueres til en verdi som ikke er null, returnerer CBoolSann. Ellers returneres Usann.
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, funksjon
Dette eksemplet bruker CByte-funksjonen til å konvertere et uttrykk til en byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur, funksjon
Dette eksemplet bruker CCur-funksjonen til å konvertere et uttrykk til en valuta.
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, funksjon
Dette eksemplet bruker CDate-funksjonen til å konvertere en streng til en dato. Vanligvis anbefales ikke hardkoding av datoer og klokkeslett som strenger (som vist i dette eksemplet). Bruk datolitteraler og tidslitteraler, for eksempel #12.02.1969# og #4:45:23 PM#, i stedet.
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, funksjon
Dette eksemplet bruker CDbl-funksjonen til å konvertere et uttrykk til et langt flyttall.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec, funksjon
Dette eksemplet bruker CDec-funksjonen til å konvertere en numerisk verdi til et desimaltall.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt, funksjon
Dette eksemplet bruker CInt-funksjonen til å konvertere en verdi til et heltall.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng, funksjon
Dette eksemplet bruker CLng-funksjonen til å konvertere en verdi til en lang verdi.
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, funksjon
Dette eksemplet bruker CSng-funksjonen til å konvertere en verdi til en enkel verdi.
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, funksjon
Dette eksemplet bruker CStr-funksjonen til å konvertere en numerisk verdi til en streng.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar, funksjon
Dette eksemplet bruker CVar-funksjonen til å konvertere et uttrykk til en variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.