Partage via


Méthode Application.Eval (Access)

Utilisez la fonction Eval pour évaluer une expression qui génère une chaîne de texte ou une valeur numérique.

Syntaxe

expression. Eval (StringExpr)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
StringExpr Requis String Expression qui a pour résultat une chaîne de texte alphanumérique. Par exemple, stringexpr peut être une fonction qui retourne une chaîne ou une valeur numérique, ou il peut s’agir d’une référence à un contrôle dans un formulaire. L'argument exprstring doit être évalué comme une chaîne ou une valeur numérique, et non comme un objet Microsoft Access.

Valeur renvoyée

Variant

Remarques

Vous pouvez par exemple construire une chaîne de caractères, puis la passer à la fonction Eval pour qu'elle l'évalue comme s'il s'agissait d'une expression. La fonction Eval calcule l'expression chaîne et retourne sa valeur. Par exemple, Eval("1 + 1") retourne 2.

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

Si vous passez le nom d'une fonction à la fonction Eval, vous devez faire suivre le nom de la fonction de parenthèses dans l'argument expressionchaîne. Par exemple :

  ' ShowNames is user-defined function. 
  Debug.Print Eval("ShowNames()") 
  Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")
  Debug.Print Eval("Date()")

Utilisez 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 Variant qui est soit une chaîne, soit une valeur numérique.

L'argument expressionchaîne doit être une expression sous forme de chaîne. Si vous passez à la fonction Eval une chaîne contenant du simple texte et non une expression numérique ou un nom de fonction, une erreur d'exécution se produit. Par exemple, Eval("Smith") génère une erreur.

Utilisez la fonction Eval pour déterminer la valeur stockée dans la propriété Value d’un contrôle. L'exemple suivant transmet à la fonction Eval une chaîne contenant une référence complète à un contrôle. La valeur courante du contrôle est alors affichée 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))

Utilisez la fonction Eval pour accéder aux opérateurs d’expression qui ne sont pas normalement disponibles dans Visual Basic. Par exemple, il vous est impossible d'utiliser directement les opérateurs SQL Between...And ou In 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 le formulaire Orders (Commandes) correspond à l'abréviation d'un des noms d'états. Si le champ contient l’une des abréviations, intState aura la valeur True (1). Remarquez que des guillemets simples (') sont utilisés pour inclure une chaîne dans une autre.

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

Exemple

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 intI 
 
End 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 (=) indiquant 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 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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.