Fonctions de conversion de types de données

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.