Bonjour,
Je lance des traitements par l'intermédiaire d'une fonction qui se fonde sur une table de paramètres pour savoir ce qu'elle doit lancer et dans quel ordre.
Elle reçoit parfois un nom de variable en paramètre mais elle doit utiliser la valeur de cette variable dans les traitements qu'elle lance et non le nom.
Malheureusement, je n'arrive pas à obtenir cette valeur.
J'ai bien essayé avec la fonction EVAL, mais rien à faire elle refuse d'utiliser la variable.
Savez-vous s'il existe un moyen d'obtenir ce que je souhaite ?
Un peu de code étant parfois plus clair q'un long discours, voici un exemple :
partie du code d'export de données dans Excel à partir de requête paramétrées. (paramètre passé : vstrType<V>Perte<P>vdtmTrait<V>gdtmDTRAIT<E>, gdtmDTRAIT est une variable globale de la base lançant le code exemple)
Voici le message d'erreur que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Set qry = db.QueryDefs(strSource) ' On renseigne les paramètres les uns après les autres vrtPRM_lst = Split(strPRM, "<P>") For intcpt = 0 To UBound(vrtPRM_lst) blnEval = False If InStr(vrtPRM_lst(intcpt), "<E>") Then vrtPRM_lst(intcpt) = Replace(vrtPRM_lst(intcpt), "<E>", "") blnEval = True End If vrtPRM = Split(vrtPRM_lst(intcpt), "<V>") strPRM_name = vrtPRM(0) If blnEval = True Then vrtPRM_value = Eval(vrtPRM(1)) '-- C'est là où ça foire Else vrtPRM_value = vrtPRM(1) End If qry.Parameters(strPRM_name) = vrtPRM_value Next intcpt Set rstData = qry.OpenRecordset
Merci d'avance pour votre aide.
Partager