Typekonverteringsfunktioner

Gælder for
Access til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Hver funktion konverterer et udtryk til en bestemt datatype.

Syntaks

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

Det påkrævede expression argument er en streng eller et numerisk udtryk.

Returtyper

Funktionsnavnet bestemmer returtypen, sådan som det er vist i følgende tabel:

Funktion Returtype Område for expression argument
CBool Boolean En gyldig streng eller et numerisk udtryk.
CByte Byte 0 til 255.
CCur Currency -922,337,203,685,477.5808 til 922,337,203,685,477.5807.
CDate Date Et gyldigt datoudtryk.
CDbl Double -1.79769313486231E308 til -4.94065645841247E-324 for negative værdier; 4.94065645841247E-324 til 1.79769313486232E308 for positive værdier.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 for nulskalerede tal eller tal uden decimalpladser. For tal med 28 decimalpladser er +/-7.9228162514264337593543950335området . Det mindste mulige tal, der ikke er nul, er 0.0000000000000000000000000001.
CInt Integer -32,768 til 32,767; brøker afrundes.
CLng Long -2,147,483,648 til 2,147,483,647; brøker afrundes.
CSng Single -3.402823E38 til -1.401298E-45 for negative værdier; 1.401298E-45 til 3.402823E38 for positive værdier.
CStr String Returværdien afhænger af argumentet expression .
CVar Variant Samme område som Double for numeriske værdier. Samme område som String for ikke-numeriske værdier.

Bemærkninger

Hvis videregivelsen expression til funktionen er uden for området for den datatype, du konverterer til, opstår der en fejl.

Generelt kan du dokumentere din kode ved at bruge funktioner til konvertering af datatype for at vise, at resultatet af en handling skal bruge en bestemt datatype i stedet for standardtypen. Brug CCur f.eks. til at gennemtvinge valutaaritmetik i tilfælde, hvor enkeltpræcision, dobbeltpræcision eller heltalsaritmetik normalt forekommer.

Brug funktionerne til konvertering af datatype i stedet for Val at levere konverteringer, der tager højde for landestandard, fra én datatype til en anden. Når du f.eks. bruger CCur, genkender Access forskellige decimalseparatorer, tusindtalsseparatorer og valutaindstillinger baseret på computerens indstilling for landestandard.

Når brøkdelen er nøjagtigt 0.5, CInt og CLng afrunder den altid til det nærmeste lige tal. Afrunder f.eks. 0.5 til , og 1.5 afrunder til 20. CInt og CLng adskiller sig fra funktionerne Fix OG Int , som afkorter et tals brøkdel i stedet for at afrunde det. Fix og Int returnerer også altid en værdi af samme type, som du videregiver.

Brug IsDate funktionen til at bestemme, om date den kan konverteres til en dato eller et klokkeslæt. CDate Genkender datokonstanter og klokkeslætskonstanter samt nogle tal, der falder inden for området af gyldige datoer. Når du konverterer et tal til en dato, bliver hele taldelen til en dato. Enhver brøkdel bliver et tidspunkt på dagen, der starter ved midnat.

CDate Genkender datoformater i henhold til systemets indstilling for landestandard. Den rigtige rækkefølge for dag, måned og år kan muligvis ikke fastsættes, hvis du angiver et andet format end et af de genkendte datoindstillinger. Desuden genkender programmet ikke et langt datoformat, hvis det også indeholder strengen for dag i ugen.

Funktionen CVDate er også tilgængelig for kompatibilitet med tidligere versioner af Visual Basic. Syntaksen for CVDate er identisk med funktionen CDate . Returnerer dog enVariant, CVDate hvis undertype er Date i stedet for en faktisk Date type. Da Access nu indeholder en indbygget Date type, har du ikke længere brug for CVDate. Du kan opnå den samme effekt ved at konvertere et udtryk til et Date og derefter tildele det til et Variant. Denne teknik er i overensstemmelse med konverteringen af andre iboende typer til deres tilsvarende Variant undertyper.

Bemærk

Funktionen CDec returnerer ikke en dedikeret datatype. I stedet returneres altid en Variant , hvis værdi er blevet konverteret til en Decimal undertype.

Eksempler på forespørgsel

Udtryk Resultater
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Returnerer SalePrice og FinalPrice, og evaluerer, om SalePrice er større end FinalPrice. Returnerer -1 , hvis det er sandt, og 0 hvis det er falsk.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Quantity feltet til Byte, og viser dem i Expr1 kolonnen.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i DateofSale feltet til Date, og viser dem i Expr1 kolonnen.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Discount feltet til Double, og viser dem i Expr1 kolonnen.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Discount feltet til Integer, og viser dem i Expr1 kolonnen.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Discount feltet til Long, og viser dem i Expr1 kolonnen.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Discount feltet til Single, og viser dem i Expr1 kolonnen.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer værdierne i Discount feltet til String, og viser dem i Expr1 kolonnen.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Returnerer ProductID, konverterer numeriske Discount værdier til Doubleog konverterer ikke-numeriske værdier til String.

VBA-eksempler

Bemærk

Følgende eksempler viser, hvordan du bruger denne funktion i et VBA-modul (Visual Basic for Applications). Du kan finde flere oplysninger om at arbejde med VBA i Access VBA-referencen.

Funktionen CBool

I dette eksempel bruges CBool funktionen til at konvertere et udtryk til et Boolean. Hvis udtrykket evalueres til en værdi, der er forskellig fra nul, CBool returneres True, ellers returneres 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.

Funktionen CByte

I dette eksempel bruges CByte funktionen til at konvertere et udtryk til et Byte.

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

CCur, funktionen

I dette eksempel bruges CCur funktionen til at konvertere et udtryk til et 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).

Funktionen CDate

I dette eksempel bruges CDate funktionen til at konvertere en streng til en Date. Generelt anbefales hård kodning af datoer og klokkeslæt som strenge, som vist i dette eksempel, ikke. Brug datokonstanter og klokkeslætskonstanter, f.eks #2/12/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)

Funktionen CDbl

I dette eksempel bruges CDbl funktionen til at konvertere et udtryk til et Double.

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

Funktionen CDec

I dette eksempel bruges funktionen CDec til at konvertere en numerisk værdi til et Decimal.

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

Funktionen CInt

I dette eksempel bruges CInt funktionen til at konvertere en værdi til et Integer.

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

Funktionen CLng

I dette eksempel bruges CLng funktionen til at konvertere en værdi til en 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.

Funktionen CSng

I dette eksempel bruges CSng funktionen til at konvertere en værdi til en 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.

Funktionen CStr

I dette eksempel bruges funktionen CStr til at konvertere en numerisk værdi til et String.

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

Funktionen CVar

I dette eksempel bruges CVar funktionen til at konvertere et udtryk til et Variant.

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