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 necessario expression è una stringa o un'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 valori negativi; 4.94065645841247E-324 a 1.79769313486232E308 per valori positivi.
CDec Decimal +/-79,228,162,514,264,337,593,543,950,335 per i numeri in scala zero o per i numeri senza posizioni decimali. Per i numeri con 28 posizioni decimali, l'intervallo è +/-7.9228162514264337593543950335. Il numero diverso da zero più piccolo possibile è 0.0000000000000000000000000001.
CInt Integer -32,768 a 32,767; le frazioni sono arrotondate.
CLng Long -2,147,483,648 a 2,147,483,647; le frazioni sono arrotondate.
CSng Single -3.402823E38 A -1.401298E-45 per valori negativi; 1.401298E-45 a 3.402823E38 per 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 passaggio alla funzione non rientra nell'intervallo del tipo di dati in cui si sta eseguendo la conversione, si verifica un errore.

In generale, è possibile documentare il codice usando funzioni di conversione dei tipi di dati per mostrare che il risultato di un'operazione deve usare un determinato tipo di dati anziché il tipo predefinito. Ad esempio, da usare CCur per forzare l'aritmetica della valuta nei casi in cui normalmente si verifica l'aritmetica a precisione singola, doppia precisione o interi.

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

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

Usare la IsDate funzione per determinare se date può essere convertito in una data o ora. CDate Riconosce i valori letterali data e ora, nonché alcuni numeri compresi nell'intervallo di date accettabili. Quando si converte un numero in una data, l'intera parte del numero diventa una data. Qualsiasi parte frazionaria diventa un'ora del giorno che inizia a mezzanotte.

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

La CVDate funzione è disponibile anche per la compatibilità con le versioni precedenti di Visual Basic. La sintassi di CVDate è identica alla CDate funzione. Tuttavia, CVDate restituisce un Variant il cui sottotipo è Date invece di 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 a Date e assegnandola a .Variant Questa tecnica è coerente con la conversione di altri tipi intrinseci nei loro sottotipi equivalenti Variant .

Nota

La CDec funzione non restituisce un tipo di dati discreto. Al contrario, restituisce sempre un Variant 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 FinalPrice, e 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 in Bytee li visualizza nella Expr1 colonna.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel DateofSale campo in Datee li visualizza nella Expr1 colonna.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel Discount campo in Doublee li visualizza nella Expr1 colonna.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel Discount campo in Integere li visualizza nella Expr1 colonna.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel Discount campo in Longe li visualizza nella Expr1 colonna.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel Discount campo in Singlee li visualizza nella Expr1 colonna.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori nel Discount campo in Stringe li visualizza nella Expr1 colonna.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; restituisce ProductID, converte i valori numerici Discount in Double. e converte i valori non numerici in String.

Esempi di VBA

Nota

Gli esempi seguenti mostrano come utilizzare questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, vedere le informazioni di riferimento su VBA di Access.

CBool

In questo esempio viene utilizzata 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.

BIT.CByte

In questo esempio viene utilizzata 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.

Funzione CCur

In questo esempio viene utilizzata 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).

DATA.CDato

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

DB.BL

In questo esempio viene utilizzata 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)

Funzione CDec

In questo esempio viene utilizzata 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.

Funzione CInt

In questo esempio viene utilizzata la CInt funzione per convertire un valore in un Integervalore .

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

Funzione CLng

In questo esempio viene utilizzata 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.

Funzione CSng

In questo esempio viene utilizzata 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.

Funzione CStr

In questo esempio viene utilizzata 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".

Funzione CVar

In questo esempio viene utilizzata 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.