Chaque fonction convertit une expression en un type de données spécifique.
Syntaxe
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
L’argument requis expression est n’importe quelle expression de chaîne ou numérique.
Types de retour
Le nom de la fonction détermine le type de retour, comme indiqué dans le tableau suivant :
| Fonction | Type de retour | Plage de l’argument expression |
|---|---|---|
CBool |
Boolean |
Toute chaîne ou expression numérique valide. |
CByte |
Byte |
0 remplacé par 255. |
CCur |
Currency |
-922,337,203,685,477.5808 remplacé par 922,337,203,685,477.5807. |
CDate |
Date |
Toute expression de date valide. |
CDbl |
Double |
-1.79769313486231E308 à -4.94065645841247E-324 pour les valeurs négatives ; 4.94065645841247E-324 à 1.79769313486232E308 pour les valeurs positives. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 pour des nombres à l’échelle zéro, ou des nombres sans décimales. Pour les nombres avec 28 des décimales, la plage est +/-7.9228162514264337593543950335. Le plus petit nombre différent de zéro possible est 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 à 32,767; les fractions sont arrondies. |
CLng |
Long |
-2,147,483,648 à 2,147,483,647; les fractions sont arrondies. |
CSng |
Single |
-3.402823E38 à -1.401298E-45 pour les valeurs négatives ; 1.401298E-45 à 3.402823E38 pour les valeurs positives. |
CStr |
String |
La valeur de retour dépend de l’argument expression . |
CVar |
Variant |
Même plage que pour les Double valeurs numériques. Même plage que String pour les valeurs non numériques. |
Remarques
Si le expression passé à la fonction se trouve en dehors de la plage du type de données vers lequel vous effectuez la conversion, une erreur se produit.
En général, vous pouvez documenter votre code à l’aide de fonctions de conversion de type de données pour montrer que le résultat d’une opération doit utiliser un type de données particulier au lieu du type par défaut. Par exemple, utilisez CCur pour forcer l’arithmétique monétaire dans les cas où l’arithmétique simple précision, double précision ou entier se produit normalement.
Utilisez les fonctions de conversion de type de données au lieu de Val pour fournir des conversions prenant en charge les paramètres régionaux d’un type de données à un autre. Par exemple, lorsque vous utilisez CCur, Access reconnaît différents séparateurs décimaux, séparateurs de milliers et options de devise en fonction des paramètres régionaux de votre ordinateur.
Lorsque la partie fractionnaire est exactement 0.5, CInt et CLng arrondissez-la toujours au nombre pair le plus proche. Par exemple, 0.5 arrondit à 0et 1.5 arrondit à 2.
CInt et CLng diffèrent des Fix fonctions et Int , qui tronquent la partie fractionnaire d’un nombre au lieu de l’arrondir.
Fix et Int retournent également toujours une valeur du même type que vous transmettez.
Utilisez la IsDate fonction pour déterminer si date peut être converti en date ou heure.
CDate reconnaît les littéraux de date et d’heure, ainsi que certains nombres qui se situent dans la plage des dates acceptables. Lorsque vous convertissez un nombre en date, la partie entière du nombre devient une date. Toute partie fractionnaire devient une heure de la journée qui commence à minuit.
CDate reconnaît les formats de date en fonction de vos paramètres régionaux système. Access peut ne pas déterminer l’ordre correct du jour, du mois et de l’année si vous fournissez un format différent de l’un des paramètres de date reconnus. En outre, il ne reconnaît pas un format de date longue s’il contient également la chaîne jour de la semaine.
La CVDate fonction est également disponible pour la compatibilité avec les versions antérieures de Visual Basic. La syntaxe de CVDate est identique à la CDate fonction . Toutefois, CVDate retourne un Variant dont le sous-type est Date au lieu d’un type réel Date . Étant donné qu’Access inclut désormais un type intrinsèque Date , vous n’avez plus besoin de CVDate. Vous pouvez obtenir le même effet en convertissant une expression en , Date puis en l’affectant à un Variant. Cette technique est cohérente avec la conversion d’autres types intrinsèques en leurs sous-types équivalents Variant .
Remarque
La CDec fonction ne retourne pas de type de données discret. Au lieu de cela, il retourne toujours un Variant dont la valeur a été convertie en sous-type Decimal .
Exemples de requêtes
| Expression | Résultats |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Retourne SalePrice et FinalPrice, et évalue si SalePrice est supérieur à FinalPrice. Retourne -1 si la valeur est true et 0 si elle est false. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Quantity champ Byteen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du DateofSale champ Dateen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Discount champ Doubleen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Discount champ Integeren et les affiche dans la Expr1 colonne . |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Discount champ Longen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Discount champ Singleen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs du Discount champ Stringen et les affiche dans la Expr1 colonne . |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Retourne ProductID, convertit les valeurs numériques Discount en Doubleet convertit les valeurs non numériques en String. |
Exemples VBA
Remarque
Les exemples suivants montrent comment utiliser cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, consultez la référence VBA Access.
CBool, fonction
Cet exemple utilise la CBool fonction pour convertir une expression en Boolean. Si l’expression prend une valeur différente de zéro, CBool retourne True; sinon, elle retourne 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.
Fonction CByte
Cet exemple utilise la CByte fonction pour convertir une expression en Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
CCur, fonction
Cet exemple utilise la CCur fonction pour convertir une expression 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).
CDate, fonction
Cet exemple utilise la CDate fonction pour convertir une chaîne en Date. En règle générale, il n’est pas recommandé de coder en dur les dates et heures sous forme de chaînes, comme illustré dans cet exemple. Utilisez à la place des littéraux de date et d’heure, tels que #2/12/1969# et #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, fonction
Cet exemple utilise la CDbl fonction pour convertir une expression en Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec, fonction
Cet exemple utilise la CDec fonction pour convertir une valeur numérique en Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
CInt, fonction
Cet exemple utilise la CInt fonction pour convertir une valeur en Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
CLng, fonction
Cet exemple utilise la CLng fonction pour convertir une valeur en 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, fonction
Cet exemple utilise la CSng fonction pour convertir une valeur en 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, fonction
Cet exemple utilise la CStr fonction pour convertir une valeur numérique en String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
CVar, fonction
Cet exemple utilise la CVar fonction pour convertir une expression en Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.