Date de publication initiale de l’article : lundi 25 avril 2011

Les macros jouent un plus grand rôle dans Access 2010 que dans les versions précédentes. En fait, recourir à une macro est l’unique moyen d’automatiser des tâches dans des objets Web et dans des applications que vous publiez dans Access Services.

L’un des domaines qui prêtent à confusion concerne l’utilisation de la syntaxe correcte dans une macro.

Tout d’abord, il existe deux classes d’arguments de macro, chacune exigeant une syntaxe très différente.

La première classe d’argument de macro est une chaîne.  Citons comme exemple l’argument Message de l’action de macro MessageBox. Pour spécifier un message, entrez une chaîne dans l’argument, sans guillemet :

 

Toutefois, vous pouvez également entrer une expression dans cet argument en tapant un signe égal, puis en tapant une expression. Comme toutes les expressions, les chaînes doivent être placées entre guillemets :

L’autre classe d’argument est déclarée sous la forme d’une expression. Citons comme exemple de ce type l’argument WhereCondition de l’action de macro SetFilter. Dans le Concepteur de macros, ces arguments affichent un signe égal avant et en dehors de la zone de texte d’argument, afin de signaler à l’utilisateur que l’argument doit être exprimé sous la forme d’une expression. 

 

Points importants à prendre en considération lors de l’utilisation d’un argument d’expression

Qu’est-ce qu’une « double expression » et pourquoi faut-il faire attention ?

Une « double expression » ou « double évaluation » se produit lorsqu’une expression est imbriquée dans une autre. Dans un argument d’expression, si vous entrez un signe égal (=) dans la zone de texte, l’expression sera évaluée à deux reprises : une fois pour votre signe égal et une fois pour le signe égal affiché avant et en dehors de la zone de texte d’argument.

Pourquoi faut-il faire attention ?  Car si vous utilisez un argument d’expression dans une macro de base de données Web, la syntaxe doit être correcte, sinon une erreur se produira lors de chaque exécution de votre macro. Les doubles expressions ne sont pas prises en charge dans les applications Access Services. Si vous avez un argument de macro qui a pour conséquence l’existence d’une double expression, une erreur se produit à chaque exécution de votre macro.

En résumé : si vous utilisez un argument d’expression dans une base de données Web, n’entrez pas de signe égal au début de l’expression.

En général ...

Si vous utilisez un argument d’expression dans une macro de base de données cliente, vous ne devez pas entrer de signe égal au début de l’expression, à moins que cela ne soit expressément nécessaire.  Remarque : la double évaluation a un très léger impact sur les performances chaque fois que votre macro est exécutée.

Quel que soit le type de base de données, toutes les chaînes des arguments d’expression doivent être placées entre guillemets.

Ce billet de blog a été traduit de l’anglais. L’article d’origine se trouve à l’adresse Using the right syntax when publishing Access macros to Web databases