web-dev-qa-db-fra.com

Valeurs nulles pour les variables dans VBA

Comment définir une chaîne, une date ou un entier Null dans VBA?

Je dois pouvoir attribuer une valeur Null à certains champs pour certains enregistrements lorsque les données sont incomplètes ou non pertinentes, mais si je déclare une variable en tant que chaîne, date ou entier, j'obtiens des erreurs lorsque j'essaie d'attribuer une valeur Null.

La seule solution pour utiliser Variant? Si c'est le cas, quel est l'intérêt de tous les autres types de données dans VBA?

18
HorusKol
Dim x As Variant
x = Null

Seul le type de données Variant peut contenir la valeur Null.

Un Variant est un type de données spécial qui peut contenir tout type de données [...] Un Variant peut également contenir les valeurs spéciales Empty, Error, Nothing et Null.

Le "point" de tous les autres types de données est précisément qu'ils ne peuvent contenir aucun type de données. Cela présente deux avantages auxquels je peux penser:

  • Il est plus difficile pour le programmeur d'affecter par erreur des données d'un type non intentionnel, car cela sera détecté au moment de la compilation. Cela peut aider à prévenir les bogues et à rendre les choses plus claires pour vous et la prochaine personne qui gérera votre code.
  • Les types de données étroits économisent de l'espace de stockage. Mettre des entiers dans un Variant (16 octets) prend beaucoup plus de mémoire que les mettre dans un Int (2 octets). Cela devient important si vous avez de grands tableaux.

Bien sûr, les variantes ont leur place, comme le discutent d'autres discussions sur ce site.

37