I. Introduction▲
Nous allons dans cet article aborder l'éditeur de Macros d'Access 2013 avec une application Web. À la différence d'une application bureau, une application Web d'Access 2013 possède trois types de macros :
- Macro Web : celles-ci filtrent les actions et les expressions qui ne peuvent pas être utilisées sur le Web ;
- Macro de données : permet d'ajouter, modifier les données des tables (tableaux) ;
- Macro Au démarrage : permet de configurer l'application en initialisant des variables, valeurs par défaut, l'accès à des vues spécifiques. Celle-ci s'exécute au démarrage de l'application.
Cet article fait suite de celui-ci : Démarrage d'une application Web avec Access 2013.
Nous allons continuer sur le même exemple que l'article précédent.
II. Créer une nouvelle macro▲
Pour créer une nouvelle macro, sélectionnez depuis l'onglet Accueil du Ruban Access le menu Avancé et choisissez le type de macro voulue.
Lors de la création d'une macro, la vue est séparée en trois parties :
Ruban de création :
- Les quatre premières commandes permettent de réduire/développez les actions ou l'ensemble de la page.
- Le Catalogue d'actions permet d'afficher/masquer le volet de droite reprenant toutes les actions.
- Les deux dernières commandes permettent de lancer ou non le suivi de la macro de données ou d'afficher dans une table les résultats du suivi.
Catalogue d'actions :
Le catalogue d'actions est composé de deux éléments :
- Déroulement de programme ;
- Actions.
L'élément action est scindé en plusieurs sous-éléments.
Tous ces sous-éléments regroupent les actions.
Vue de création des macros :
Une liste est disponible pour sélectionner les actions voulues.
III. Macro▲
Depuis le menu Avancé sélectionnez Macro.
Pour créer une action, deux possibilités s'offrent à vous :
- depuis la liste déroulante qui regroupe l'ensemble des actions disponibles
- depuis le catalogue d'actions par un glissé-déposé.
III-A. Déroulement du programme▲
Ce groupe est commun aux trois types de macros.
III-A-1. Commentaires▲
Cette action permet d'écrire des informations dans votre programme. Ceci est pratique pour donner des informations sur les actions suivantes.
III-A-2. Groupe▲
Ceci permet de créer un bloc regroupant plusieurs actions. Ceci permet de donner de la visibilité au programme en permettant de réduire l'ensemble du groupe.
Sur l'image ci-dessous le groupe est réduit.
III-A-3. Si▲
Permet de faire un test logique et oriente l'exécution des actions en fonction. Cette fonction action a son équivalent en VBA : IF ... THEN . ELSE.
Ici le SI permet de faire un test logique (variable, contrôle ou expression). Si le test est vérifié, alors, on exécute les actions qui suivent.
Exemple 1 : Si la Zone de Texte comporte des caractères Alors on affiche un message avec le contenu de la zone
Voici le résultat :
Exemple 2 : Si la Zone de Texte comporte des caractères Alors on affiche un message avec le contenu de la zone Sinon on affiche un message signifiant que rien n'a été saisi dans la zone de texte.
Voici le résultat :
Il est possible de lancer un second test logique si le premier n'est pas vérifié. Pour cela utiliser Sinon Si.
III-B. Actions▲
III-B-1. Commandes d'interface utilisateur▲
III-B-1-a. Changer de vue▲
Cette action permet de naviguer vers une autre Vue avec la possibilité de Filtrer ou non et de Trier ou non.
Vous devez définir :
- Table : (champ obligatoire) ceci définit la table de la Vue ;
- Vue : (champ obligatoire) nom de la Vue à afficher ;
- Where : (champ facultatif) clause permettant de filtrer l'affichage de la Vue selon un champ ou une chaîne SQL ;
- Trier par : (champ facultatif) permet de trier l'affichage selon un champ.
Dans notre exemple, nous allons afficher la Vue Contacts Liste basée sur la Table Contacts en filtrant par l'ID du contact qui sera saisi dans une zone de texte.
Voici la première Vue d'où est lancée la macro :
Et le résultat : la Vue est filtrée sur l'ID 3 :
III-B-1-b. FermerFenêtreContextuelle▲
Cette action permet de fermer la fenêtre contextuelle active.
III-B-1-c. OuvrirFenêtreContextuelle▲
Cette action permet d'ouvrir une Vue dans une fenêtre contextuelle. Vous devez renseigner le nom de la Vue et la clause Where si vous voulez filtrer les données.
Dans notre exemple, nous allons reprendre le même filtre que l'on a fait avec l'action Changer de Vue, mais ici la Vue s'affichera dans une Vue contextuelle. Il est recommandé de mettre le nom de la table avec le nom du champ, même si cela fonctionne sans.
Voici le résultat :
III-B-1-d. ZoneMessage▲
Cette action permet d'afficher un message d'avertissement ou d'information.
Ici, nous allons afficher le contenu de la zone de texte :
Voici le résultat :
III-B-2. Commandes de macro▲
III-B-2-a. ArrêtMacro▲
Cette action permet d'arrêter la macro en cours d'exécution.
III-B-2-b. DéfinirVariable▲
Cette action permet de charger une donnée dans une variable qui peut être réutilisée.
Pour l'exemple, nous allons charger la valeur de la zone de texte dans une variable et nous allons afficher la valeur de la variable dans un message.
Voici le résultat :
III-B-2-c. ExécuterMacro▲
Cette action permet de lancer une macro déjà enregistrée.
III-B-2-d. ExécuterMacroDonnées▲
Cette action permet de lancer une macro de données déjà enregistrée.
III-B-3. Filtre/Requête/Recherche▲
III-B-3-a. ActualiserEnregistrement▲
Cette action permet l'actualisation de l'enregistrement actuel, il est possible d'ajouter une clause Where pour filtrer le jeu.
Dans l'exemple, lors de l'actualisation, nous effectuons un filtre sur l'ID de la table Contacts.
III-B-4. Objets de base de données▲
III-B-4-a. AtteindreContrôle▲
Cette action permet de placer le focus sur le contrôle spécifié. Le curseur de la souris se placera sur ce contrôle.
Dans l'exemple suivant, nous activons la liste déroulante lors du clic sur le bouton.
III-B-4-b. AtteindreEnregistrement▲
Cette action permet de naviguer dans le jeu d'enregistrements, vous pouvez passer à l'enregistrement Précédent/Suivant/Premier/Dernier.
III-B-4-c. DéfinirPropriété▲
Permet de définir une propriété du contrôle.
Voici les propriétés disponibles :
Dans notre exemple, la couleur de fond de la zone de texte est changée sur le clic du bouton.
Voici le résultat
Pour les propriétés définissant une couleur la valeur est représentée en hexadécimal. Pour les autres 0 ou -1.
III-B-5. Opérations d'entrée de données▲
Ces actions apportent des modifications aux données.
III-B-5-a. AnnulerEnregistrement▲
Cette action annule les modifications de l'enregistrement actif.
III-B-5-b. ModifierEnregistrement▲
Cette action modifie l'enregistrement actif.
III-B-5-c. NouvelEnregistrement▲
Cette action crée un nouvel enregistrement.
III-B-5-d. SauvegarderEnregistrement▲
Cette action sauvegarde les modifications de l'enregistrement actif.
III-B-5-e. SupprimerEnregistrement▲
Cette action supprime l'enregistrement actif.
III-B-6. Dans cette base de données▲
Dans ce groupe, vous retrouvez tous les éléments enregistrés dans l'application.
IV. Macro de données▲
Lors de la création d'une macro de données, une partie supérieure fait son apparition. La partie paramètre. Cette partie permet de définir des paramètres qui seront demandés à l'appel de la macro.
Pour créer un paramètre, cliquez sur le lien Créer un paramètre en haut à droite.
Il ne vous reste plus qu'à définir son Nom, le Type du paramètre et une description si vous voulez donner des détails.
Ici nous allons créer un paramètre de texte court (String).
Lors de l'appel de la macro de données, il vous est demandé de donner la valeur du paramètre.
Ici nous passons en paramètre de la macro de données la valeur de la zone de saisie. Cette macro est exécutée lors de l'appui d'un bouton dans une vue quelconque.
IV-A. Déroulement de programme▲
Cette partie est commune à la précédente.
IV-B. Blocs de données▲
Un bloc de données est un groupement d'actions qui réalisera l'Action du Bloc.
Par exemple, pour la création de données, vous pouvez effectuer un test pour créer un enregistrement.
IV-B-1. CréerEnregistrement▲
Ce bloc permet de créer un enregistrement dans la table et champ définis.
Ici, le bloc ajoute un enregistrement dans la table Contacts, pour ajouter cet enregistrement un test est réalisé sur le paramètre. Si celui-ci comporte des données, on ajoute la valeur du paramètre dans le champ Société de la table Contacts, sinon on ne fait rien (on annule).
Lorsque vous cliquez sur le nom de la table, vous distinguez deux liens en haut à droite ceux-ci permettent de définir :
- Alias : nom donné au nouvel enregistrement ;
- Récupération ID : ceci permet de charger dans une variable locale l'ID du nouvel enregistrement.
IV-B-2. RechercherEnregistrement▲
Ce bloc seul ne réalise pas d'action. Il permet de rechercher un enregistrement dans le jeu d'enregistrements.
Attention : si plusieurs enregistrements correspondent, seul le premier sera pris en compte. Si vous voulez modifier l'ensemble des enregistrements, il vous faudra utiliser : PourChaqueEnregistrement.
Vous devez définir la table servant de jeu d'enregistrements et la clause Where permettant de filtrer sur un enregistrement dans le jeu.
Ici nous sélectionnons l'enregistrement dans la table Contacts ayant pour ID 10.
IV-B-3. PourChaqueEnregistrement▲
Ce bloc seul ne réalise pas d'action. Il permet de faire une boucle pour chaque enregistrement répondant à la clause Where (filtre).
Dans l'exemple, nous allons modifier le nom de la Société pour tous les enregistrements ayant pour nom de Société « DVP » par la saisie de la zone de texte.
Ici aussi vous pouvez définir un alias à l'enregistrement modifié.
IV-B-4. ModifierEnregistrement▲
Ce bloc associé au précédent permet de faire une modification dans un enregistrement.
Le bloc RechercherEnregistrement permet d'instancier l'enregistrement dans le jeu et le bloc ModifierEnregistrement permet de modifier des colonnes de cet enregistrement.
Dans notre exemple nous allons modifier l'enregistrement ayant pour ID 10, la colonne société par le paramètre de la macro de données (à savoir la zone de saisie).
Ici aussi vous pouvez définir un alias à l'enregistrement modifié.
IV-B-5. AnnulerModificationEnregistrement▲
Cette action permet d'annuler le bloc ModifierEnregistrement ou CréerEnregistrement.
Dans notre exemple, nous allons effectuer un test du paramètre si celui-ci présente des données, on modifie l'enregistrement actuel, sinon on annule la modification
IV-B-6. ArrêtMacro▲
Cette action termine la macro en cours.
IV-B-7. DéclencherErreur▲
Cette action permet de déclencher un avertissement sous la forme de message d'erreur. Ceci peut vous servir pour avertir de la non-réalisation du bloc.
Dans notre exemple si le paramètre est vide une erreur s'affiche.
Voici le résultat du déclenchement
IV-B-8. DéfinirChamp▲
Définit la valeur d'un champ sur le résultat d'une expression.
Dans l'exemple suivant, le champ Société est modifié par la valeur de la zone de saisie sur l'enregistrement répondant aux critères de la clause.
IV-B-9. DéfinirVarLocale▲
Cette action crée ou modifie une variable Locale.
IV-B-10. ExécuterMacroDonnées▲
Cette action appelle une macro de Données enregistrée dans votre application.
IV-B-11. QuitterPourChaqueEnregistrement▲
Cette action termine l'action PourChaqueEnregistrement.
IV-B-12. SetReturnVar▲
Définit une variable qui renvoie la valeur à la macro appelante.
Dans notre exemple, nous retournons l'ID du nouvel enregistrement.
Dans un premier temps, nous créons une macro de données qui retournera l'ID :
Maintenant nous allons appeler cette macro de données depuis une Vue :
Ci-dessous le résultat :
IV-B-13. SupprimerEnregistrement▲
Cette action supprime l'enregistrement défini par un bloc (Expression).
Dans l'exemple, on supprime l'enregistrement correspondant à la société passée en paramètre.
V. Macro Au démarrage▲
Ces macros s'exécutent au démarrage de l'application. L'ensemble des actions disponibles de cette partie sont identiques à la partie Macro.
VI. Merci▲
Merci à Claude Leloup pour la relecture orthographique.