Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vous pouvez utiliser la fonction Eval pour évaluer une expression qui aboutit à une chaîne de texte ou à une valeur numérique.

Vous pouvez construire une chaîne, puis la passer à la fonction Eval comme si la chaîne était une expression réelle. La fonction Eval évalue le expression de chaîne et retourne sa valeur. Par exemple, Eval("1 + 1") retourne 2.

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

Syntaxe

Eval ( stringexpr )

L’argument stringexpr est une expression qui prend la valeur d’une chaîne de texte alphanumérique. Par exemple, stringexpr peut être une fonction qui retourne une chaîne ou une valeur numérique. Il peut également s’agir d’une référence à un contrôle sur un formulaire. L’argument stringexpr doit prendre la valeur d’une chaîne ou d’une valeur numérique ; il ne peut pas être évalué à un 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 et entrez un ou plusieurs termes dans la zone de recherche.

Remarque : Si vous passez le nom d’une fonction à la fonction Eval , vous devez inclure des parenthèses après le nom de la fonction dans l’argument stringexpr . 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 retourne un Variant qui est une chaîne ou un type numérique.

L’argument stringexpr doit être une expression 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 chaîne de texte simple, 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 transmet 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 ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "Forms!Employees!LastName"MsgBox ("The current value of " & ctl.Name & _    " is " & Eval(strCtl))

Vous pouvez utiliser la fonction Eval pour accéder aux opérateurs d’expression qui ne sont pas habituellement disponibles dans un module Visual Basic pour Applications (VBA). Par exemple, vous ne pouvez pas utiliser les opérateurs SQL Between... Et ou Dans directement dans votre code, mais vous pouvez les utiliser dans une expression passée à la fonction Eval .

L’exemple suivant détermine si la valeur d’un contrôle ShipRegion dans un formulaire Commandes est l’une des abréviations d’état spécifiées. Si le champ contient l’une des abréviations, intState aura la valeur True (–1). Notez que vous utilisez des guillemets simples (') pour inclure une chaîne dans une autre chaîne.

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

Exemples de requêtes

Expression

Résultats

SELECT Eval(« 15+3 ») AS Expr1 FROM ProductSales GROUP BY Eval(« 15+3 ») ;

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

SELECT Eval(« Date()+month(date()) ») AS NewDate FROM ProductSales Group by 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, affiché dans la colonne « NewDate ».

Exemples VBA

L’exemple suivant suppose que vous disposez d’une série de 50 fonctions 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 intIEnd Sub

L’exemple suivant déclenche un événement Click comme si l’utilisateur avait cliqué sur un bouton d’un formulaire. Si la valeur de la propriété OnClick du bouton commence par un signe égal (=), ce qui signifie qu’il s’agit du nom d’une fonction, la fonction Eval appelle la fonction, ce qui équivaut à 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 ControlDim varTemp As VariantSet ctl = Forms!Contacts!HelpButtonIf (Left(ctl.OnClick, 1) = "=") Then    varTemp = Eval(Mid(ctl.OnClick,2))Else    DoCmd.RunMacro ctl.OnClickEnd If

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.