Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Chaque fonction force une expression à 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’expression requiseargument est toute expression de chaîne ou expression numérique.

Types de retour

Le nom de la fonction détermine le type de retour comme indiqué dans la section suivante :

Fonction

Type de retour

Plage pour l’argument d’expression

CBool

Booléen

Toute chaîne ou expression numérique valide.

CByte

Byte (Octet)

0 à 255.

CCur

Devise

-922 337 203 685 477,5808 à 922 337 203 685 477,5807.

CDate

Date

Toute expression de date valide.

CDbl

Réel double

-1,79769313486231E308 à -4,94065645841247E-324 pour les valeurs négatives ; 4.94065645841247E-324 à 1.79769313486232E308 pour les valeurs positives.

CDec

Décimal

+/-79 228 162 514 264 337 593 543 950 335 pour les nombres sans décimales. Pour les nombres avec 28 décimales, la plage est +/-7.9228162514264337593543950335. Le numéro autre que zéro le plus bas autorisé est 0,0000000000000000000000000001.

CInt

Entier

-32 768 à 32 767 ; fractions sont arrondies.

CLng

Long

-2 147 483 648 à 2 147 483 647 ; fractions sont arrondies.

CSng

Réel simple

-3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1.401298E-45 à 3.402823E38 pour les valeurs positives.

CStr

String

Les retours pour CStr dépendent de l’argument expression .

CVar

Variant

Même plage que pour Double en ce qui concerne les expressions numériques. Même plage que pour Chaîne pour les expressions non numériques.

Notes

Si l’expression transmise à la fonction se trouve en dehors de la plage du type de données en cours de conversion, une erreur se produit.

En général, vous pouvez documenter votre code à l’aide des fonctions de conversion de type de données pour montrer que le résultat d’une opération doit être exprimé sous la forme d’un type de données particulier plutôt que sous la forme du type de données 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.

Vous devez utiliser les fonctions de conversion de type de données au lieu de Val pour fournir des conversions internationales d’un type de données à un autre. Par exemple, lorsque vous utilisez CCur, différents séparateurs décimaux, différents séparateurs de milliers et différentes options de devise sont correctement reconnus en fonction des paramètres régionaux de votre ordinateur.

Lorsque la partie fractionnaire est exactement 0,5, CInt et CLng l’arrondit toujours au nombre pair le plus proche. Par exemple, 0,5 arrondit à 0 et 1,5 arrondit à 2. CInt et CLng diffèrent des fonctions Fix et Int , qui tronquent, au lieu d’arrondir, la partie fractionnaire d’un nombre. En outre, Fix et Int retournent toujours une valeur du même type que celle transmise.

Utilisez la fonction IsDate pour déterminer si la date peut être convertie en date ou heure. CDate reconnaît les littéraux de date et d’heure, ainsi que certains nombres qui entrent dans la plage des dates acceptables. Lors de la conversion d’un nombre en date, la partie entière du nombre est convertie en date. Toute partie fractionnaire du nombre est convertie en une heure de la journée, à partir de minuit.

CDate reconnaît les formats de date en fonction du paramètre paramètres régionaux de votre système. L’ordre correct du jour, du mois et de l’année peut ne pas être déterminé s’il est fourni dans un format autre que l’un des paramètres de date reconnus. En outre, un format de date longue n’est pas reconnu s’il contient également la chaîne jour de la semaine.

Une fonction CVDate est également fournie pour assurer la compatibilité avec les versions précédentes de Visual Basic. La syntaxe de la fonction CVDate est identique à la fonction CDate . Toutefois, CVDate renvoie un Variant dont le sous-type est Date au lieu d’un type Date réel. Étant donné qu’il existe désormais un type Date intrinsèque, il n’est plus nécessaire d’utiliser CVDate. Le même effet peut être obtenu en convertissant une expression en date, puis en l’affectant à un variant. Cette technique est cohérente avec la conversion de tous les autres types intrinsèques en leurs sous-types Variant équivalents.

Remarque : La fonction CDec ne retourne pas de type de données discret ; au lieu de cela, elle 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 ;

Renvoie « SalePrice », « FinalPrice » et évalue si SalePrice est supérieur au prix final. Retourne « -1 » si true et « 0 » si false.

SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales ;

Renvoie « ProductID », convertit les valeurs du champ « Quantité » au format octets et affiche dans la colonne Expr1 Retourne « ProductID », convertit les valeurs du champ « Quantité » au format Monétaire et affiche dans la colonne Expr1.

SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales ;

Renvoie « ProductID », convertit les valeurs du champ « DateofSale » au format Date et s’affiche dans la colonne Expr1.

SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » au format Double et s’affiche dans la colonne Expr1.

SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » au format Entier et s’affiche dans la colonne Expr1.

SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » au format long et s’affiche dans la colonne Expr1.

SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » en format unique et s’affiche dans la colonne Expr1.

SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » au format Chaîne et s’affiche dans la colonne Expr1.

SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales ;

Retourne « ProductID », convertit les valeurs du champ « Discount » en Double pour les valeurs numériques et Chaîne pour les valeurs non numériques.

Exemples VBA

Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, consultez Référence VBA Access.

CBool, fonction

Cet exemple utilise la fonction CBool pour convertir une expression en booléen. 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.

CByte, fonction

Cet exemple utilise la fonction CByte pour convertir une expression en octet.

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

CCur, fonction

Cet exemple utilise la fonction CCur pour convertir une expression en devise.

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 fonction CDate 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 indiqué dans cet exemple). Utilisez plutôt 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 fonction CDbl 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 fonction CDec pour convertir une valeur numérique en décimal.

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

CInt, fonction

Cet exemple utilise la fonction CInt 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 fonction CLng 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 fonction CSng 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 fonction CStr pour convertir une valeur numérique en chaîne.

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

CVar, fonction

Cet exemple utilise la fonction CVar pour convertir une expression en variant.

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

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.