Appel de procedure en fonction du nom stocké dans un champ de table

Résolu
jeromepupuce Messages postés 11 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 30 octobre 2008 - 30 janv. 2006 à 18:46
jeromepupuce Messages postés 11 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 30 octobre 2008 - 1 févr. 2006 à 17:22
Bonjours à tous,

Je travail sous Access 2000, et je voudrais appeler des fonctions ou des sub à partir de leur nom que j'ai préalablement stockée dans un champs d'une table.
J'ai crée un formulaire simple avec une zone de liste qui contient toute ma table, la colonne 1 contient le nom des sub ou fonction,, je souhait que lorsque je clique sur une clique, le programme execute la fonction dont le nom estdonné dans la colonne 1.
la procedure call ne fonctionne pas car la variable contenant le nom de la procedure n'est pas reconnu comme une procedure mais comme du texte. je suppose que c'est normal mais je n'y arrive pas.
Si quelqu'un a une solution, je suis preneur
En esperant avoir été assez clair et explicite, je remercie par avance tous ce qu me repondre et m'apporteront une solution.

A+

7 réponses

CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
31 janv. 2006 à 21:37
Bonjour,

Ce doit être faisable en utilisant la méthode Run.

Un exemple ici sur XL avec la cellule D1.

http://cjoint.com/?bFvGWZbYyf

ctac
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 janv. 2006 à 20:05
Bonsoir,

Je vois bien une solution mais je ne sais pas si elle te plairas.

Tu peux recuperer le nom de la fonction dans une variable:

Dim NomFonction as string

Select case NomFonction
Case "Form_Load": Call Form_Load
Case "Form_Unload"Call Form_Unload
.....
End select

C'est un petit peu lourd a faire.

@+
Julien
0
jeromepupuce Messages postés 11 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 30 octobre 2008
30 janv. 2006 à 20:19
J'ai deja essaye une solution proche de celle que tu me propose mais elle mais fin a tout procedure qui suivrai ce code. Je m'explique, je souhait executer une sub ou fonction quio depend de la ligne selectionnée puis executer un code commun a tout les enregistrement, ce code suit select. En faite, l'excecution deselect case met fin a tout le code qui suit des lors qu'il a trouvé une correspondance.
Je te remercie quand même

A+
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
30 janv. 2006 à 20:41
Salut,
A ma connaissance, il n'y a pas de collection 'subs' ou 'functions' en VB6, encore moins en VBA. En VB.NET, je ne me suis pas posé la question mais je ne pense pas que ça existe.
Donc, aucun moyen autre que celui décrit par <jrivet> pour arriver à tes fins.
D'autre part, si tu expliquais les raisons qui t'on amené à t'orienter de la sorte, on pourrait peut-être te proposer une autre voie.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 janv. 2006 à 21:37
J'ai eu moi-même besoin d'un tel procédé récement pour créer un logiciel évolutif à la demande du client.

Je n'ai, moi non plus, pas trouvé de solution à part le select case. Donc mon soft n'est pas si évolutif que ça.

On m'avait donné une piste, il y aurait des api capables de récupérer la fonction à l'aide de callback, je n'ai jamais réussis à trouver ces api. Et pour etre honete je doute qu'elles existent vraiment. Je vois pas comment elles pouraient fonctionner.

En bref, je pense que tu n'as pas le choix --> select case

<hr size="2" width="100%">
0
jeromepupuce Messages postés 11 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 30 octobre 2008
1 févr. 2006 à 06:34
Merci a tous pour vos solutions.
Pour "Loup", les raisons qui m'ont pousse a chercher une telle solution sont que je voudrais pour exporter des données extraites de table ou de requete rapidement et sans etre obliger de modifier le code en permenance, surtout avec 25000 enregistrements et 100 exportations differrentes. Ca me permettrai aux mise a jour de ma base de n'effectue qu'un rajout de module et un ajout dans la table exportation avec comme champ "Macro" le nom de la routine a executer avant d'effectuer l'exportation. Mon code est deja interactif et prend en compte l'ensemble des exportations avec des modeles differents, des chemein d'enregistrement differents et des requete differnetes pour chacun.
Si personne ne peut m'apporter de meilleurs solution que Select Case, je l'utiliserai mais mon code ne sera plus interactif.
Merci tout de même.
A+
0
jeromepupuce Messages postés 11 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 30 octobre 2008
1 févr. 2006 à 17:22
Merci a toi CTAC, je n'y avais pas pensé mais ca fonctionne trés bien.....
0
Rejoignez-nous