Articolo originale pubblicato lunedì 25 aprile 2011

Le macro in Access 2010 svolgono un ruolo molto più importante rispetto alle versioni precedenti. Anzi, l'utilizzo di una macro rappresenta l'unico modo per automatizzare le attività negli oggetti Web e nelle applicazioni pubblicati in Access Services.

Un aspetto che ha creato confusione è l'utilizzo della sintassi corretta in una macro.

È innanzitutto necessario precisare che vi sono due classi di argomenti di macro, ognuna delle quali richiede una sintassi molto diversa.

La prima classe di argomenti di macro è una stringa. Un esempio è rappresentato dall'argomento Messaggio (Message) dell'azione di macro FinestraMessaggio (MessageBox). Per specificare un messaggio, immettere una stringa nell'argomento, senza virgolette:

 

Tuttavia, è anche possibile immettere un'espressione in questo argomento specificando un segno di uguale e quindi un'espressione. Come tutte le espressioni, le stringhe devono essere racchiuse tra virgolette:

L'altra classe di argomenti viene dichiarata sotto forma di espressione. Un esempio di questo tipo è rappresentato dall'argomento CondizioneWHERE (WhereCondition) dell'azione di macro ImpostaFiltro (SetFilter). In Progettazione macro questi argomenti vengono visualizzati con un segno di uguale prima e all'esterno della relativa casella di testo per indicare all'utente che l'argomento deve essere espresso sotto forma di espressione. 

 

Importanti considerazioni per l'utilizzo di un argomento sotto forma di espressione

Che cosa si intende per "doppia espressione" e perché è importante tenerne conto?

La "doppia espressione" o "doppia valutazione" si verifica ogni volta che un'espressione viene annidata all'interno di un'altra. In un argomento sotto forma di espressione, se si immette un segno di uguale (=) nella casella di testo, l'espressione verrà valutata due volte: una volta per il segno di uguale immesso e un'altra volta per il segno di uguale visualizzato prima e all'esterno della casella di testo relativa all'argomento.

Perché è importante preoccuparsene? Perché, se si utilizza un argomento sotto forma di espressione in una macro di database Web, la sintassi deve essere corretta, altrimenti verrà generato un errore di runtime a ogni esecuzione della macro. La doppia espressione non è supportata nelle applicazioni Access Services. Se vi è un argomento di macro che dà luogo a una doppia espressione, verrà perciò visualizzato un errore di runtime ogni volta che la macro viene eseguita.

La conclusione finale è che, in caso di utilizzo di un argomento sotto forma di espressione in una macro di database Web, non si deve immettere un segno di uguale all'inizio dell'espressione.

In generale...

Se si utilizza un argomento sotto forma di espressione in una macro di database client, evitare di immettere un segno di uguale all'inizio dell'espressione, a meno che non sia specificamente necessario. Nota: La doppia valutazione incide leggermente sulle prestazioni ogni volta che la macro viene eseguita.

Indipendentemente dal tipo di database, tutte le stringhe incluse negli argomenti specificati sotto forma di espressione devono essere racchiuse tra virgolette.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Using the right syntax when publishing Access macros to Web databases.