Tipa konvertēšanas funkcijas

Attiecas uz
Access pakalpojumam Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Katra funkcija pārveido izteiksmi noteiktā datu tipā.

Sintakse

CBool(izteiksme)

CByte(izteiksme)

CCur(izteiksme)

CDate(izteiksme)

CDbl(izteiksme)

CDec(izteiksme)

CInt(izteiksme)

CLng(izteiksme)

CSng(izteiksme)

CStr(izteiksme)

CVar(izteiksme)

Nepieciešamais izteiksmesarguments ir jebkura virknes izteiksme vai skaitliska izteiksme.

Atgriešanas veidi

Funkcijas nosaukums nosaka atgriešanās tipu, kā parādīts tālāk:

Funkcija Atgriešanas tips Izteiksmju diapazona arguments
CBool Būla izteiksme Jebkura derīga virknes vai skaitliska izteiksme.
CByte Baits no 0 līdz 255.
CCur Valūta -922 337 203 685 477,5808 līdz 922 337 203 685 477,5807.
CDate Datums Jebkura derīga datuma izteiksme.
CDbl Double -1.79769313486231E308 līdz
-4,94065645841247E-324 negatīvām vērtībām; 4,94065645841247E-324 līdz 1,79769313486232E308 pozitīvām vērtībām.
CDec Pēc decimālzīmes. +/-79 228 162 514 264 337 593 543 950 335 skaitļiem bez cipariem aiz komata. Skaitļiem ar 28 decimāldaļas vietām diapazons ir
+/-7.9228162514264337593543950335. Mazākais iespējamais skaitlis, kas nav nulle, ir 0.0000000000000000000000000001.
CInt Vesels skaitlis -32,768 līdz 32,767; Daļskaitļi tiek noapaļoti.
CLng Garš -2 147 483 648 līdz 2 147 483 647; Daļskaitļi tiek noapaļoti.
CSng Single -3.402823E38 līdz -1.401298E-45 negatīvām vērtībām; 1.401298E-45 līdz 3.402823E38 pozitīvām vērtībām.
CStr Virkne CStr atgriešanās ir atkarīga no izteiksmes argumenta.
CVar Variants Identisks skaitļu diapazons kā Double. Identisks diapazons kā String vērtībām, kas nav skaitļi.

Piezīmes

Ja funkcijai nodotā izteiksme ir ārpus konvertētā datu tipa diapazona, rodas kļūda.

Parasti kodu var dokumentēt, izmantojot datu tipa konvertēšanas funkcijas, lai parādītu, ka kādas darbības rezultāts ir jāizsaka kā konkrēts datu tips, nevis noklusējuma datu tips. Piemēram, izmantojiet CCur , lai iestatītu valūtas aritmētiku gadījumos, kad parasti notiek vienas precizitātes, dubultas precizitātes vai vesela skaitļa aritmētika.

Izmantojiet datu tipa konvertēšanas funkcijas, nevis Val , lai nodrošinātu starptautiski zināmu konvertēšanu no viena datu tipa uz citu. Piemēram, izmantojot CCur, atkarībā no datora lokālajiem iestatījumiem pareizi tiek atpazīti dažādi decimāldaļu atdalītāji, dažādi tūkstošu atdalītāji un dažādas valūtas opcijas.

Ja decimāldaļa ir precīzi 0,5, CInt un CLng to vienmēr noapaļo līdz tuvākajam pāra skaitlim. Piemēram, 0,5 noapaļo līdz 0, bet 1,5 noapaļo līdz 2. CInt un CLng atšķiras no funkcijām Fix un Int , kuras skaitļa decimāldaļu nevis noapaļo, nevis apcērt. Turklāt Fix un Int vienmēr atgriež tā paša tipa vērtību, kas nodota.

Izmantojiet funkciju IsDate , lai noteiktu, vai datumu var konvertēt par datumu vai laiku. CDate atpazīst datuma literāļus un laika literāļus, kā arī dažus skaitļus, kas ietilpst pieņemamo datumu diapazonā. Konvertējot skaitli par datumu, veselā skaitļa daļa tiek pārvērsta par datumu. Jebkura skaitļa daļa tiek pārvērsta par diennakts laiku, sākot no pusnakts.

CDate atpazīst datuma formātus atbilstoši jūsu sistēmas lokālajiem iestatījumiem. Pareizo dienu, mēneša un gada secību var nenoteikt, ja tā ir norādīta citā formātā, nevis vienā no atpazītajiem datuma iestatījumiem. Turklāt garais datuma formāts netiek atpazīts, ja tajā ir arī nedēļas dienas virkne.

Ir nodrošināta arī CVDate funkcija saderībai ar iepriekšējām Visual Basic versijām. Funkcijas CVDate sintakse ir identiska funkcijas CDate sintaksei, tomēr CVDate atgriež variantu , kura apakštips ir Datums , nevis faktiskais datuma tips. Tā kā tagad ir raksturīgs datuma tips, CVDate vairs nav nepieciešams. To pašu efektu var panākt, pārvēršot izteiksmi par datumu un pēc tam piešķirot tai variantu. Šī metode atbilst visu pārējo iekšējo tipu pārvēršanai to ekvivalentajos variantu apakštipos.

Piezīme

Funkcija CDec neatgriež diskrētu datu tipu; tā vietā tā vienmēr atgriež Variant , kura vērtība ir konvertēta par decimāldaļskaitļa apakštipu.

Vaicājumu piemēri

Izteiksme Rezultāti
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; Atgriež "SalePrice", "FinalPrice" un novērtē, vai SalePrice ir lielāka par galīgo cenu. Atgriež "-1", ja patiess, un "0", ja ir aplams.
SELECT ProductID, CByte(daudzums) AS Expr1 FROM productSales; Atgriež "ProduktaID", konvertē lauka "Daudzums" vērtības baitu formātā un parāda kolonnā Expr1 Atgriež "ProduktaID", konvertē vērtības laukā "Daudzums" valūtas formātā un parāda kolonnas Expr1.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Atgriež "Produkta_ID", konvertē vērtības laukā "Pārdošanas datums" datuma formātā un parāda kolonnas Expr1.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Atgriež "Produkta_ID", konvertē vērtības laukā "Atlaide" dubultformātā un parāda kolonnas Izteiksme1.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Atgriež "ProduktaID", konvertē vērtības laukā "Atlaide" veselu skaitļu formātā un parāda kolonnas Expr1.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Atgriež "ProduktaID", konvertē vērtības laukā "Atlaide" garajā formātā un parāda kolonnā Expr1.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Atgriež "Produkta_ID", konvertē vērtības laukā "Atlaide" vienfaila formātā un parāda kolonnas Izteiksme1.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Atgriež "ProduktaID", konvertē vērtības laukā "Atlaide" virknes formātā un parāda kolonnas Expr1.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Atgriež "ProduktaID", konvertē vērtības laukā "Atlaide" par Double skaitliskām vērtībām un virkni vērtībām, kas nav skaitliskas.

VBA piemēri

Piezīme

Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Papildinformāciju par darbu ar VBA skatiet Access VBA atsaucē.

Funkcija CBool

Šajā piemērā izmantota funkcija CBool , lai izteiksmi pārvērstu par Būla vērtību. Ja izteiksme tiek novērtēta ar vērtību, kas nav nulle, CBool atgriež True; pretējā gadījumā tā atgriež vērtību 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

Šajā piemērā izmantota funkcija CByte , lai izteiksmi pārvērstu par baitu.


Dim MyDouble, MyByte
MyDouble = 125.5678    ' MyDouble is a Double.
MyByte = CByte(MyDouble)    ' MyByte contains 126.

Funkcija CCur

Šajā piemērā izmantota funkcija CCur , lai izteiksmi pārvērstu par valūtu.


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

Šajā piemērā tiek izmantota funkcija CDate , lai virkni konvertētu par datumu. Nav ieteicams datumus un laikus iekodēt kā virknes (kā parādīts šajā piemērā). Tā vietā izmantojiet datuma un laika literāļus, piemēram, #2/12/1969# un #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

Šajā piemērā izmantota funkcija CDbl , lai izteiksmi pārvērstu par dubultvērtību.


Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

Funkcija CDec

Šajā piemērā izmantota funkcija CDec , lai skaitlisku vērtību pārvērstu par decimālu vērtību.


Dim MyDecimal, MyCurr
MyCurr = 10000000.0587    ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr)     ' MyDecimal is a Decimal.

Funkcija CInt

Šajā piemērā izmantota funkcija CInt , lai vērtību pārvērstu par veselu skaitli.


Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble is a Double.
MyInt = CInt(MyDouble)    ' MyInt contains 2346.

Funkcija CLng

Šajā piemērā izmantota funkcija CLng , lai vērtību pārvērstu par garu vērtību.


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

Šajā piemērā izmantota funkcija CSng , lai vērtību pārvērstu par vienu.


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

Šajā piemērā izmantota funkcija CStr , lai skaitlisku vērtību pārvērstu par virkni.


Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

Funkcija CVar

Šajā piemērā izmantota funkcija CVar , lai pārveidotu izteiksmi par Variant.


Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000") 
' MyVar contains the string 4534000.