Page 1 sur 1

Retourner la valeur d'une propriete d'une classe

MessagePublié: 20 Nov 2009 à 13:31
par RagDam
Bonjour,

Ayant créé ma classe, j'aimerai récupérer la valeur d'une propriété dont le nom est calculé.

Je stocke le nom d'une propriété de ma classe dans une variable NameField.
Et j'aimerai faire l'équivalent de

Values = Me.Namefield

J'ai essayé Execute("Values = Me." + Namefield), mais l'utilisation du Me. le gène..

Si vous avez des idées je suis preneur.

Merci

MessagePublié: 20 Nov 2009 à 14:15
par Dominux
Le plus simple ne serait-il pas de faire une fonction publique dans ta classe à qui tu passes NameField et qui de renvoit ce que tu veux ?!

MessagePublié: 20 Nov 2009 à 14:23
par RagDam
La classe me gere une 100taine de champs.
Ce que j'aurais éviter c'est justement de faire comme tu dis une fonction genre, vu que les propriétés de ma classe ont le même nom que mes champs des documents que je traite:
function GetValues(NameField as string) as string
select case NameField
case "nom1"
GetValues = Me.Nom1
case "nom2"
GetValues = Me.Nom2
case "nom2"
GetValues = Me.Nom2
case ...
...
case "nom100"
GetValues = Me.Nom100
end select
end function

MessagePublié: 08 Déc 2009 à 11:54
par d.bugger
Private NameField List As Variant

puis

If IsElement(Me.NameField(toto)) Then
Values= Me.NameField(toto)
Else
Values= ""
End If

MessagePublié: 16 Déc 2009 à 14:56
par stloje
le "Me" est utile uniquement pour différencier les variables (propriétés) propres à la classe de celles fournies via les paramètres de fonctions.

Ex. :

Code : Tout sélectionner
public MyClass as Class
     private var1 as string
     private var2 as integer

     sub New (var1 as string, var2 as integer)
          'le Me permet de faire la différence entre la variable de la classe
          'et celle provenant du paramètre
          Me.var1 = var1
          Me.var2 = var2
     end sub
end Class