cs_CharlEm
Messages postés39Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention28 janvier 2009
-
24 juil. 2008 à 17:46
cs_CharlEm
Messages postés39Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention28 janvier 2009
-
25 juil. 2008 à 13:40
Bonjour,
Comment-puis faire pour récupérer une valeur d'un champ d'un classe en lui passant le nom de mon champ en paramètre ?
Dans mon code principal j'appel et je construit deux collections de classes puis dans une seule et même fonction, j'aimerais pouvoir appeller n'importe quel élément d'une de mes classes pour faire des contrôles.
Private Sub Form_Load()
Dim colProduit As New Collection
Dim eleProduit As New produit <== une de mes classes
Dim colRayon As New Collection
Dim eleRayon As New rayon <== une de mes classes
...
CheckProduits(eleProduit, colProduit, "prix")
CheckRayons(eleRayon, colRayon,"taille")
...
End Sub
Public Function CheckItems(Element as object, Collection as collection, champ as string)
For Each Element In Collection
debug.print element.item("prix") ==> l'objet ne gère pas cette propriétée ou cette méthode
Next Element
End Function
J'ai essayé element.item(1) => pareil ça marche pas
Par contre, si je fais :
debug.print element.prix ==> là c'est bon mais alors je perd le coté dynamique que je voulais.
Je ne peux pas non plus mettre Public Function CheckItems(Element as Produit,... sinon là aussi je perd le coté dynamique.
Quelqu'un a une idée pour avoir le PRIX de ELEMENT ?
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 24 juil. 2008 à 23:39
Holà!
En lisant les premières lignes de ton message, j'ai cru comprendre le sens de ta question.
Mais en lisant ton extrait de code source, je n'y comprend plus grand chose.
Ca serait bien que tu cernes ton problème, mais en oubliant le contexte de ton programme et en donnant un code source plus exploitable.
Vu que je n'ai pas tout compris, je vais te donner le 1er truc qui m'ai passé par la tête en lisant le début de ton post (suis-je hors sujet?) :
La fonction CallByNameexécute une méthode d'un objet, ou définit ou renvoie une propriété d'un objet...une classe étant aussi un objet.
A part ça, quelque chose m'intrigue dans ton code : ta Function CheckItems(...) ne renvoit pas de résultat.
Généralement, on écrit :
Function MaFunction (Parametre As ...) As ... Si ta fonction ne doit pas renvoyer de résultat, alors autant utiliser une Sub:
Sub MaSub (Parametre as ...) ... Sachant que Parametre peut renvoyer ou non une nouvelle valeur s'il est déclaré avec ByRef ou ByVal...