IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Nom de variable variable


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut Nom de variable variable
    Bonjour,

    J aimerais creer une fonction conntenant une Loop, et me sortant le nom d une variable en fonction de la loop.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Calcul_Moi_Ca()
    i = 1
    Do Until i = 9
    Variable_" & i & " = i
    i = i + 1
    Loop
    MsgBox Variable_3
    End Sub
    Donc vous l aurez compris, j aimerais voir apparaitre une jolie MsgBox agrementee d un joli "3" dedans....mais que des erreurs jusqua maintenant....

    Merci d avance si quelqun a une idee....

    Sparal

  2. #2
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Je pense que la fonction Eval() sert dans ce genre de situation.

    En esperant t'aider.

    PS : pense à édenter ton code afin de le rendre plus lisible.

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut Nom Variable Variable
    Merci Demco pour ta reponse....

    Mais je ne pense pas que cette fonction fasse exactement ce que je cherche, puisque l on peut par exemple utiliser en "serie" des fonctions deja definie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub CallSeries()
     
        Dim intI As Integer
     
        For intI = 1 To 50
            Eval("A" & intI & "()")
        Next intI
     
    End Sub
    Mais ce qui implique bien qu on a deja definit 50 fonctions auparavant...
    Moi je voudrais declarer le nom d une variable en me servant de Eval(), ce qui donnerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Callvariables()
     
        Dim intI As Integer
     
        For intI = 1 To 50
            Eval("A" & intI & ) = initI
        Next intI
     
    End Sub
    Hors cet exemple ne marche pas puisqu il ne trouve pas le nom de la variable par la suite (erreur 2482)

    merci quand meme.....

    Sparal

  4. #4
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Ne pourrais-tu pas simplement utiliser un tableau ?

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour,

    C'est impossible en VBA !
    La fonction Eval() ne peut pas retourner une "référence de variable" à laquelle une valeur serait ensuite affectée.

    Eval() à certaines limites et ne peut évaluer que des expressions comportant:
    * des valeurs littérales,
    * des fonctions d'Access ou bien définies dans un module de code,
    * des "objets de l'application Access" (formulaires, contrôles, etc.).

    Ainsi, il n'est pas possible d'évaluer une expression qui fait référence à une variable. Il faut au préalable récupérer la valeur et construire une expression où cette valeur est présentée littéralement, pour être ensuite évaluée.

    Citation Envoyé par Demco
    Ne pourrais-tu pas simplement utiliser un tableau ?
    Demco a raison: la seule solution est l'utilisation d'une variable de type tableau.

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut Nom de variable variable,
    Merci pour vos reponse,

    en effet j ai laisser tomber a Eval(), ce n etait pas vraiment ce que je cherchais.
    En fait mon but est d extraire "en serie" des donnees venant d un tableau (T_Index) pour les affecter a des variables (il sagit des calculer un index pour chaque elements d un autre tableau, dependant des valeurs seuils presententes dans le tableau T_Index). Je pourrais affecter un a un les elements du tableau a une variable (il n y en a que 20 dans mon cas), mais je cherchais seulement un moyen plus elegant (=flemmardise?) d y parvenir........pas grave!!

    Merci encore..

    Sparal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Nom de table variable ?
    Par szdavid dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 10h56
  3. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 14h37
  4. [try except keyerror] récupérer le nom de la variable
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 03/03/2005, 16h59
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo