Typkonverteringsfunktioner

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Varje funktion konverterar ett uttryck till en specifik datatyp.

Syntax

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

Det obligatoriska expression argumentet är en sträng eller ett numeriskt uttryck.

Returtyper

Funktionsnamnet bestämmer returtypen, som visas i följande tabell:

Funktion Returtyp Intervall för expression argument
CBool Boolean En giltig sträng eller ett giltigt numeriskt uttryck.
CByte Byte 0 till 255.
CCur Currency -922,337,203,685,477.5808 till 922,337,203,685,477.5807.
CDate Date Ett giltigt datumuttryck.
CDbl Double -1.79769313486231E308 till -4.94065645841247E-324 för negativa värden; 4.94065645841247E-324 till 1.79769313486232E308 för positiva värden.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 för tal med nollskala eller tal utan decimaler. För tal med 28 decimaler är +/-7.9228162514264337593543950335intervallet . Det minsta möjliga talet som inte är noll är 0.0000000000000000000000000001.
CInt Integer -32,768 till 32,767; decimaler avrundas.
CLng Long -2,147,483,648 till 2,147,483,647; decimaler avrundas.
CSng Single -3.402823E38 till -1.401298E-45 för negativa värden; 1.401298E-45 till 3.402823E38 för positiva värden.
CStr String Returvärdet beror på argumentet expression .
CVar Variant Samma intervall som Double för numeriska värden. Samma intervall som String för ickenumeriska värden.

Kommentarer

Om det expression som skickas till funktionen ligger utanför intervallet för den datatyp som du konverterar till uppstår ett fel.

I allmänhet kan du dokumentera din kod genom att använda funktioner för konvertering av datatyper för att visa att resultatet av en åtgärd ska använda en viss datatyp i stället för standardtypen. Kan till exempel användas CCur för att påtvinga valutaberäkningar i fall där det normalt skulle användas beräkningar med enkel precision, dubbel precision eller heltal.

Använd konverteringsfunktioner för datatyper i stället för Val att tillhandahålla språkmedvetna konverteringar från en datatyp till en annan. När du till exempel använder CCur, känner Access igen olika decimaltecken, tusentalsavgränsare och valutaalternativ baserat på datorns nationella inställningar.

När decimaldelen är exakt 0.5och CIntCLng alltid avrunda till närmaste jämna tal. Avrundar till exempel 0.5 till , och 1.5 avrundar till 2.0 CInt och CLng skiljer sig från Fix funktionerna OCH Int , som trunkerar decimaldelen av ett tal i stället för att avrunda det. Fix och Int även alltid returnera ett värde av samma typ som du skickar in.

IsDate Använd funktionen för att avgöra om date det kan konverteras till ett datum eller en tid. CDate identifierar datumformat, tidformat och vissa tal som faller inom intervallet för godtagbara datum. När du konverterar ett tal till ett datum blir hela heltalsdelen ett datum. En decimaldel blir en tid på dagen som börjar vid midnatt.

CDate Identifierar datumformat enligt datorns språkinställningar. Access kanske inte bestämmer rätt ordning på dag, månad och år om du anger ett annat format än någon av de korrekta inställningarna för datum. Dessutom känner den inte igen ett långt datumformat om det även innehåller en veckodagssträng.

Funktionen CVDate är också tillgänglig för kompatibilitet med tidigare versioner av Visual Basic. Syntaxen CDate för CVDate är identisk med funktionen. CVDate Returnerar dock en Variant vars undertyp är Date i stället för en faktisk Date typ. Eftersom Access nu innehåller en inbyggd Date datatyp behöver CVDatedu inte längre. Du kan få samma effekt genom att konvertera ett uttryck till a Date och sedan tilldela det till a Variant. Denna teknik är konsekvent med omvandlingen av andra inneboende typer till deras motsvarande Variant undertyper.

Obs

Funktionen CDec returnerar inte en diskret datatyp. I stället returneras alltid ett Variant vars värde har konverterats till en Decimal undertyp.

Exempel på frågor

Uttryck Resultat
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Returnerar SalePrice och FinalPriceoch utvärderar om SalePrice är större än FinalPrice. Returnerar -1 om det är sant och 0 om det är falskt.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Quantity fältet till Byteoch visar dem i kolumnen Expr1 .
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i DateofSale fältet till Dateoch visar dem i kolumnen Expr1 .
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Discount fältet till Doubleoch visar dem i kolumnen Expr1 .
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Discount fältet till Integeroch visar dem i kolumnen Expr1 .
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Discount fältet till Longoch visar dem i kolumnen Expr1 .
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Discount fältet till Singleoch visar dem i kolumnen Expr1 .
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Returnerar ProductID, konverterar värdena i Discount fältet till Stringoch visar dem i kolumnen Expr1 .
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Returnerar ProductID, omvandlar numeriska Discount värden till Doubleoch omvandlar icke-numeriska värden till String.

VBA-exempel

Obs

Följande exempel visar hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Mer information om hur du arbetar med VBA finns i Access VBA-referensen.

Funktionen KonvBool

I det här exemplet används CBool funktionen för att konvertera ett uttryck till a Boolean. Om uttrycket utvärderas till ett annat värde CBool än noll returneras True; annars returneras 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 KonvByte

I det här exemplet används CByte funktionen för att konvertera ett uttryck till a Byte.

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

Funktionen KonvVal

I det här exemplet används CCur funktionen för att konvertera ett uttryck till a 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 KonvDatum

I det här exemplet används CDate funktionen för att konvertera en sträng till a Date. I allmänhet rekommenderas det inte att hårdkoda datum och klockslag som strängar, som i det här exemplet. Använd i stället datum- och tidformat som #2/12/1969# och #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)

Funktionen KonvDbl

I det här exemplet används CDbl funktionen för att konvertera ett uttryck till a Double.

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

Funktionen CDec

I det här exemplet används CDec funktionen för att konvertera ett numeriskt värde till a Decimal.

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

Funktionen KonvHel

I det här exemplet används CInt funktionen för att konvertera ett värde till en Integer.

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

Funktionen KonvLng

I det här exemplet används CLng funktionen för att konvertera ett värde till a 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 KonvEnl

I det här exemplet används CSng funktionen för att konvertera ett värde till a 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 KonvStr

I det här exemplet används CStr funktionen för att konvertera ett numeriskt värde till a String.

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

Funktionen KonvVar

I det här exemplet används CVar funktionen för att konvertera ett uttryck till a Variant.

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