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 viss 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 nollskalade tal eller tal utan decimaler. För tal med 28 decimaler är +/-7.9228162514264337593543950335området . Det minsta möjliga talet som inte är noll är 0.0000000000000000000000000001.
CInt Integer -32,768 till 32,767; bråktal avrundas.
CLng Long -2,147,483,648 till 2,147,483,647; bråktal 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å expression argumentet.
CVar Variant Samma intervall som Double för numeriska värden. Samma intervall som String för icke-numeriska värden.

Kommentarer

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

I allmänhet kan du dokumentera koden genom att använda datatypskonverteringsfunktioner för att visa att resultatet av en åtgärd bör använda en viss datatyp i stället för standardtypen. Använd till exempel CCur för att tvinga fram valutaaritmetik i fall där aritmetik med enkel precision, dubbel precision eller heltal normalt skulle inträffa.

Använd konverteringsfunktionerna för datatyper i stället för Val att tillhandahålla språkberoende konverteringar från en datatyp till en annan. När du till exempel använder CCurkänner Access igen olika decimalavgränsare, tusenavgränsare och valutaalternativ baserat på datorns nationella inställning.

När decimaldelen är exakt 0.5CInt och CLng alltid avrundar den till närmaste jämna tal. Avrundar till exempel 0.5 till 0och 1.5 avrundar till 2. 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 returnerar också alltid ett värde av samma typ som du skickar in.

IsDate Använd funktionen för att avgöra om date kan konverteras till ett datum eller en tid. CDate känner igen datumformat och tidsformat samt vissa tal som faller inom intervallet för acceptabla datum. När du konverterar ett tal till ett datum blir hela taldelen ett datum. En del av bråket blir en tid på dagen som börjar vid midnatt.

CDate känner igen datumformat enligt systemspråkinställningen. Access kanske inte fastställer rätt ordning på dag, månad och år om du anger ett annat format än någon av de identifierade datuminställningarna. Dessutom känner den inte igen ett långt datumformat om det också innehåller veckodagssträngen.

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

Obs

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

Frågeexempel

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

VBA-exempel

Obs

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

Funktionen KonvBool

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

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

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

Funktionen KonvVal

I det CCur här exemplet används funktionen för att konvertera ett uttryck till en 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 CDate här exemplet används funktionen för att konvertera en sträng till en Date. I allmänhet rekommenderas inte hårdkodning av datum och tider som strängar, som visas i det här exemplet. Använd datumformat och tidsformat, till exempel #2/12/1969# och #4:45:23 PM#i stället.

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 CDbl här exemplet används funktionen för att konvertera ett uttryck till en Double.

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

Funktionen CDec

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

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

Funktionen KonvInt

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

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

Funktionen KonvLng

I det CLng här exemplet används funktionen för att konvertera ett värde till ett 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 det CSng här exemplet används funktionen för att konvertera ett värde till ett 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 CStr här exemplet används funktionen för att konvertera ett numeriskt värde till ett String.

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

Funktionen KonvVar

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

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