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
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
59
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
18
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
41
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