<Retour Grenier>

Début de page Question

Peut-on évaluer une expression "à la volée" dans Access ?
Exemple : je souhaite simuler une calculatrice simple.
On taperait 5+8/2 dans une zone de texte, et Access donnerait le résultat automatiquement.

 

Début de page Réponse

C'est possible grâce à la fonction Eval() :

=Eval(txtCalcul)

Repassez en mode Formulaire classique, et tapez par exemple 5+8/2.
Vous obtenez 9 comme résultat (notez qu'Access respecte ici aussi les notions de priorité dans les calculs).

Une petite amélioration :

Lorsque la zone txtCalcul est vide, le txtResultat est #Erreur (Access ne peut pas évaluer un calcul vide). Pour un affichage plus "joli", remplacez le calcul par :

=Eval(Nz(txtCalcul;0))

La fonction Nz(x;0) convertit la valeur x en valeur 0 si x vaut Null (s'il est vide).
Ainsi, lorsqu'aucun calcul n'a été tapé, le résultat final est Eval(0), soit 0.