CLNG |
Conversion en long |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| CLng(expression) |
Paramètres
| Nom | Description |
|---|---|
| expression | Ce paramètre permet d'indiquer l'expression scalaire à traiter. |
Description
Cette fonction permet de convertir un type de données quelconque à un format entier long.
Remarques
- La fonction convertit une expression en entier long (Long Integer) : La fonction CLng transforme une expression compatible en une valeur de type Long. Ce type de données permet de représenter des nombres entiers beaucoup plus grands que le type Integer. Elle est particulièrement utile lorsque les calculs impliquent des valeurs importantes ou des identifiants numériques de grande taille.
- Le type Long offre une plage de valeurs beaucoup plus étendue que Integer : Un type Long peut contenir des valeurs comprises entre -2 147 483 648 et 2 147 483 647. Cette capacité est largement supérieure à celle du type Integer, limité à -32 768 à 32 767. Pour cette raison, CLng est souvent privilégiée lorsque la taille des données risque d'augmenter au fil du temps.
- La fonction effectue un arrondi des nombres décimaux : Lorsque l'expression contient une partie décimale, CLng arrondit la valeur vers l'entier le plus proche avant d'effectuer la conversion. Par exemple, CLng(123,8) retourne 124, tandis que CLng(123,2) retourne 123. Ce comportement diffère des fonctions Int et Fix, qui ne réalisent pas d'arrondi.
- Elle accepte différents types de données compatibles : Le paramètre peut être un nombre entier, un nombre décimal, une variable, une expression mathématique, un champ d'une table ou une chaîne contenant une valeur numérique valide. Cette souplesse permet de convertir facilement des données provenant de différentes sources. La conversion est réalisée automatiquement dès que l'expression peut être interprétée comme un nombre.
- Une conversion invalide ou un dépassement de capacité provoquent une erreur : Si l'expression ne contient pas une valeur numérique valide ou si le nombre dépasse les limites du type Long, Access génère une erreur d'exécution. Il est donc recommandé de vérifier les données avec IsNumeric et de s'assurer que les valeurs restent dans la plage autorisée. Cette précaution améliore la robustesse des applications.
- La fonction est souvent utilisée pour manipuler des identifiants numériques : Dans de nombreuses bases de données Access, les clefs primaires et les identifiants automatiques sont entreposés sous forme d'entiers longs. CLng permet donc de convertir explicitement une valeur avant de l'utiliser dans une comparaison, une recherche ou une requête SQL. Cette conversion garantit que les types de données sont cohérents.
- Elle peut être utilisée dans les requêtes, les formulaires et le code VBA : La fonction CLng est disponible dans les requêtes SQL, les formulaires, les états, les contrôles calculés ainsi que dans les modules VBA. Cette disponibilité permet de convertir directement des données lors de leur affichage ou de leur traitement. Elle évite ainsi de devoir écrire des fonctions personnalisées pour réaliser cette conversion.
- Elle appartient à la famille des fonctions de conversion de VBA : CLng fait partie des fonctions de conversion telles que CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CSng et CStr. Ces fonctions permettent de convertir explicitement une expression vers un type de données déterminé. Leur utilisation améliore la lisibilité du code et réduit les risques d'erreurs liés aux conversions implicites.
- Elle constitue un bon choix pour les calculs sur de grands entiers : Lorsque les valeurs manipulées ne comportent pas de décimales mais peuvent dépasser les limites du type Integer, CLng est généralement la solution la plus appropriée. Elle permet de conserver des performances élevées tout en offrant une plage de valeurs très importante. Cette caractéristique est particulièrement utile dans les applications de gestion manipulant un grand volume d'enregistrements.
- La fonction est compatible avec toutes les versions modernes de Microsoft Access : La fonction CLng est présente depuis les premières versions de Microsoft Access intégrant VBA et son fonctionnement est demeuré stable au fil des années. Elle est compatible avec Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 ainsi qu'avec Microsoft 365. Cette compatibilité assure le bon fonctionnement des applications Access développées sur différentes générations du logiciel.
Exemple de code VBA
La fonction CLng peut être utilisée dans le code VBA de Microsoft Access.
Par exemple :
Dim LValue As Long
LValue = CLng(35157.45)
Dans cet exemple, la variable LValue contiendrait désormais la valeur 35157.
Soyez prudent lorsque vous utilisez CLng. Si vous utilisez le code suivant :
Dim LValue As Long
LValue = CLng(35157.5)
La variable LValue contiendrait toujours la valeur 35157. Tant que la fraction est inférieure ou égale à 0,5, la fonction CLng n'arrondirait pas le nombre à l'entier supérieur.
Si la fraction est inférieure ou égale à 0,5, le résultat serait arrondi à l'entier inférieur.
Si la fraction est supérieure à 0,5, le résultat serait arrondi à l'entier supérieur.
Par le passé, il s'est avéré utile d'ajouter 0,0001 à la valeur avant d'appliquer la fonction CLng afin de simuler l'arrondi classique.
Par exemple, CInt(35150.50001) donnera la valeur 35151.