Microsoft Access 2003. Perfectionnement



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

SOMMAIRE. Travailler avec les requêtes... 3

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

MODE OPERATOIRE OPENOFFICE BASE

SQL Historique

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Utiliser une base de données

TABLEAU CROISE DYNAMIQUE

Cours Access 1) INTRODUCTION AU SGBD...4 2) LES TABLES...4

Créer une base de données

Gestion des bases de données (2 e partie)

Objectifs du TP : Initiation à Access

1. Introduction Création d'une requête...2

Les bases de données

EXCEL TUTORIEL 2012/2013

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Le langage SQL Rappels

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

LibreOffice Calc : introduction aux tableaux croisés dynamiques

TD3 - Facturation avec archivage automatisé

Langage SQL : créer et interroger une base

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Créer le schéma relationnel d une base de données ACCESS

Excel avancé. Frédéric Gava (MCF)

1 Introduction et installation

Le Langage SQL version Oracle

Access 2010 Entraînement 1 Garage Renault Dossier 24 MCD

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Publipostage avec Calc

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Access 2007 FF Access FR FR Base

Le Langage De Description De Données(LDD)

MEDIAplus elearning. version 6.6

SUPPORT DE COURS ACCESS 2010

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

PHP 5. La base de données MySql. A. Belaïd 1

F0RMAT I0N BUREAUTIQUE

La Clé informatique. Formation Excel XP Aide-mémoire

Tune Sweeper Manuel de l'utilisateur

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Université Ibn Zohr Excel Résume de cours

Introduction aux SGBDR et en particulier à

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

GUIDE Excel (version débutante) Version 2013

Création de Sous-Formulaires

Les bases de données Page 1 / 8

FileMaker 13. Guide de référence SQL

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Bases de données élémentaires Maude Manouvrier

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

UTILISATION DE MS/ACCESS (Introduction)

EXCEL PERFECTIONNEMENT CALCULS AVANCES

COURS BARDON - ACCESS 2010

Utiliser Access ou Excel pour gérer vos données

Excel 2007 Niveau 3 Page 1

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Encryptions, compression et partitionnement des données

Cours 1 : introduction

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

MySQL / SQL EXEMPLES

Traitement des données avec Microsoft EXCEL 2010

16H Cours / 18H TD / 20H TP

Utilisation de la clé USB et autres supports de stockages amovibles

INTRODUCTION : Données structurées et accès simplifié

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

LE TABLEUR OPENOFFICE CALC : CONTRÔLES DE FORMULAIRES ACCÈS AUX BASES DE DONNÉES

Mémo d'utilisation de BD Dico1.6

Comptabilité - USR. Logiciel : Comptabilité USR - Version 2,16 Documentation réalisée par JJ Gorge Trésorier Tir à l'arc le 04/04/ / 15

Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010

Les BASES de DONNEES dans WampServer

Bases de données relationnelles

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

Création d'un questionnaire (sondage)

Symantec Enterprise Vault

Parcours FOAD Formation EXCEL 2010

Administration du site (Back Office)

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Guide de démarrage rapide

Dossier I Découverte de Base d Open Office

Alain DI MAGGIO Mise à jour sur le site 11/01/10

REPUBLIQUE TUNISIENNE MINISTERE DE L EDUCATION ET DE LA FORMATION. 4 ème année de l enseignement secondaire Section : Economie et Gestion.

Didacticiel PowerAMC 11.0 MPD

CATALOGUE DES FORMATIONS

Le modèle de données

Cyberclasse L'interface web pas à pas

Transcription:

Perfectionnement

TABLE DES MATIERES QU EST-CE QU UNE BASE DE DONNEES?... 1 QU EST-CE QUE ACCESS?... 1 RAPPEL SUR LA STRUCTURE D'UNE TABLE.... 2 QU'EST-CE QU'UNE CLE PRIMAIRE?... 2 QU'EST-CE QU'UN INDEX?... 2 LE SCHEMA RELATIONNEL... 3 1. LES RELATIONS 1-1 (UN A UN)... 3 2. LES RELATIONS 1-N (UN A PLUSIEURS)... 3 3. LES RELATIONS N-N (PLUSIEURS A PLUSIEURS)... 4 COMMENT LIER DES TABLES... 6 QU'EST-CE QUE L'INTEGRITE REFERENTIELLE... 7 DEFINITIONS :... 7 MISES A JOUR ET SUPPRESSIONS EN CASCADE... 8 TYPES DE JOINTURE... 9 LES REQUETES....10 REQUETE SELECTION... 10 REQUETES ACTION.... 10 REQUETES PARAMETREES... 10 REQUETES ANALYSE CROISEE... 10 REQUETES SQL... 10 CREER UNE REQUETE SELECTION....11 EN MODE CREATION.... 11 A L'AIDE DE L'ASSISTANT... 13 CALCUL DE TOTAUX DANS UNE REQUETE.... 15 CREER UN CHAMP CALCULE DANS UNE REQUETE.... 16 CREER UNE REQUETE AJOUT....17 CREER UNE REQUETE MISE A JOUR....20 CREER UNE REQUETE SUPPRESSION....23 CREER UNE REQUETE CREATION DE TABLE....26

CREER UNE REQUETE PARAMETREE....29 REQUETES ANALYSE CROISEE....31 EN MODE CREATION.... 31 A L'AIDE DE L'ASSISTANT... 34 REQUETES SQL....38 QU'EST-CE QUE SQL?... 40 COMMENT EST STRUCTURE SQL?... 40 LES MOTS-CLES DU LANGAGE SQL.... 40 LES OPERATEURS DE CALCUL SQL.... 41 OPERATEURS DE CONDITION DE RECHERCHE.... 41 LES CARACTERES GENERIQUES.... 41 L'OPERATEUR INTO.... 42 LES PREDICATS ALL, DISTINCT, DISTINCTROW, TOP.... 42 SYNTAXE DES INSTRUCTIONS SQL.... 42 QUELQUES EXEMPLES SQL....43 LES MACROS...45 CREER UNE MACRO....45 MACRO SIMPLE.... 45 PLUSIEURS ACTIONS DANS UNE MEME MACRO.... 47 LE GROUPE DE MACROS... 48 LA MACRO CONDITIONNELLE... 50 EXEMPLES DE CONDITIONS DE MACRO... 52

Définitions Qu est-ce qu une base de données? Une base de données est un ensemble de tables dans lequel se trouvent des informations. En général, chaque table contient des informations de même nature. Usuellement abrégée en BD, BDD ou SGBDR, elle est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données). Une base de données se traduit physiquement par un ensemble de fichiers présent sur une mémoire de masse (bien souvent un disque dur). Qu est-ce que Access? Microsoft Access ou MS Access (officiellement Microsoft Office Access) est un système de gestion de base de données relationnelles édité par Microsoft. MS Access fait partie de la suite bureautique MS Office Pro. MS Access est donc un SGBDR présentant une approche bureautique et n'est pas conçu pour supporter de très grandes bases de données opérationnelles sur de vastes réseaux, ces utilisations étant confiées dans la gamme Microsoft à Microsoft SQL Server. Une base de données Access ne peut dépasser deux Gigaoctets. MS Access est un logiciel utilisant des fichiers au format Access (mdb - Microsoft DataBase). Il est compatible avec les requêtes SQL (sous certaines restrictions) et dispose d'une interface graphique pour saisir les requêtes (QBE - Query By Example). Il permet aussi de configurer, avec des assistants ou librement, des formulaires et sous-formulaires de saisie, des états imprimables, (avec regroupements de données selon divers critères et des totalisations, sous-totalisations, conditionnelles ou non), des pages html liées aux données d'une base, des macros et des modules VBA. Les onglets d'access se subdivisent en 7 parties. Passons en revue les principaux. La table reprend les informations brutes (non traitées): les enregistrements et les champs. Le Formulaire permet d'afficher les tables et les requêtes d'une manière agréable. La requête permet diverses mises en forme des tables : le tri, le filtre, afficher ou non des données, etc. L'état permet d'imprimer des données de tables et de requêtes avec si nécessaire des regroupements et des calculs. Les macros permettent d'exécuter des fonctions à partir de requêtes ou de formulaires. Nous ne rentrerons pas dans la programmation d'access dans cette formation mais utiliserons ces fonctions pour créer un formulaire d'entrée. La Page permet de créer des pages Internet pour accéder à la base de données. 1

Définitions Rappel sur la structure d'une table. Une table est une collection de données relatives à un sujet spécifique tel qu'un produit ou des fournisseurs. L'utilisation d'une table distincte pour chaque sujet signifie que vous ne stockez ces données qu'une fois. Ceci renforce l'efficacité de votre base de données et réduit les erreurs de saisie. Organisation des données dans les tables. Dans une table, les données sont organisées en lignes et en colonnes. Chaque ligne représente un Enregistrement et chaque colonne représente un Champ. Champ Enregistrement Qu'est-ce qu'une clé primaire? Dans une base de données relationnelle, une clé primaire est une contrainte d'unicité qui permet d'identifier de manière unique un enregistrement dans une table. Une clé primaire peut être composée d'un ou de plusieurs champs de la table. Deux lignes distinctes de la table ne peuvent pas avoir les mêmes valeurs pour les champs définis au niveau de la clé primaire. Il est possible de définir pour une même table plusieurs contraintes d'unicité, mais au plus une seule clé primaire. Il n'est pas nécessaire de définir un index sur les colonnes définissant la clé primaire, car un index implicite est associé à la clé primaire. Qu'est-ce qu'un index? Fonctionnalité qui accélère la recherche et le tri dans une table basée sur des valeurs clés et qui peut garantir l'unicité des lignes d'une table. La clé primaire d'une table est automatiquement indexée. Certains champs ne peuvent pas être indexés en raison du type de données qu'ils contiennent. 2

Microsoft Access Le schéma relationnel Le schéma relationnel Dans le processus de création d'une base de données, l'établissement du schéma relationnel de la base de données représente l'étape fondamentale. Il est inutile d'aller plus loin, et de se ruer sur l'ordinateur, tant que cette étape n'est pas parfaitement maîtrisée. Dans une base de données relationnelle, les relations permettent d'empêcher les données redondantes Définition : Le schéma relationnel est une manière de modéliser les relations (liens) qui existent entre plusieurs tables ou entités. Exemple de schéma relationnel Il prévoit 3 différents types de relations entres les tables 1. Les relations 1-1 (un à un) Dans deux tables A et B de relation 1-1, un élément de la table A se rapporte seulement à un élément de la table B. et inversement, un élément de la table B se rapporte à un seul élément de la table A. Exemple : Un individu possède un seul numéro de sécurité sociale Un numéro de sécurité sociale appartient à un seul individu Il s'agit d'une relation de type 1-1 (un à un). Dans le cas d'une relation 1-1 il n'est pas nécessaire de créer plusieurs tables. Nous placerons les informations dans la même table, sur la même ligne, et dans des colonnes adjacentes. D'une manière générale, nous placerons dans la même table les données qui sont en relation 1-1 entre elles Code Nom Prénom N de sécu 2. Les relations 1-N (un à plusieurs) 1 Dutilleul Alain 52197156841 2 Lamartine Julie 78523491158 3 Legrand Richard 74235941217 4 Table Personnes Dans deux tables A et B de relation 1-N, un élément de la table A se rapporte à un ou plusieurs éléments de la table B et inversement un élément de la table B se rapporte à un et un seul élément de la table A. 3

Microsoft Access Le schéma relationnel Exemple : Un individu est employé dans une seule entreprise Une entreprise emploie plusieurs individus Il s'agit d'une relation de type 1-N (un à plusieurs) entre la table "Personnes" et la table "Entreprises". Si nous plaçons le nom de l'entreprise dans la même table que le nom de la personne, nous créons une redondance (Nom de l'entreprise) chaque fois que nous ajoutons un individu qui travaille dans la même entreprise. Nous placerons donc les personnes et les entreprises dans des tables distinctes. D'une manière générale, chaque fois que nous rencontrerons une nouvelle relation 1-N, nous créerons une nouvelle table. En pratique, nous attribuerons un code à chaque entreprise, et nous utiliserons ce code dans la table "Personnes". On dit alors que le champ du code de l'entreprise intégré dans la table "Personnes" est une clé étrangère. La clé étrangère se situe toujours du côté plusieurs de la relation. Code Nom Prénom N de sécu N 1 Dutilleul Alain 52197156841 E2 2 Lamartine Julie 78523491158 E3 3 Legrand Richard 74235941217 E2 4 Table personnes N Nom entreprise E1 E2 E3 E4 Plomberie du nord CIE des eaux SNCF Table entreprises On constate que Dutilleul Alain et Legrand Richard travaille dans la même entreprise (CIE des eaux) 3. Les relations N-N (plusieurs à plusieurs) Clé étrangère Dans deux tables A et B de relation N-N, un élément de la table A se rapporte à un ou plusieurs éléments de la table B et un élément de la table B se rapporte à un ou plusieurs éléments de la table A. Exemple : Un individu peut être employé par plusieurs entreprises Une entreprise emploie plusieurs individus Il s'agit d'une relation de type N-N (plusieurs à plusieurs) entre la table "Personnes" et la table "Entreprises". Nous nous trouvons alors face à une relation qui semble être de type 1-N dans les deux sens. Pour gérer une telle relation, il faut créer une table supplémentaire dans laquelle les clés primaires de chacune des tables constitueront les relations entre la table "Personnes" et la table "Entreprises". Il s'agit d'une table que l'on nomme table de jonction. 4

Microsoft Access Le schéma relationnel Une relation N-N peut donc être décomposée en deux relations 1-N D'une manière générale, toute relation N-N peut être scindée en deux relations 1-N en introduisant une table supplémentaire appelée table de jonction. Code Nom Prénom 1 Dutilleul Alain 2 Lamartine Julie 3 Legrand Richard 4 Table personnes Code N 2 E1 3 E2 2 E3 3 E2 Table de jonction N Nom entreprise E1 Plomberie du nord E2 CIE des eaux E3 SNCF E4 Table entreprises On constate que Lamartine Julie travaille pour les entreprises Plomberie du nord et la SNCF, tandis que Legrand Richard travaille pour la CIE des eaux et la SNCF 5

Microsoft Access Liaison des tables Comment lier des tables Une fois vos tables créées, cliquer sur le bouton "Relations" dans la barre d'outils. La fenêtre des tables s'affiche. Sélectionner une table, cliquer sur "Ajouter" pour l'insérer dans l'écran "Relations", puis cliquer sur "Fermer". 6

Microsoft Access Liaison des tables Pour lier les deux tables, cliquer sur le champ de la première table puis faites le glisser sur le champ commun aux deux tables de la seconde table. L'écran suivant apparaît Cet écran nous permet de modifier et d'affiner la relation entre les deux tables. Access reconnait automatiquement le type de relation défini Qu'est-ce que l'intégrité référentielle Définitions : L'intégrité référentielle s'assure que les règles induites par les relations entre les enregistrements des tables d'une base de données sont bien respectées et que vous ne supprimez pas ou ne modifiez pas accidentellement des données associées. Vous pouvez définir une intégrité référentielle lorsque l'ensemble des conditions suivantes sont réunies : Le champ correspondant de la table est une clé primaire ou il comporte un index unique. Les champs associés comportent le même type de données. Il y a deux exceptions. Un champ NuméroAuto peut être mis en relation avec un champ Numéro dont la propriété TailleChamp a pour valeur Entier long, et un champ NuméroAuto dont la propriété TailleChamp a pour valeur ID réplication peut être mis en relation avec un champ Numéro dont la propriété TailleChamp a pour valeur ID réplication. Les deux tables appartiennent à la même base de données Microsoft Access. Si les tables sont liées, elles doivent être au format Microsoft Access et vous devez ouvrir la base de données dans laquelle elles sont stockées afin de définir l'intégrité référentielle. L'intégrité référentielle ne peut pas être mise en œuvre pour les tables liées à partir de bases de données dans d'autres formats. 7

Microsoft Access Liaison des tables Les règles suivantes s'appliquent pour l'utilisation de l'intégrité référentielle : Vous ne pouvez pas entrer une valeur dans le champ de clé primaire d'une table associée qui ne figure pas dans la clé primaire de la table primaire. Toutefois, vous pouvez entrer une valeur indéfinie dans la clé primaire, en indiquant que les enregistrements ne sont pas en relation. Par exemple, une commande ne peut pas être affectée à un client qui n'existe pas mais elle peut être affectée à une personne par l'indication d'une valeur indéfinie dans le champ IDClient. Vous ne pouvez pas supprimer un enregistrement d'une table primaire si l'enregistrement correspondant existe dans une table mise en relation. Par exemple, vous ne pouvez pas supprimer un dossier d'employé dans la table Employés si des commandes sont affectées à cet employé dans la Commandes. Vous ne pouvez pas modifier une valeur de clé primaire dans la table primaire si cet enregistrement comporte des enregistrements liés. Par exemple, vous ne pouvez pas modifier supprimer un ID d'employé dans la table Employés si des commandes sont affectées à cet employé dans la table Commandes. Mises à jour et suppressions en cascade Pour les relations dans lesquelles une intégrité référentielle est mise en œuvre, vous pouvez indiquer si vous souhaitez que Access procède automatiquement à des mises à jour et à des suppressions en cascade d'enregistrements liés. Si vous définissez ces options, les opérations de suppression et de mise à jour qui seraient normalement empêchées par les règles d'intégrité référentielle sont autorisées. Lorsque vous supprimez des enregistrements ou modifiez des valeurs de clé primaire dans une table primaire, Access apporte les modifications nécessaires aux tables liées afin de préserver l'intégrité référentielle. Si vous activez la case à cocher Mettre à jour en cascade les champs correspondants lors de la définition d'une relation, chaque fois que vous modifiez la clé primaire d'un enregistrement dans la table primaire, Access met automatiquement à jour la clé primaire à l'aide de la nouvelle valeur de tous les enregistrements liés. Par exemple, si vous modifiez l'id d'un client dans la table Clients, le champ IDClient de la table Commandes est automatiquement mis à jour pour toutes les commandes de client de sorte que la relation n'est pas rompue. REMARQUE : Si la clé primaire de la table primaire est un champ NuméroAuto, l'activation de la case à cocher Mettre à jour en cascade les champs correspondants n'aura aucun effet car vous ne pouvez pas modifier la valeur du champ NuméroAuto. Si vous sélectionnez la case à cocher Effacer en cascade les enregistrements correspondants lors de la définition d'une relation, chaque fois que vous supprimez des enregistrements dans la table primaire, Microsoft Access supprime automatiquement les enregistrements liés dans la table associée. Par exemple, si vous supprimez un client dans la table Clients, toutes les commandes de ce client sont automatiquement supprimées dans la table Commandes. Lorsque vous supprimez des enregistrements à partir d'un formulaire ou d'une feuille de données alors que la case à cocher Effacer en cascade les enregistrements correspondants est sélectionnée, Access vous avertit que les enregistrements liés peuvent également être supprimés. Toutefois, lorsque vous supprimez des enregistrements à l'aide d'une requête de suppression, Access supprime automatiquement les enregistrements des tables liées sans afficher d'avertissement. 8

Microsoft Access Liaison des tables Types de jointure Il existe trois types de jointure : Option 1 définit une jointure interne. Une jointure interne est une jointure dans laquelle les enregistrements des deux tables sont combinés dans les résultats d'une requête uniquement si les valeurs des champs joints répondent à une condition donnée. Dans une requête, la jointure par défaut est une jointure interne qui sélectionne des enregistrements uniquement si les valeurs des champs joints correspondent. Option 2 définit une jointure externe gauche. Une jointure externe gauche est une jointure dans laquelle tous les enregistrements du côté gauche de l'opération LEFT JOIN dans l'instruction SQL de la requête sont ajoutés aux résultats de la requête, même si aucune valeur correspondante ne figure dans le champ joint de la table située à droite. Option 3 définit une jointure externe droite. Une jointure externe droite est une jointure dans laquelle tous les enregistrements du côté droit de l'opération RIGHT JOIN dans l'instruction SQL de la requête sont ajoutés aux résultats de la requête, même si aucune valeur correspondante ne figure dans le champ joint de la table située à gauche. Une fois vos paramètres définis, cliquer sur "Créer". 9

. Une requête est un ensemble d'instructions utilisé pour manipuler des données. En plus de renvoyer des résultats (qui peuvent être ensuite triés, regroupés ou filtrés), une requête permet également de créer, copier, supprimer ou modifier des données. Elle est liée à une ou plusieurs table(s). La requête utilise le langage SQL (Structured Query Language). Microsoft Access propose différents types de requêtes. Requête Sélection La requête Sélection est le type de requête le plus courant. Elle récupère des données contenues dans une ou plusieurs tables et affiche les résultats sous la forme d'une feuille de données. Vous pouvez également utiliser une requête Sélection pour regrouper des enregistrements et calculer une somme, une moyenne ou effectuer un comptage ou tout autre type d'opération. Requêtes Action. Il existe quatre types de requêtes Action : 1. Ajout : requête qui ajoute les enregistrements du jeu de résultats d'une requête à la fin d'une table existante. 2. Mise à jour : requête qui modifie un jeu d'enregistrements en fonction des critères (conditions de recherche) spécifiés. 3. Suppression : requête qui supprime d'une ou de plusieurs tables les lignes qui correspondent aux critères spécifiés. 4. Création de table : Crée une table en reprenant totalement ou partiellement les données d'autres tables. À l'exception des requêtes Création de table, les requêtes action changent les données des tables sur lesquelles elles reposent. Requêtes paramétrées Une requête paramétrée est une requête qui, lors de son exécution, affiche une boîte de dialogue qui vous invite à entrer des informations, telles que des critères pour extraire des enregistrements ou une valeur à insérer dans un champ. Vous pouvez configurer cette requête afin qu'elle vous invite à entrer plusieurs informations. Requêtes Analyse croisée Analyse croisée permettent de calculer et de restructurer des données afin d'en faciliter l'analyse. Ces requêtes calculent une somme, une moyenne, un nombre ou tout autre type de total pour des données regroupées en deux types d'informations, dont l'un est situé à gauche de la feuille de données et l'autre, en haut. Requêtes SQL Requête créée à l'aide d'une instruction SQL. Le langage SQL (Structured Query Language) permet d'interroger, de mettre à jour et de gérer des bases de données relationnelles telles que Microsoft Access. 10

Créer une requête sélection. En mode Création. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode Création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête, puis cliquer sur "Ajouter". Vous pouvez ajouter plusieurs tables ou requêtes. La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. 11

Une fois la table ou la requête ajoutée, cliquer sur "Fermer" dans la fenêtre "Afficher la table". Pour insérer le(s) champ(s) de la table dans la requête, faire glisser le champ dans la grille ou double cliquer dessus. Cliquer sur le bouton de la barre d'outils pour enregistrer la requête. La requête peut être exécutée en cliquant sur le bouton de la barre d'outils ou sur le menu "Requête" option "Exécuter". 12

A l'aide de l'assistant. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête à l'aide de l'assistant ". Après avoir sélectionné la table ou la requête, passer les champs dans la colonne "Champs sélectionnés". Cliquer sur "Suivant". 13

Nommer le formulaire, cocher l'option "Ouvrir la requête pour afficher les informations". Cliquer sur "Terminer". La requête est exécutée et s'affiche à l'écran. 14

Pour afficher les différentes vues d'une requête, cliquer sur la flèche en regard du bouton barre d'outils ou sur le menu "Affichage". de la Calcul de totaux dans une requête. En mode création, cliquer sur le bouton "Totaux" La ligne "Opération" s'affiche dans la grille de création. de la barre d'outils. Pour chaque champ à calculer de la grille de création, cliquer sur sa cellule dans la ligne "Opération", puis sélectionner l'une des fonctions de regroupement proposées. 15

Créer un champ calculé dans une requête. Il est possible de créer un champ qui affiche les résultats définis dans une expression ou qui manipule les valeurs d'un champ. En mode création, taper une expression dans une cellule vide de la ligne "Champ". Si l'expression contient un nom de champ, ce dernier doit être placé entre crochet [ ]. Champ : [Prix HT] *1,196 Une fois validé, Microsoft Access entre le nom de champ par défaut "ExprN" où N correspond à un entier dont la valeur augmente pour chaque nouveau champ d'expression de la requête. Ce nom correspond à l'en-tête de colonne. Champ : Expr1: [Prix HT] *1,196 Sélectionner "ExprN" et taper un nom de champ plus descriptif. Exemple : Prix TTC. Si l'expression contient une ou plusieurs fonctions d'agrégation (Somme, Moyenne, etc ) et que la grille de création comporte un ou plusieurs autres champs à utiliser pour le regroupement, afficher la ligne "Opération" en cliquant sur "Totaux" Dans le champ calculé, sélectionner l'option "Expression". Champ : Nom Produit Table : T_Produits Opération : Regroupement dans la barre d'outils. Prix TTC:(Somme ([Prix HT]) +Somme ([Frais de port]))*1,196 Expression 16

Créer une requête Ajout. Créer une table vierge avec uniquement les champs. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête contenant les enregistrements à recopier, puis cliquer sur "Ajouter". La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. Cliquer sur "Fermer" dans la fenêtre "Afficher la table". 17

Cliquer sur la flèche en regard de l'icône type de requête "Requête Ajout ". de la barre d'outils, puis sur l'option Dans le champ "Nom de la table" de la fenêtre "Ajout", sélectionner la table contenant les enregistrements à recopier. Cliquer sur "OK". 18

La fenêtre "Requête Ajout" apparaît. Double cliquer sur les champs à recopier afin de les insérer dans la grille de création, puis dans la cellule "ajouter à" sélectionner le champ associé dans lequel copier l'enregistrement dans la nouvelle table. Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage" Pour revenir en mode création de requête, cliquer sur le bouton "Affichage" de la barre d'outils. de la barre d'outils. Enregistrer la requête, puis cliquer sur le bouton exécuter de la barre d'outils. Un message d'avertissement s'affiche. Cliquer sur "Oui" pour ajouter les enregistrements dans la nouvelle table. 19

Créer une requête Mise à jour. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête contenant les enregistrements à recopier, puis cliquer sur "Ajouter". La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. Cliquer sur "Fermer" dans la fenêtre "Afficher la table". 20

Cliquer sur la flèche en regard de l'icône type de requête "Requête Mise à jour". de la barre d'outils, puis sur l'option La fenêtre "Requête Mise à jour" apparaît. Double cliquer sur les champs à modifier afin de les insérer dans la grille de création, puis dans la cellule "Mise à jour" taper l'expression ou la valeur à utiliser pour mettre à jour les données. Le nom du champ doit être saisi entre crochet [ ]. Exemple : pour multiplier les données du champ "Valeur" par 2 taper : [Valeur]*2. Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage" Pour revenir en mode création de requête, cliquer sur le bouton "Affichage" de la barre d'outils. de la barre d'outils. 21

Enregistrer la requête, puis cliquer sur le bouton exécuter de la barre d'outils. Un message d'avertissement s'affiche. Cliquer sur "OK" pour modifier les enregistrements dans la table. 22

Créer une requête Suppression. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête contenant les enregistrements à supprimer, puis cliquer sur "Ajouter". La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. Cliquer sur "Fermer" dans la fenêtre "Afficher la table". 23

Cliquer sur la flèche en regard de l'icône type de requête "Requête Suppression". de la barre d'outils, puis sur l'option La fenêtre "Requête Suppression" apparaît. Double cliquer sur les champs de la table pour les insérer dans la grille de création de la requête. L'intitulé "A partir de" s'affiche si l'astérisque ( ) est sélectionné (supprime tous les enregistrements). Pour spécifier des critères de suppression d'enregistrements, insérer les champs à utiliser pour la définition des critères (supprime les enregistrements correspondant aux critères). L'intitulé "Où" s'affiche. Définir ensuite le(s) critère(s) de suppression dans la cellule "Critères". 24

Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage" Pour revenir en mode création de requête, cliquer sur le bouton "Affichage" de la barre d'outils. de la barre d'outils. Enregistrer la requête, puis cliquer sur le bouton exécuter de la barre d'outils. Un message d'avertissement s'affiche. Attention : Une fois supprimé à l'aide d'une requête suppression, il n'est plus possible d'annuler l'opération. Les enregistrements ne peuvent plus être récupérés. Il est fortement conseillé de faire une copie de sauvegarde des tables. Cliquer sur "Oui" pour supprimer les enregistrements de la table. 25

Créer une requête Création de table. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête contenant les enregistrements à recopier, puis cliquer sur "Ajouter". La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. Cliquer sur "Fermer" dans la fenêtre "Afficher la table". 26

Cliquer sur la flèche en regard de l'icône type de requête "Requête Création de table ". de la barre d'outils, puis sur l'option Saisir le nom de la nouvelle table dans la fenêtre "Création de table". Cliquer sur "OK". La fenêtre "Requête Création" apparaît. Double cliquer sur les champs à transférer afin de les insérer dans la grille de création. 27

Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage" Pour revenir en mode création de requête, cliquer sur le bouton "Affichage" de la barre d'outils. de la barre d'outils. Enregistrer la requête, puis cliquer sur le bouton exécuter de la barre d'outils. Un message d'avertissement s'affiche. Cliquer sur "Oui" pour créer et copier les enregistrements dans la nouvelle table. 28

Créer une requête paramétrée. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode Création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête, puis cliquer sur "Ajouter". Vous pouvez ajouter plusieurs tables ou requêtes. La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. 29

Une fois la table ou la requête ajoutée, cliquer sur "Fermer" dans la fenêtre "Afficher la table". Pour insérer le(s) champ(s) de la table dans la requête, faire glisser le champ dans la grille ou double cliquer dessus. Dans la cellule "Critères" du champ à renseigner, taper la phrase à afficher dans la boîte de dialogue entre crochet [ ]. Exemple : [Entrez la date de début.] Cliquer sur le bouton de la barre d'outils pour enregistrer la requête. La requête peut être exécutée en cliquant sur le bouton de la barre d'outils ou sur le menu "Requête" option "Exécuter". Lors de l'exécution, une boîte de dialogue qui vous invite à renseigner un champ s'affiche. Entrer une valeur puis, cliquer sur "OK". 30

Requêtes Analyse croisée. En mode création. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". Dans la fenêtre "Afficher la Table", sélectionner la table ou la requête contenant les enregistrements à recopier, puis cliquer sur "Ajouter". La table ou la requête ajoutée apparaît alors dans la fenêtre de la requête en création. Cliquer sur "Fermer" dans la fenêtre "Afficher la table". 31

Cliquer sur la flèche en regard de l'icône type de requête "Analyse croisée". de la barre d'outils, puis sur l'option La fenêtre "Requête Création" apparaît. Double cliquer sur les champs afin de les insérer dans la grille de création. Dans les lignes "Opération" et "Analyse" de la grille de création, sélectionner les fonctions nécessaire à l'analyse. "En-tête de ligne" représente les enregistrements en ligne de la requête analyse croisée. "En-tête de colonne" représente les champs de chaque colonne de la requête analyse croisée. "Valeur" représente les données relatives aux en-têtes de ligne et de colonne. 32

Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage" Pour revenir en mode création de requête, cliquer sur le bouton "Affichage" de la barre d'outils. de la barre d'outils. Enregistrer la requête, puis cliquer sur le bouton exécuter de la barre d'outils. 33

A l'aide de l'assistant. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis sur "Nouveau". Dans la fenêtre "Nouvelle requête", sélectionner "Assistant Requête analyse croisée". Cliquer sur "OK". 34

Sélectionner la table ou la requête contenant les données à analyser. Cliquer sur "Suivant". Sélectionner le(s) champ(s) à afficher en en-têtes de ligne. Le champ sélectionné s'affiche en en-tête de ligne dans l'exemple de la fenêtre. Cliquer sur "Suivant". 35

Sélectionner le champ à afficher en en-têtes de colonne. Le champ sélectionné s'affiche en en-tête de colonne dans l'exemple de la fenêtre. Cliquer sur "suivant". Sélectionner le champ à afficher en intersection de lignes et de colonnes. Définir ensuite le type de calcul pour l'analyse. Le champ sélectionné s'affiche dans la zone valeur dans l'exemple de la fenêtre. Cliquer sur "Suivant". 36

Saisir le nom de la requête. Cliquer sur "Terminer". 37

Requêtes SQL. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Requêtes" puis double cliquer sur "Créer une requête en mode création". La fenêtre "Requête Sélection" s'affiche. Sans ajouter de tables, cliquer sur "Fermer" dans la fenêtre "Afficher la table". 38

Cliquer sur le menu "Requête" option "Spécifique SQL" puis "Définition de données". Une requête spécifique est une requête qui ne peut être créée qu'avec une instruction SQL. La fenêtre "Définition des données" dans laquelle la requête sera saisie s'affiche. 39

Qu'est-ce que SQL? Le Sigle SQL signifie Structured Query Language ou Langage d'interrogation Structuré. Développé il y a plus de 30 ans par le laboratoire de recherche d'ibm, il est reconnu comme norme officielle de langage de requête relationnelle par l'institut ANSI (American National Standards Institute) Et par l'organisme ISO (Organisation internationale de normalisation). Plusieurs versions de SQL existent et ont été certifiées. Comment est structuré SQL? Le SQL classique est structuré en deux jeux principaux d'instructions. Le DDL : Data Definition Language ou Langage de Définition des Données est utilisé principalement pour créer, modifier des tables et définir des contraintes. Le DML : Data Manipulation Language ou Langage de Manipulation des données est le langage d'interrogation. Il est utilisé pour afficher les données sous la forme d'une feuille de données. Il existe d'autres jeux d'instructions SQL comme le TCL (Transaction Control Language, Langage de Contrôle des Transactions) et le DCL (Data Control Language Langage de contrôle de données), mais ils ne seront pas traités ici. Les mots-clés du langage SQL. Instructions DML SELECT FROM WHERE GROUP BY HAVING ORDER BY AS Description Sélectionne les champs des tables. Indique le nom des tables. Indique les critères de sélection. Indique les regroupements. Indique des critères de sélection sur le résultat du regroupement. Indique des critères de tri. Permet d'utiliser un alias en lieu et place du nom d'un champ. Instructions DDL INSERT UPDATE DELETE CREATE ALTER DROP Description Insert de nouvelles lignes (Enregistrements) dans une table. Met à jour les champs. Supprime des lignes (Enregistrements). Crée des tables, des index. Modifie la structure d'une table. Supprime une table. 40

Les opérateurs de calcul SQL. Opérateurs SQL AVG COUNT MAX MIN SUM Description Effectue la moyenne d'un groupe de valeurs. Compte les éléments d'un groupe. Donne la valeur maximale d'un groupe. Donne la valeur minimale d'un groupe. Effectue la somme d'un groupe de valeurs. Opérateurs de condition de recherche. Ils sont utilisés dans la clause "WHERE" de la requête SQL. Opérateurs AND ASC DESC IN IS LIKE NOT OR BETWEEN And EXISTS Description Opérateur logique qui associe plusieurs conditions et implique qu'elles soient toutes vrai. Effectue un tri croissant (par défaut). Effectue un tri décroissant. Effectue une comparaison dans une liste donnée. Effectue une comparaison Effectue une comparaison de type chaîne. Opérateur logique qui évalue la condition contraire. Opérateur logique qui associe plusieurs conditions et implique qu'au moins une soit vrai. Détermine si une valeur entre dans une plage de valeurs spécifiée. Test le résultat d'une sous-requête. Les opérateurs standard de condition recherche sont : Opérateurs Description = Egal. < > Différent de. > Supérieur à. < Inférieur à. > = Supérieur ou égal à. < = Inférieur ou égal à. Les caractères génériques. Ils sont utilisés avec l'opérateur de comparaison "LIKE" pour définir les critères de recherche. Caractères Description * Remplace plusieurs caractères.? Remplace un caractère. # Remplace un chiffre. Attention : Pour afficher un enregistrement contenant un caractère générique, mettre ce dernier entre crochet [ ]. Exemple : Like D*[?]* (Affiche les enregistrements commençant par la lettre D et contenant un point d'interrogation). 41

L'opérateur INTO. Il s'utilise avec les opérateurs SELECT et INSERT. Avec l'opérateur SELECT, il permet de créer une nouvelle table et d'y recopier les champs et enregistrements spécifiés. Syntaxe : SELECT champ1, champ2, etc.... INTO nouvelle_table [IN base_de_données_externe] FROM source; Avec l'opérateur INSERT, il permet d'ajouter un ou plusieurs enregistrements à une table. Syntaxe : INSERT INTO cible (champ1, champ2, etc....) [IN base_de_données_externe] SELECT source.champ1, source.champ2, etc.... FROM source; Les prédicats ALL, DISTINCT, DISTINCTROW, TOP. Il s'utilise avec l'opérateur SELECT. Spécifie les enregistrements sélectionnés à l'aide de requêtes SQL. Prédicats ALL DISTINCT DISTINCTROW TOP Descriptions sélectionne tous les enregistrements qui remplissent les conditions contenues dans l'instruction SQL. Omet les enregistrements qui contiennent des données en double dans les champs sélectionnés. Omet les données basées sur des enregistrements entièrement en double, pas uniquement des champs en double. Renvoie un certain nombre d'enregistrements qui se situent à l'extrémité supérieure ou inférieure d'une plage spécifiée par une clause ORDER BY. Note : Si aucun prédicat n'est spécifié, l'instruction ALL est utilisée par défaut. Syntaxe des instructions SQL. SELECT champ1, champ2, champ3, FROM nomtable1, nomtable2, WHERE condition de recherche GROUP BY champ1, champ2, HAVING condition recherche après le regroupement ORDER BY champ1, champ2, DESC; 42

Quelques exemples SQL. Afficher uniquement les champs Nom et Prénom de la table Clients. SELECT Nom, Prénom FROM Clients; Afficher tous les enregistrements de la table Clients. SELECT * FROM Clients; Afficher la moyenne des salaires de la table Clients. SELECT AVG (Salaire) FROM Clients; Afficher tous les enregistrements de la table Clients regroupés par Ville. SELECT Ville FROM Clients GROUP BY Ville; Compter le nombre de clients par Ville de la table Clients. SELECT Ville, COUNT (Ville) FROM Clients GROUP BY Ville; Trier les enregistrements de la table Clients par ordre décroissant. SELECT * FROM Clients ORDER BY Nom DESC, Prénom; Utiliser un alias. SELECT SUM (Salaire) AS [Total des Salaires] FROM Clients; Afficher les enregistrements de la table Clients dont la ville est Lyon. SELECT * FROM Clients WHERE Ville = 'Lyon'; Afficher les enregistrements de la table Clients dont la commande est comprise entre 10 000 et 25 000 SELECT * FROM Clients WHERE Commande BETWEEN 10000 AND 25000; Afficher les enregistrements de la table Clients sauf ceux dont la commande est égale à15 000, 19 000 et 28000 SELECT * FROM Clients WHERE Commande NOT IN (15000, 19000, 28000); Afficher les enregistrements de la table Clients dont la ville est Lyon ou Paris. SELECT * FROM Clients WHERE Ville = 'Lyon' OR Ville='Paris'; Afficher les enregistrements dont le nom commence par une lettre particulière. SELECT * FROM Clients WHERE Nom LIKE 'D*'; Afficher les enregistrements dont la somme des commandes par ville est supérieure à 35000. SELECT Ville, SUM (Commande) FROM Clients GROUP BY Ville HAVING SUM (Commande)>35000; 43

Utiliser une requête imbriquée dans une autre requête. SELECT * FROM Clients WHERE Commande > (SELECT AVG (Commande) FROM Clients); SELECT Nom, Prénom FROM Clients WHERE Commande IN (SELECT AVG (Commande) FROM Clients); Tester le résultat d'une sous requête. SELECT * FROM Clients WHERE EXISTS (SELECT Commande FROM Clients WHERE Ville ='Lyon'); Afficher la liste des noms de clients sans doublons. SELECT DISTINCT Nom FROM Clients; Affiche les doublons de la table Clients (Affiche les enregistrements dont le nom et le prénom sont identiques) SELECT Clients.[Nom], Clients.[Prénom], Clients.[Mail] FROM Clients WHERE (((Clients.[Nom]) In (SELECT [Nom] FROM [Clients] As Tmp GROUP BY [Nom],[Prénom] HAVING Count(*)>1 And [Prénom] = [Clients].[Prénom]))) ORDER BY Clients.[Nom], Clients.[Prénom]; Affiche le nom des 30 meilleurs clients. SELECT TOP 30 Nom, Prénom FROM Clients ORDER BY Commande DESC; Supprimer un groupe d'enregistrements. DELETE * FROM Clients WHERE Ville = 'Bordeaux'; Supprimer une table de la base de données. DROP TABLE Clients; Insérer des enregistrements dans une table. INSERT INTO Table2 (Nom, Prénom) SELECT Clients.Nom, Clients.Prénom FROM Clients; Copier une table avec l'ensemble de ses enregistrements. SELECT * INTO Clients_2 FROM Clients; Mettre à jour les enregistrements d'une table. UPDATE Produits SET PTTC = [Prix hors taxe]* '1,196'; 44

Les macros Les macros Une macro est un ensemble composé d'une ou plusieurs actions qui effectue une opération particulière. Elle permet d'automatiser les taches les plus courantes et les plus répétitives. Il existe trois types de macro : La macro simple : Exécute une action simple. Le groupe de macros : Composé de macros apparentées stockées ensemble sous un nom unique. La macro conditionnelle : Exécute une action en fonction d'une condition. Créer une macro. Macro simple. Dans la colonne "Objets" de la fenêtre "Base de données", cliquer sur "Macros" puis cliquer sur "Nouveau". Dans la fenêtre de création, cliquer sur la flèche à droite du champ de la colonne "Action". Puis sélectionner une action dans la liste. 45

Les macros 46

Les macros Vous pouvez ensuite associer la macro à l'évènement d'un objet du formulaire. Plusieurs actions dans une même macro. Le tableau de la fenêtre "Macros" contient plusieurs lignes, ce qui nous permet d'exécuter plusieurs actions les unes à la suite des autres dans la même macro. Après avoir cliqué sur "Nouveau" dans la fenêtre "Macros", ajouter l'action "Boîte de message" (BoîteMsg) sur la première ligne. 47

Les macros Une fois les arguments de l'action définis, ajouter l'action "Ouvrir Formulaire" sur la ligne suivante. Pour terminer, enregistrer la macro A l'exécution de cette macro, Access effectue l'action indiquée dans la colonne action ainsi que toutes les actions qui suivent immédiatement. Le groupe de macros Un groupe de macros est une collection de macros liées qui sont stockées ensemble sous un nom de macro unique. Si vous utilisez un grand nombre de macros, regroupez les macros qui ont un lien entre elles dans des groupes de macros afin faciliter la gestion de votre base de données. Pour nommer une macro dans un groupe de macros, il est nécessaire que la colonne Nom de macro soit affichée. Une fois votre macro ouverte en mode création, cliquer sur le menu "Affichage" et cocher l'option "Noms de macro" 48

Les macros La fenêtre suivante apparaît Saisir un nom de macro dans la première ligne, puis luis attribuer une action. Une fois les arguments de la première macro définis, saisir un second nom de macro à la ligne suivante, puis lui attribuer également une action. Pour terminer, enregistrer la macro Le nom qui apparaît dans la colonne Nom de macro identifie chaque macro. 49

Les macros Lorsque vous exécutez une macro dans un groupe de macros, Access effectue l'action indiquée dans la colonne action ainsi que toutes les actions qui suivent immédiatement et dont la colonne Nom de macro est vide. Vous pouvez exécuter la macro d'un groupe de macros dans un événement en saisissant le nom du groupe de macros suivi d'un point puis du nom de la macro. Syntaxe : Nom_du_groupe_de_Macro.Nom_de_la_Macro Exemple : Macro1.Ouvrir_Formulaire La macro conditionnelle Une macro conditionnelle, est une macro dont les actions sont exécutées uniquement si la condition préalablement définie est vérifiée. Une condition est une expression logique qui s'évalue à Vrai/Faux ou à Oui/Non. La macro suit des chemins différents selon que la condition est vraie ou fausse. Pour insérer une condition dans une macro, il est nécessaire que la colonne Conditions soit affichée. Une fois votre macro ouverte en mode création, cliquer sur le menu "Affichage" et cocher l'option "Conditions". La fenêtre suivante apparaît 50

Les macros 1. Sur la première ligne, saisir le nom de la macro "Message" 2. Dans la colonne condition saisir [N de sécu] Est Null 3. Dans la colonne action choisir "Boîte de message" (BoiteMsg) dont les arguments sont les suivants: 3.1. Message : La saisie du numéro de sécurité sociale est obligatoire. 3.2. Bip : Oui 3.3. Type : Point d'exclamation 3.4. Titre : saisie obligatoire 4. Dans la colonne condition de la ligne suivante, taper trois points ( ), puis dans colonne Action choisir "AnnulerEvènement". 5. Dans la colonne condition de la ligne suivante, taper à nouveau trois points ( ), puis dans la colonne Action choisir "AtteindreContrôle" dont l'argument "Nom contrôle" est le nom du champ [N de Sécu]" (Champ dans lequel le curseur doit rester en cas d'erreur). Enregistrer la macro 51

Les macros Maintenant il faut associer cette macro à l'évènement "Avant Maj" du formulaire et/ou dans l'évènement "Sur sortie" du champ [N de Sécu]. Explication : Sur la première ligne la condition si le numéro de sécu est vide, on affiche le message d'erreur. Ensuite, pour indiquer que les autres actions que l'on va faire vont se dérouler dans le cas où l'erreur s'est produite, on va mettre comme condition " ", autrement dit, à chaque fois qu'access va rencontrer comme condition " ", il va reprendre la condition spécifiée explicitement plus haut. Donc, après avoir affiché l'erreur, on va exécuter l'action "AnnulerEvénement". Après avoir modifié le formulaire, Access va mettre à jour les champs correspondants dans la table lié à ce formulaire. Juste avant de faire la mise à jour des champs correspondants, Access va appeler la macro associée à l évènement "AvantMAJ" du formulaire. La macro va être exécutée et annulera la mise à jour des données dans la table. L action "AnnulerEvènement" annule la mise à jour. Enfin, on va déplacer le curseur sur le contrôle "N de sécu" grâce à l'action "AtteindreContrôle", ainsi le curseur clignotera directement sur le contrôle où l utilisateur devra saisir le numéro de sécurité sociale. D'une manière générale, lors de l'exécution de la macro, Access évalue la première expression conditionnelle. Si la condition est vraie, il exécute l'action qui se trouve sur cette ligne ainsi que toutes les actions qui suivent directement cette ligne et qui sont précédées de trois points de suspension (...) dans la colonne Condition. Access exécute ensuite toutes les autres actions de la macro dont la colonne Condition est vide jusqu'à ce qu'elle atteigne une autre expression, un nom de macro ou la fin de la macro. Si la condition est fausse, Access ignore l'action ainsi que toutes les actions qui suivent directement cette ligne et qui sont précédées de points de suspension (...) dans la colonne Condition et passe à la ligne d'action suivante qui contient une autre condition ou une colonne Condition vide. Exemples de conditions de macro Vous pouvez utiliser toute expression qui s'évalue à Vrai/Faux ou à Oui/Non dans une condition de macro. La macro est exécutée si la condition s'évalue à Vrai (ou à Oui). Conseil Pour qu'access ignore provisoirement une action, saisissez Faux comme condition. Ignorer temporairement une action peut être utile lorsque vous essayez de résoudre un problème dans une macro. [Ville]="Paris" UTILISEZ CETTE EXPRESSION CompteDom("[RéfCommande]", "Commandes")>35 POUR EXECUTER L'ACTION SI Paris est la valeur de Ville dans le champ du formulaire à partir duquel la macro a été exécutée. Il existe plus de 35 entrées dans le champ RéfCommande de la table Commandes. 52

Les macros CompteDom("*", " Détails Commandes ", "[RéfCommande]=Forms![Commandes]![RéfCom mande]")>3 [DateEnvoi] Entre #2-Fév-2001# Et #2-Mar-2001# Il existe plus de trois entrées dans la table Détails Commandes pour lesquelles le champ RéfCommande de la table correspond au champ RéfCommande du formulaire Commandes. La valeur du champ DateEnvoi du formulaire à partir duquel la macro est exécutée n'est pas antérieure au 2-Fév-2001 ni postérieure au 2- Mar-2001. Forms![Produits]![UnitésEnStock]<5 EstNull([Prénom]) [Pays]="Royaume-Uni" Et Forms![Total des ventes]![commandes cumulées]>100 [Pays] En ("France", "Italie", "Espagne") Et Nbcar([Code postal])<>5 BoîteMsg ("Confirmer modifications?",1) = 1 La valeur du champ UnitésEnStock du formulaire Produits est inférieure à 5. La valeur de Prénom sur le formulaire à partir duquel la macro est exécutée est Null ((il n'a pas de valeur). Cette expression est équivalente à [Prénom] Est Null. La valeur du champ Pays sur le formulaire à partir duquel la macro est exécutée est «Royaume-Uni», et la valeur du champ Commandes cumulées sur le formulaire Total des ventes est supérieure à 100. La valeur du champ Pays sur le formulaire à partir duquel la macro s'exécute est France, Italie ou Espagne et le Code postal ne dépasse pas cinq caractères. Vous cliquez sur OK dans une boîte de dialogue où la fonction BoîteMsg affiche «Confirmer modifications?». Si vous cliquez sur Annuler dans la boîte de dialogue, Microsoft Access ignore l'action. 53