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 :

Access 2016: Modifier le nom d'une fonction dans un code VBA [AC-2016]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut Access 2016: Modifier le nom d'une fonction dans un code VBA
    Bonjour !

    Dans l'application que je suis en train de développer, l'utilisateur peut accéder à plus de 30 statistiques différentes.
    Pour me repérer, j'ai donné un nom sous forme de chiffre à chacune d'elles (1100, 1200,1010,1020,1030, etc), stocké dans un control de mon formulaire.
    L'utilisateur doit pouvoir accéder à l'une ou l'autre des ces statistiques sur l'événement Click d'un seul et unique bouton.
    Bien entendu, je pourrais utiliser un "Select Case" (en référence au contenu du control mentionné ci-dessus) pour lancer l'une ou l'autre stat.
    Pour éviter un long chapelet de "Case is = "1100" - Case is = "1200", etc je souhaiterais créer une fonction "modulable", dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call "Stat" & me.numStat
    Mais bien sûr cela ne fonctionne pas aussi simplement
    Première question: Est-il possible de modifier le nom d'une fonction puis de l'appeler ?
    Seconde question: Quelqu'un aurait-il, sinon la solution, au moins un conseil à me donner ?
    Merci d'avance !

  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
    Bonjour.

    Une solution simple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call eval("Stat" & me.numStat)
    I faut que ce soit une fonction publique mais cela devrait marcher.

    Aussi essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call application.run("Stat" & me.numStat)
    Là ce peut être une fonction ou une procédure.

    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 Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut Merciiiii
    C'est la seconde solution qui fonctionne.. et pourtant mes fonctions sont "Public" puisque logées dans un module "modStats"

    L'essentiel c'est que cela fonctionne (je ne connaissais pas cette commande) et surtout, cela me fait UNE SEULE LIGNE DE CODE en lieu et place de > 60...

    Super génial, je suis ravi, merci beaucoup !!!

    Bernard

  4. #4
    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
    Ce sont des commandes à utiliser avec précautions (surtout eval) car elles représentent un gros risque de sécurité puisqu'elles peuvent presque exécuter n'importe quelle chaîne de caractères comme une instruction.

    Un utilisateur mal intentionné pourrait taper dans une zone de texte une instruction et le système l'exécuterai, c'est ce qu'on appelle de l'"injection de code" et cela peut être assez puissant.

    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.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/03/2016, 16h23
  2. [Débutant] Modifier le nom d'une matrice dans une boucle
    Par martom dans le forum MATLAB
    Réponses: 5
    Dernier message: 15/05/2013, 14h39
  3. Modifier le nom d'une vue dans la colonne definition
    Par bibi92 dans le forum Développement
    Réponses: 3
    Dernier message: 22/04/2010, 01h28
  4. [Free Pascal] Récupérer le nom d'une fonction dans une librairie
    Par franck.thibault dans le forum Free Pascal
    Réponses: 1
    Dernier message: 17/05/2007, 22h08
  5. Réponses: 4
    Dernier message: 09/08/2006, 15h14

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