Retour de COLLECTION=====HELP

Messages postés
2
Date d'inscription
dimanche 29 septembre 2002
Statut
Membre
Dernière intervention
5 octobre 2002
-
Messages postés
9
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
8 août 2003
-
'alut...Voilà comment je rempli ma collection...

FIND_PERM()
set NewPermissions = new permission
dim Newcoll as collection

While (Not Recordset.EOF) '# on remplit la collection
'#avec result de requete
NewPermissions.Nom_perm = Recorset!Nom_perm
Newcoll.Add NewPermissions

Recordset.MoveNext
Wend

ET AU MOMENT DE RECUPERER LE CONTENU IL ME DONNE LE NOMBRE EXACT D'ELEMENT...MAIS LEURS VALEUR EST IDENTIQUE (=DERNIER ELEMENT INTRODUIT DANS NewColl)...

Dim MyObject As Object

Set Objpermissions = New Permissions
Set Newcoll = New Collection
Set Newcoll = Objpermissions.FIND_PERM
MsgBox Newcoll.Item(1).nom_perm '
MsgBox Newcoll.Item(2).nom_perm ' contenu
MsgBox Newcoll.Item(3).nom_perm ' identique
MsgBox Newcoll.Item(4).nom_perm '

....Please Help :shy)

2 réponses

Messages postés
30
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
30 mai 2003

D'apres moi c une histoire de référence un peu comme en C qui fait l'erreur.
Permission doit etre une classe si je lis bien.. ou peut-etre un type.
Quand tu l'add dans ta collection tu add juste le lien vers l'élément de ta classe que ta créer avec
set NewPermissions = new permission
alors c toujours le meme élément vers lequel il pointe. Donc lorsque tu change ca valeur c normal que la valeur de tout les autres changes aussi puisque ce n'est en veritée qu'un seul et meme élément qui est relié a tout tes items de ta collection.

En résumé je te dirais de créer un nouvelle élément permission pour chaque add dans ta collection.
Bon je suis pas sure que c vraiment ca ton bug, mais d'apres ce que tu dit ca me semble bien possible.
J'espere que ca pourra t'aider un peu et surtout que t'arrivera a comprendre ce que j'ai écris, car je suis pas forte dans la facon d'expliquer.
Messages postés
9
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
8 août 2003

Bon ça fait longtemps que le message a été posté mais j'ai été confronté au mê^me problème et j'ai trouvé la solution.

je le poste au cas où cela pourraitaider qqun

Apres avoir ajouté sa classe à la collection il suffit tout bêtement d'en liberer
l'space memoire en lui affectant un 'nothing'. Cela permettra que le programme pointe sur une autre occurence de la classe