Passer directement au contenu principal

Eval, fonction

Vous pouvez utiliser la fonction eval pour évaluer une expression qui génère une chaîne de texte ou une valeur numérique.

Vous pouvez créer une chaîne et la transmettre à la fonction eval comme si elle était une expression réelle. La fonction eval évalue la expression de chaîne et renvoie sa valeur. Par exemple, Eval("1 + 1") renvoie 2.

Si vous passez à la fonction eval une chaîne contenant le nom d’une fonction, la fonction eval renvoie la valeur de retour de la fonction. Par exemple, Eval("Chr$(65)") renvoie «A».

Syntaxe

Eval ( expression )

L' argument expression_chaîne est une expression qui prend la valeur d’une chaîne de texte alphanumérique. Par exemple, l’argument expression chaîne peut être une fonction qui retourne une chaîne ou une valeur numérique. Il peut également s’agir d’une référence à une contrôle sur un formulaire. L' argument chaîne doit correspondre à une chaîne ou une valeur numérique; Il n’est pas possible d’évaluer une objet Microsoft Access.

Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher , puis entrez une ou plusieurs conditions dans la zone de recherche.

Remarque : Si vous transmettez le nom d’une fonction à la fonction eval , vous devez inclure les parenthèses après le nom de la fonction dans l’argument expression . Par exemple :

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Notes

Vous pouvez utiliser la fonction eval dans un contrôle calculé sur un formulaire ou un État, ou dans une macro ou un module. La fonction eval renvoie une valeur de type variante qui est une chaîne ou un type numérique.

L’argument expression_chaîne doit être une expression qui est stockée dans une chaîne. Si vous passez à la fonction eval une chaîne qui ne contient pas d’expression numérique ou de nom de fonction, mais uniquement une simple chaîne de texte, une erreur d’exécution se produit. Par exemple, Eval("Smith") génère une erreur.

Vous pouvez utiliser la fonction eval pour déterminer la valeur stockée dans la propriété value d’un contrôle. L’exemple suivant passe une chaîne contenant une référence complète à un contrôle à la fonction eval . Il affiche ensuite la valeur actuelle du contrôle dans une boîte de dialogue.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Vous pouvez utiliser la fonction eval pour accéder à des opérateurs d’expression qui ne sont généralement pas disponibles dans un module Visual Basic pour applications (VBA). Par exemple, vous ne pouvez pas utiliser les opérateurs SQL entre... Et ou directement dans votre code, mais vous pouvez les utiliser dans une expression transmise à la fonction eval .

L’exemple suivant détermine si la valeur d’un contrôle provincial figurant sur un formulaire commandes est l’une des abréviations d’État indiquées. Si le champ contient une des abréviations, intState sera vrai (-1). Notez que vous utilisez des guillemets simples (') pour inclure une chaîne dans une autre chaîne.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Exemples de requête

Expression

Résultats

Sélectionnez Eval ("15 + 3") comme expr1 du groupe ProductSales par Eval ("15 + 3");

Évalue la valeur de chaîne et calcule le résultat. Résultat: 18.

Sélectionnez Eval ("Date () + month (date ())") comme NewDate à partir du groupe ProductSales par Eval ("Date () + month (date ())");

Évalue la valeur de chaîne, identifie les fonctions et les exécute. Résultat: date système actuelle + mois en cours, qui s’affiche dans la colonne «NewDate».

Exemples VBA

L’exemple suivant suppose que vous disposez d’une série de fonctions 50 définies comme a1, a2, etc. Cet exemple utilise la fonction eval pour appeler chaque fonction de la série.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

L’exemple suivant déclenche un événement Click comme si l’utilisateur avait cliqué sur un bouton de formulaire. Si la valeur de la propriété OnClick du bouton commence par un signe égal (=), signifiant qu’il s’agit du nom d’une fonction, la fonction eval appelle la fonction pour déclencher l’événement Click . Si la valeur ne commence pas par un signe égal, la valeur doit nommer une macro. La méthode RunMacro de l’objet DoCmd exécute la macro nommée.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Remarque :  Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez vous nous dire si les informations vous ont été utiles ? Voici l’article en anglais pour référence.

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider