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 obligatoire expression est une chaîne ou une expression numérique.
Types de retour
Le nom de fonction détermine le type de retour, comme indiqué dans le tableau suivant :
| Fonction | Type de retour | Plage pour expression argument |
|---|---|---|
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 to pour les -4.94065645841247E-324 valeurs négatives ; 4.94065645841247E-324 to 1.79769313486232E308 pour les valeurs positives. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 Pour les nombres à l’échelle zéro ou les nombres sans décimale. Pour les nombres comportant des 28 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 to pour les -1.401298E-45 valeurs négatives ; 1.401298E-45 to 3.402823E38 pour les valeurs positives. |
CStr |
String |
La valeur de retour dépend de l’argument expression . |
CVar |
Variant |
Même plage que Double pour les valeurs numériques. Même plage que String pour les valeurs non numériques. |
Remarques
Si le expression passé à la fonction est 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 en utilisant des 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 cette fonction CCur pour forcer l’arithmétique monétaire dans les cas où l’arithmétique à simple précision, double précision ou entière serait normalement appliquée.
Utilisez les fonctions de conversion de type de données plutôt que Val de fournir des conversions tenant compte des 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 à 0, et 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 renvoie toujours une valeur du même type que celle que vous transmettez.
Utilisez la IsDate fonction pour déterminer si date elle peut être convertie en date ou en heure.
CDate Reconnaît les littéraux de date et les littéraux d’heure, ainsi que certains nombres compris dans la plage de dates acceptables. Lorsque vous convertissez un nombre en date, la partie entière du nombre devient une date. Toute partie fractionnée devient une heure de la journée qui commence à minuit.
CDate Reconnaît les formats de date en fonction des paramètres régionaux du 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 autre que 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 du jour de la semaine.
La CVDate fonction est également disponible à des fins de compatibilité avec les versions antérieures de Visual Basic. La syntaxe de CVDate est identique à celle de la CDate fonction. Toutefois, CVDate retourne un Variant sous-type dont le sous-type est Date à la place d’un type réel Date . Access incluant 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 a Date , puis en l’affectant à un Variant. Cette technique est cohérente avec la conversion d’autres types intrinsèques en sous-types équivalents Variant .
Remarque
La CDec fonction ne retourne pas un type de données discret. Au lieu de cela, elle renvoie toujours un Variant dont la valeur a été convertie en Decimal sous-type.
Exemples de requête
| Expression | Résultats |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Renvoie SalePrice et FinalPrice, et évalue si SalePrice est supérieur à FinalPrice. Renvoie -1 si elle est vraie et 0 si elle est fausse. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Quantity champ en Byte, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du DateofSale champ en Date, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Discount champ en Double, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Discount champ en Integer, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Discount champ en Long, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Discount champ en Single, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Renvoie ProductID, convertit les valeurs du Discount champ en String, et les affiche dans la Expr1 colonne. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
renvoie ProductID, convertit des valeurs numériques Discount en Doubleet convertit des 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 Access VBA.
Fonction CBool
Cet exemple utilise la CBool fonction pour convertir une expression en Boolean. Si le résultat de l’expression est une valeur différente de zéro, CBool renvoie True; sinon, renvoie 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.
Fonction CCour
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).
Fonction CDate
Cet exemple utilise la CDate fonction pour convertir une chaîne en Date. En général, il n’est pas recommandé de coder en dur les dates et les heures sous forme de chaînes, comme 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
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
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
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
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
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
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
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.