Ogni funzione forza per un'espressione l'uso di un tipo di dati specifico.
Sintassi
CBool( espressione )
CByte( espressione )
CCur( espressione )
CDate( espressione )
CDbl( espressione )
CDec( espressione )
CInt( espressione )
CLng( espressione )
CSng( espressione )
CStr( espressione )
CVar( espressione )
L'argomentoespressione obbligatorio è qualsiasi espressione stringa o espressione numerica.
Tipi restituiti
Il nome della funzione determina il tipo restituito, come mostrato nella tabella seguente:
Funzione |
Tipo restituito |
Intervallo valido per l'argomento espressione |
---|---|---|
CBool |
Boolean |
Qualsiasi espressione stringa o numerica valida. |
CByte |
Byte |
Da 0 a 255. |
CCur |
Currency |
Da -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; Da 4,94065645841247E-324 a 1,79769313486232E308 per i valori positivi. |
CDec |
Decimal |
+/-79.228.162.514.264.337.593.543.950.335 per numeri con fattore di divisione zero, ovvero senza posizioni decimali. Per i numeri con 28 posizioni decimali, l'intervallo è +/-7.9228162514264337593543950335. Il valore minimo possibile diverso da zero è 0,0000000000000000000000000001. |
CInt |
Integer |
Da -32.768 a 32.767. Le frazioni vengono arrotondate. |
CLng |
Long |
Da -2.147.483.648 a 2.147.483.647. Le frazioni vengono arrotondate. |
CSng |
Single |
Da -3,402823E38 a -1,401298E-45 per numeri negativi. Da 1,401298E-45 a 3,402823E38 per numeri positivi. |
CStr |
String |
I valori restituiti per la funzione CStr dipendono dall'argomento espressione. |
CVar |
Variant |
Stesso intervallo del tipo Double per i valori numerici. Stesso intervallo del tipo String per i valori non numerici. |
Osservazioni
Se l'argomento espressione passato alla funzione non è compreso nell'intervallo del tipo di dati in cui si esegue la conversione, si verificherà un errore.
In generale, è possibile documentare il codice usando le funzioni di conversione tra tipi di dati per indicare che il risultato di alcune operazioni deve essere espresso come un determinato tipo di dati invece del tipo di dati predefinito. Ad esempio, usare la funzione CCur per forzare il calcolo di valori di valuta nei casi in cui verrebbe normalmente usato il calcolo a precisione singola, a precisione doppia o di numeri interi.
Usare le funzioni di conversione tra tipi di dati invece di Val per specificare conversioni internazionali da un tipo di dati a un altro. Ad esempio, quando si usa CCur, vengono riconosciuti correttamente separatori decimali diversi, separatori delle migliaia diversi e varie opzioni di valuta in base alle impostazioni internazionali del computer in uso.
Quando la parte frazionaria è esattamente 0,5, CInt e CLng la arrotondano sempre al numero pari più vicino. Ad esempio, 0,5 viene arrotondato a 0, mentre 1,5 viene arrotondato a 2. CInt e CLng differiscono dalle funzioni Fix e Int, che troncano, invece di arrotondare, la parte frazionaria di un numero. Inoltre, Fix e Int restituiscono sempre un valore dello stesso tipo di quello passato.
Usare la funzione IsDate per determinare se data può essere convertito in una data o un'ora. CDate riconosce i valori letterali di data e i valori letterali di ora inclusi nell'intervallo delle date accettabili. Quando un numero viene convertito in data, viene convertita in data la parte intera del numero. Qualsiasi parte frazionaria del numero viene convertita in ora del giorno, iniziando dalla mezzanotte.
CDate riconosce i formati di data in base alle impostazioni locali del sistema. È possibile che l'ordine corretto di giorno, mese e anno non venga determinato se è specificato in un formato diverso da quello delle impostazioni di data riconosciute. Inoltre, un formato di data estesa non viene riconosciuto se contiene anche la stringa del giorno della settimana.
È anche disponibile una funzione CVDate per la compatibilità con le versioni precedenti di Visual Basic. La sintassi della funzione CVDate è identica a quella della funzione CDate, ma CVDate restituisce un tipo di dati Variant il cui sottotipo è Date invece di un effettivo tipo Date. Poiché è ora disponibile un tipo Date intrinseco, la funzione CVDate non è più necessaria. Lo stesso effetto può essere ottenuto convertendo un'espressione nel tipo di dati Date e assegnandola a un tipo di dati Variant. Questa tecnica è coerente con la conversione di tutti gli altri tipi intrinseci nei rispettivi sottotipi Variant equivalenti.
Nota: La funzione CDec non restituisce un tipo di dati discreto. Al contrario, restituisce sempre un tipo di dati Variant il cui valore è stato convertito in un sottotipo Decimal.
Esempi di query
Espressione |
Risultati |
---|---|
SELECT PrezzoVendite,PrezzoPrezzo Finale,CBool(PrezzoVendite>Prezzo Finale) AS Espr1 FROM prodottoVendite; |
Restituisce "PrezzoVendita", "PrezzoPrezzo Finale" e valuta se PrezzoVendita è maggiore di Prezzo finale. Restituisce "-1" se true e "0" se false. |
SELECT PRODUCTID, CByte(Quantity) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Quantità" in formato byte e visualizza nella colonna Espr1 Restituisce "IDProdotto", converte i valori del campo "Quantità" in formato Valuta e visualizza nella colonna Espr1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "DateofSale" in formato Data e visualizza nella colonna Espr1. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Discount" in formato Double e visualizza nella colonna Espr1. |
SELECT PRODUCTID, CInt(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Discount" in formato Integer e viene visualizzato nella colonna Espr1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Discount" in formato Long e viene visualizzato nella colonna Espr1. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Sconto" in formato Singolo e visualizza nella colonna Espr1. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Discount" in formato Stringa e viene visualizzato nella colonna Espr1. |
SELECT PRODUCTID, CVar(Discount) AS Expr1 FROM productSales; |
Restituisce "IDProdotto", converte i valori del campo "Discount" in Double per i valori numerici e String per i valori non numerici. |
Esempi di VBA
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, vedere Riferimenti a VBA per Access.
Funzione CBool
Questo esempio usa la funzione CBool per convertire un'espressione in un valore di tipo 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.
Funzione CByte
Questo esempio usa la funzione CByte per convertire un'espressione in un valore di tipo Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Funzione CCur
Questo esempio usa la funzione CCur per convertire un'espressione in un valore di tipo 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).
Funzione CDate
Questo esempio usa la funzione CDate per convertire una stringa in un valore di tipo Date. In generale, non è consigliabile specificare date e ore a livello di codice come stringhe (come mostrato in questo seguente). Usare invece valori letterali di data e di ora, come #2/12/1969# e #4:45:23#.
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)
Funzione CDbl
Questo esempio usa la funzione CDbl per convertire un'espressione in un valore di tipo Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Funzione CDec
Questo esempio usa la funzione CDec per convertire un valore numerico in un valore di tipo Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Funzione CInt
Questo esempio usa la funzione CInt per convertire un valore in un valore di tipo Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Funzione CLng
Questo esempio usa la funzione CLng per convertire un valore in un valore di tipo 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
Questo esempio usa la funzione CSng per convertire un valore in un valore di tipo 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
Questo esempio usa la funzione CStr per convertire un valore numerico in un valore di tipo String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Funzione CVar
Questo esempio usa la funzione CVar per convertire un'espressione in un valore di tipo Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.