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)
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
Voici le message d'erreur que j'obtiens :

Merci d'avance pour votre aide.