Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur 2482

4 réponses
Avatar
SUPRA MKIV
Bonjour

Comment peut-on introduire des variables dans l'argument de la fonction Eval ?

Dim A as Integer, Formule as String

Formule = "A + 1"
A = 10

MsgBox Eval(Formule)

J'ai un message d'erreur "Impossible pour Microsoft Access de trouver le nom
'A' entré dans l'expression.

Quelqu'un pourrait-il m'aider ?

Merci d'avance

4 réponses

Avatar
Gilles
"SUPRA MKIV" a écrit
Bonjour
Comment peut-on introduire des variables dans l'argument de la fonction
Eval ?

Dim A as Integer, Formule as String
Formule = "A + 1"
A = 10
MsgBox Eval(Formule)
J'ai un message d'erreur "Impossible pour Microsoft Access de trouver le
nom

'A' entré dans l'expression.
Quelqu'un pourrait-il m'aider ?
Merci d'avance


Bonjour, Supra (ici, on s'appelle par notre prénom ;-)

A ma connaissance, la fonction Eval ne reconnait pas les variables, locales
ou non.
Dans ton cas, la construction de la formule doit se faire APRES
l'initialisation de la variable.
De plus, la formule devrait plutôt être: Formule = A & " + 1"

Bonne continuation

Avatar
Gloops
Salut,

Est-ce que ce que tu essaies de faire, ça ne serait pas
Eval(Str$(A) + " + 1") ?

Parce que si tu ajoutes un nombre au nom d'une variable, logiquement, ça
coince ...

Alors que Eval(A + 1), là c'est bon, il n'y a pas de conversion en
chaîne de caractères, tu envoies un nombre.

Pour résumer il semble que Eval accepte un argument chaîne de caractères
ou un argument nombre, mais un mélange des deux, euh ... seulement les
jours fériés et encore en fonction des indications du ballon.
_________________________________________
SUPRA MKIV a écrit, le 03/03/2005 02:21 :

Bonjour

Comment peut-on introduire des variables dans l'argument de la fonction Eval ?

Dim A as Integer, Formule as String

Formule = "A + 1"
A = 10

MsgBox Eval(Formule)

J'ai un message d'erreur "Impossible pour Microsoft Access de trouver le nom
'A' entré dans l'expression.

Quelqu'un pourrait-il m'aider ?

Merci d'avance


Avatar
SUPRA MKIV
En fait, si on écrit encore plus simplement :

X = "A"
A = 10
msgbox eval(X) donne un message d'erreur

Comment faire pour contourner le problème ?


Salut,

Est-ce que ce que tu essaies de faire, ça ne serait pas
Eval(Str$(A) + " + 1") ?

Parce que si tu ajoutes un nombre au nom d'une variable, logiquement, ça
coince ...

Alors que Eval(A + 1), là c'est bon, il n'y a pas de conversion en
chaîne de caractères, tu envoies un nombre.

Pour résumer il semble que Eval accepte un argument chaîne de caractères
ou un argument nombre, mais un mélange des deux, euh ... seulement les
jours fériés et encore en fonction des indications du ballon.
_________________________________________
SUPRA MKIV a écrit, le 03/03/2005 02:21 :

Bonjour

Comment peut-on introduire des variables dans l'argument de la fonction Eval ?

Dim A as Integer, Formule as String

Formule = "A + 1"
A = 10

MsgBox Eval(Formule)

J'ai un message d'erreur "Impossible pour Microsoft Access de trouver le nom
'A' entré dans l'expression.

Quelqu'un pourrait-il m'aider ?

Merci d'avance






Avatar
Gilles
En fait, si on écrit encore plus simplement :
X = "A"
A = 10
msgbox eval(X) donne un message d'erreur
Comment faire pour contourner le problème ?


Bonjour, Supra

Comme répondu précédemment:
A
X=A
Eval(X) renvoie 10

Si tu veux évaluer ta chaîne de caractères (X) sans avoir à la réécrire à
chaque fois que la valeur de A change, il faut définir ta variable A en
variable globale, écrire une fonction publique qui renvoie la valeur de A et
une autre qui permet de la modifier.

Public A As Long

Public Function ValeurDeA() As Long
ValeurDeA = A
End Function

Public Sub ModifierA(ByVal NouvelleValeur As Long)
A = NouvelleValeur
End Sub

La suite d'instructions s'écrit alors ainsi:

X="ValeurDeA()"
ModifierA(10)
Eval(X) renvoie 10
ModifierA(200)
Eval(X) renvoie 200

Bonne continuation