Funzioni di conversione tra tipi

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ogni funzione converte un'espressione in un tipo di dati specifico.

Sintassi

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

L'argomento obbligatorio expression è qualsiasi stringa o espressione numerica.

Tipi restituiti

Il nome della funzione determina il tipo restituito, come illustrato nella tabella seguente:

Funzione Tipo restituito Intervallo per expression argomento
CBool Boolean Qualsiasi espressione numerica o stringa valida.
CByte Byte 0 a 255.
CCur Currency -922,337,203,685,477.5808 a 922,337,203,685,477.5807.
CDate Date Qualsiasi espressione data valida.
CDbl Double -1.79769313486231E308 a -4.94065645841247E-324 per i valori negativi, 4.94065645841247E-324 a per i 1.79769313486232E308 valori positivi.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 per i numeri con scala zero o per i numeri senza posizioni decimali. Per i numeri con 28 posizioni decimali, l'intervallo è +/-7.9228162514264337593543950335. Il numero più piccolo possibile diverso da zero è 0.0000000000000000000000000001.
CInt Integer -32,768 a 32,767. Le frazioni vengono arrotondate.
CLng Long -2,147,483,648 a 2,147,483,647. Le frazioni vengono arrotondate.
CSng Single -3.402823E38 a -1.401298E-45 per i valori negativi, 1.401298E-45 a per i 3.402823E38 valori positivi.
CStr String Il valore restituito dipende dall'argomento expression .
CVar Variant Stesso intervallo dei Double valori numerici. Stesso intervallo dei String valori non numerici.

Osservazioni

Se il expression passato alla funzione non rientra nell'intervallo del tipo di dati in cui si sta convertendo, si verifica un errore.

In generale, è possibile documentare il codice usando le funzioni di conversione dei tipi di dati per indicare che il risultato di un'operazione deve usare un tipo di dati specifico invece del tipo predefinito. Ad esempio, usare CCur per forzare l'aritmetica valuta nei casi in cui normalmente si verificherebbe un'aritmetica a precisione singola, a precisione doppia o a numeri interi.

Usare le funzioni di conversione dei tipi di dati invece di Val fornire conversioni con riconoscimento delle impostazioni locali da un tipo di dati a un altro. Ad esempio, quando si usa CCur, Access riconosce separatori decimali, separatori delle migliaia e opzioni di valuta diversi in base alle impostazioni locali del computer.

Quando la parte frazionaria è esattamente 0.5e CLngCInt la arrotonda sempre al numero pari più vicino. Ad esempio, 0.5 arrotonda a 0e 1.5 arrotonda a 2. CInt e CLng differiscono dalle Fix funzioni e Int , che troncano la parte frazionaria di un numero invece di arrotondare il numero. Fix e Int restituisce sempre un valore dello stesso tipo passato.

Usare la IsDate funzione per determinare se date è possibile convertirla in data o ora. CDate riconosce i valori letterali di data e i valori letterali di ora, nonché alcuni numeri che rientrano nell'intervallo di date accettabili. Quando si converte un numero in una data, la parte relativa al numero intero diventa una data. Qualsiasi parte frazionaria diventa un'ora del giorno che inizia a mezzanotte.

CDate riconosce i formati di data in base alle impostazioni locali del sistema. Access potrebbe non determinare l'ordine corretto di giorno, mese e anno se si specifica un formato diverso da una delle impostazioni di data riconosciute. Inoltre, non riconosce un formato data lungo se contiene anche la stringa del giorno della settimana.

La CVDate funzione è disponibile anche per garantire la compatibilità con le versioni precedenti di Visual Basic. La sintassi di CVDate è identica alla CDate funzione. Tuttavia, CVDate restituisce un Variant sottotipo Date anziché un tipo effettivo Date . Poiché Access include ora un tipo intrinseco Date , non è più necessario CVDate. È possibile ottenere lo stesso effetto convertendo un'espressione in un Date e quindi assegnandola a .Variant Questa tecnica è coerente con la conversione di altri tipi intrinseci nei sottotipi equivalenti Variant .

Nota

La CDec funzione non restituisce un tipo di dati discreto. Restituisce sempre un Variant valore il cui valore è stato convertito in un Decimal sottotipo.

Esempi di query

Espressione Risultati
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Restituisce SalePrice e FinalPricee valuta se SalePrice è maggiore di FinalPrice. Restituisce -1 se è vero e 0 se è falso.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Quantity campo Bytein e li visualizza nella Expr1 colonna.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel DateofSale campo Datein e li visualizza nella Expr1 colonna.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Discount campo Doublein e li visualizza nella Expr1 colonna.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Discount campo Integerin e li visualizza nella Expr1 colonna.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Discount campo Longin e li visualizza nella Expr1 colonna.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Discount campo Singlein e li visualizza nella Expr1 colonna.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori nel Discount campo Stringin e li visualizza nella Expr1 colonna.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Restituisce ProductID, converte i valori numerici Discount in Doublee converte i valori non numerici in String.

Esempi di VBA

Nota

Gli esempi seguenti illustrano come usare questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, vedere riferimento a VBA per Access.

CBool

Questo esempio usa la CBool funzione per convertire un'espressione in .Boolean Se l'espressione restituisce un valore diverso da zero, CBool restituisce True; in caso contrario, restituisce 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 (funzione)

Questo esempio usa la CByte funzione per convertire un'espressione in .Byte

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

CCur (funzione CCur)

Questo esempio usa la CCur funzione per convertire un'espressione in .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 (funzione)

Questo esempio usa la CDate funzione per convertire una stringa in .Date In generale, non è consigliabile codificare le date e le ore come stringhe, come illustrato in questo esempio. Usare invece valori letterali di data e di ora, ad #2/12/1969# esempio e #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)

CDbl (funzione CDbl)

Questo esempio usa la CDbl funzione per convertire un'espressione in .Double

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

CDec (funzione CDec)

Questo esempio usa la CDec funzione per convertire un valore numerico in .Decimal

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

CInt (funzione CInt)

Questo esempio usa la CInt funzione per convertire un valore in .Integer

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

CLng (funzione CLng)

Questo esempio usa la CLng funzione per convertire un valore in .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 (funzione CSng)

Questo esempio usa la CSng funzione per convertire un valore in .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 (funzione CStr)

Questo esempio usa la CStr funzione per convertire un valore numerico in .String

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

CVar

Questo esempio usa la CVar funzione per convertire un'espressione in .Variant

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