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

VBA Access Discussion :

Valeur d'un paramètre désigné par une valeur [Toutes versions]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Par défaut Valeur d'un paramètre désigné par une valeur
    Bonjour à toutes et tous !

    Petit pb propre à l'utilisation de VBA:

    Dans une fonction ayant 3 paramètres (Param1, Param2, Param3)
    J'ai une boucle qui fait des traitements et qui a parfois besoin de Param1, Param2 ou Param3. C'est la valeur ValX qui me le détermine (égale à "Param1", "Param2" ou "Param3" selon les besoins).

    Comment utiliser ValX pour qu'elle me sorte la valeur des paramètres et non leur nom (dont je me fous) ??

    J'ai utilisé la fonction Eval() sans succès. Une autre idée ?
    Bien à vous,

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Ta boucle est à l'extérieur de ta fonction oU à l'intérieur ?

    Peut-être ceci t'aidera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select case ValeurX
       case "Param1"
          'Faire quelque chose
     
       case "Param2"
          'Faire autre chose
     
       case "Param3"
          'Faire quelque encore chose
     
       case else
          error(5)
     
    end select
    Sinon je pense que ce serait bien si tu postais ton code. Ça aide à fixer les idées.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éclairé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Par défaut
    Hello ! Merci marot_r

    Ma boucle est dans ma fonction. Mon problème n'est pas très critique mais c'est déja la deuxième fois que je ressens ce genre de besoin. Je m'en tire effectivement toujours avec un SELECT CASE.
    Mais dans certain cas, ça peut être fastidieux.

    Mon code est un peu complexe tel qu'il est et j'ai peur que vous ne passiez un temps inutile à le comprende. J'en poste un qui correspond à mon besoin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Param1 = "A"
    Param2 = "B"
    Param3 = "C"
     
    ValX = "Param1"
     
    MsgBox FonctionX(ValX)
    J'aimerais trouver une fonction qui me donnera ici la valeur "A". Eval me donne une erreur 2482 'Access can't find the name 'Param1' you entered in the expression'

    Bien à vous !

  4. #4
    Membre éclairé
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Par défaut
    Bonjour.

    Selon moi il faut remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ValX = "Param1"
    par

    Cdlt.

  5. #5
    Membre éclairé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Par défaut
    Merci jj4822,

    dans ma fonction, ValX est une valeur d'un champ dans un jeu de données. Je lis ce jeu de données qui m'indique quelle valeur prendre (Param1, Param2, Param3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Param1 = "A"
    Param2 = "B"
    Param3 = "C"
     
    ValX = rec.Fields("MonParametre")
     
    MsgBox FonctionX(ValX)
    donc, si dans mon jeu de données, il est écrit "Param1", msgbox valX va me retourner "Param1" alors que c'est "A" que je voudrais.

  6. #6
    Membre éclairé
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Par défaut
    Si l'on met Param1 entre guillemet, VBA considere que la valeur est egale au texte Param1 et non a la valeur de la variable Param1.

    A chaque fois que j'utilise une variable je fais de la maniere suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    dim Param1 as string 'string par exemple
    Param1 ="A"
     
    ValX = Param1
    Dans le cas present, sauf erreur de ma part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ValX = rec.Fields(param1) 'devrait considerer qu'il doit aller chercher le champ A
    Maintenant, ne connaissant pas le detail du programme je ne sais pas si je repond bien a la question.

    Cdlt.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2012, 11h25
  2. [XL-2003] Restreindre valeurs des paramètres appelés par une fonction
    Par azerty_2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/03/2011, 08h50
  3. Remplacer une valeur d'un parametre html par une variable javascript
    Par andromeda dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/10/2010, 23h21
  4. Réponses: 7
    Dernier message: 17/10/2006, 16h32
  5. sélectionner une valeur d'un liste box par le l'ascenceur
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/05/2006, 13h13

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