Astuces de recherche...
Home
- Accueil & nouveautés
- Les newsgroups VB
- Téléchargements
- L'équipe
- Nous contacter
- Liens
Rubriques
- Toutes les questions
- Affichage & graphismes
- Algorithmique
- API
- Base de registre
- Bases de données
- Contrôles
- Date & heure
- Déploiement
- Divers
- Erreurs & problèmes
- Fichiers & dossiers
- Généralités
- Impression
- Internet & mails
- Math
- Multimédia
- Réseaux
- Structures de données
- Texte & strings
- VB .Net
- VB Script
- VBA
- Windows

Question 168

Pourquoi l'objet collection refuse-t-il de retrouver un élément possédant une clé numérique ?

Lorsque vous tentez de réutiliser un élément dont la clé, indiquée lors de l'opération Add, est numérique, l'objet Collection peut indiquer une erreur 9 (Subscript out of range) ou ne pas renvoyer l'élément attendu.

Cette erreur se produit lorsque la clé n'est pas convertie en chaîne de caractères. L'objet Collection utilise alors la valeur indiquée en tant que simple indice. Il est donc important de se souvenir qu'une clé de collection est toujours une chaîne de caractères.

L'exemple suivant illustre cette erreur et comment la corriger :

    Dim a As Collection
    Dim MyKey As Long
     
    'Instancie une collection
    'La clé
    Set a = New Collection
    MyKey = 5
     
    'La clé doit être une chaîne de caractère
    'Pour pouvoir être insérée
    a.Add "test", CStr(MyKey)
     
    'La ligne suivante produit une erreur
    Debug.Print a.Item(MyKey)
     
    'Tandis que celle-ci est correcte, la clé
    'étant effectivement une chaîne de caractères
    Debug.Print a.Item(CStr(MyKey))

Voir aussi :

Date de publication : 13 septembre 2007
Dernière modification : 13 septembre 2007
Rubriques : Erreurs & problèmes
Mots-clés : collection, clé, numérique, élément, subscript, erreur