Funkcije pretvorbe vrsta

Primjenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Svaka funkcija pretvara izraz u određenu vrstu podataka.

Sintaksa

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Obavezni expression je argument bilo koji nizovni ili brojčani izraz.

Vrste vraćenih rezultata

Naziv funkcije određuje vrstu vraćene vrijednosti, kao što je prikazano u sljedećoj tablici:

Funkcija Vraćena vrsta Raspon za expression argument
CBool Boolean Bilo koji valjani nizovni ili brojčani izraz.
CByte Byte 0 do 255.
CCur Currency -922,337,203,685,477.5808 do 922,337,203,685,477.5807.
CDate Date Bilo koji valjani datumski izraz.
CDbl Double -1.79769313486231E308 To -4.94065645841247E-324 za negativne vrijednosti, 4.94065645841247E-324 To 1.79769313486232E308 za pozitivne vrijednosti.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 Za brojeve skalirane na nulu ili brojeve bez decimalnih mjesta. Za brojeve s decimalnim 28 mjestima raspon je +/-7.9228162514264337593543950335. Najmanji mogući broj osim nule jest 0.0000000000000000000000000001.
CInt Integer -32,768 32,767do ; razlomci se zaokružuju.
CLng Long -2,147,483,648 2,147,483,647do ; razlomci se zaokružuju.
CSng Single -3.402823E38 To -1.401298E-45 za negativne vrijednosti, 1.401298E-45 To 3.402823E38 za pozitivne vrijednosti.
CStr String Vraćena vrijednost ovisi o argumentu expression .
CVar Variant Isti raspon kao i Double za numeričke vrijednosti. Isti raspon kao i String za vrijednosti koje nisu brojčane.

Napomene

Ako je proslijeđeni expression funkciji izvan raspona vrste podataka u koju pretvarate, doći će do pogreške.

Općenito, kod možete dokumentirati pomoću funkcija pretvorbe vrste podataka da biste pokazali da se u rezultatu postupka koristi određena vrsta podataka, a ne zadana vrsta. Npr. koristite CCur se za nametanje aritmetičke aritmetike valute u slučajevima kada bi se normalno pojavila aritmetika jednostruke preciznosti, dvostruke preciznosti ili cijelog broja

Koristite funkcije pretvorbe vrste podataka umjesto Val da biste omogućili pretvorbu jednog tipa podataka u drugi prema regionalnim postavkama. Kada koristite CCur, primjerice, Access prepoznaje različite decimalne razdjelnike ili tisućice te mogućnosti valute na temelju postavke regionalne sheme računala.

Kada je decimalni dio točno 0.5, CInt i CLng uvijek ga zaokružite na najbliži parni broj. Primjerice, 0.5 zaokružuje na 0, i 1.5 zaokružuje na 2. CInti CLng razlikuju se od funkcija AND IntFix, koje skraćuju decimalni dio broja umjesto da ga zaokružuju. Fix Uvijek Int vraća vrijednost iste vrste koju prosljeđujete.

Funkciju IsDate koristite da biste odredili može li date se pretvoriti u datum ili vrijeme. CDate Prepoznaje konkretne datumske i vremenske literale, kao i neke brojeve koji se nalaze u rasponu prihvatljivih datuma. Kada broj pretvorite u datum, dio cijelog broja postaje datum. Bilo koji decimalni dio postaje doba dana koje počinje u ponoć.

CDate Prepoznaje oblike datuma prema postavci regionalne sheme sustava. Access možda neće moći odrediti točan redoslijed dana, mjeseci i godina ako navedete oblik koji nije jedna od priznatih postavki datuma. Uz to, ne prepoznaje dugačke oblike datuma ako sadrži i niz dana u tjednu.

Funkcija CVDate je dostupna i radi kompatibilnosti sa starijim verzijama programa Visual Basic. Sintaksa CVDate funkcije je identična funkciji CDate . No CVDate vraća Variant podvrstu čija je Date podvrsta umjesto stvarne Date vrste. Budući da Access sada sadrži samostalnu Date vrstu, više vam nije potrebno CVDate. Isti efekt možete postići tako da izraz pretvorite u a Date , a zatim ga dodijelite programu Variant. Ova tehnika je u skladu s pretvorbom drugih intrinzičnih tipova u njihove ekvivalentne Variant podtipove.

Napomena

Funkcija CDec ne vraća diskretnu vrstu podataka. Umjesto toga, uvijek vraća A Variant čija je vrijednost pretvorena u podvrstu Decimal .

Primjeri upita

Izraz Rezultati
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Vraća SalePrice i FinalPrice, te utvrđuje je SalePrice li veće od FinalPrice. Vraća -1 ako je istinito, a 0 neistinito.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Quantity polju Byteu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u DateofSale polju Dateu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Discount polju Doubleu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Discount polju Integeru , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Discount polju Longu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Discount polju Singleu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara vrijednosti u Discount polju Stringu , i prikazuje ih u Expr1 stupcu.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Vraća ProductID, pretvara numeričke Discount vrijednosti u Double, a nebrojčane vrijednosti pretvara u String.

Primjeri VBA kodova

Napomena

Sljedeći primjeri pokazuju kako koristiti tu funkciju u modulu jezika Visual Basic for Applications (VBA). Dodatne informacije o radu s VBA kodom potražite u članku Referenca VBA za Access.

CBool

U primjeru CBool se koristi funkcija za pretvaranje izraza u Boolean. Ako izraz sadrži vrijednost koja nije nula, CBool vraća True. U suprotnom vraća 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

U primjeru CByte se koristi funkcija za pretvaranje izraza u Byte.

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

CCur

U primjeru CCur se koristi funkcija za pretvaranje izraza u 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

U ovom se primjeru CDate koristi funkcija za pretvaranje niza u Date. Općenito, ne preporučuje se hardversko kodiranje datuma i vremena kao nizova, kao što je prikazano u ovom primjeru. Umjesto njih koristite slovne datume i vremenske literale, npr #2/12/1969##4:45:23 PM#. i ,

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

U primjeru CDbl se koristi funkcija za pretvaranje izraza u Double.

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

CDec

U primjeru CDec se koristi funkcija za pretvaranje brojčane vrijednosti u Decimal.

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

CInt

U primjeru CInt se koristi funkcija za pretvaranje vrijednosti u Integer.

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

CLng

U primjeru CLng se pomoću funkcije pretvara vrijednost u 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

U primjeru CSng se pomoću funkcije pretvara vrijednost u 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

U primjeru CStr se koristi funkcija za pretvaranje brojčane vrijednosti u String.

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

CVar

U primjeru CVar se koristi funkcija za pretvaranje izraza u Variant.

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