Microsoft Access 2003

publicité
Microsoft Access 2003
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
Microsoft Access 2003
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.
Saint-Val G.
1
Microsoft Access 2003
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.
Saint-Val G.
2
Le schéma relationnel
Microsoft Access
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
1
2
3
4
Nom
Dutilleul
Lamartine
Legrand
Prénom
Alain
Julie
Richard
N° de sécu
52197156841
78523491158
74235941217
Table Personnes
2. Les relations 1-N (un à plusieurs)
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.
Saint-Val G.
3
Le schéma relationnel
Microsoft Access
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.
Clé étrangère
Code
Nom
1
Dutilleul
2
Lamartine
3
Legrand
4
Prénom
Alain
Julie
Richard
N° de sécu
52197156841
78523491158
74235941217
Table personnes
N°
E2
E3
E2
N°
E1
E2
E3
E4
Nom entreprise
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)
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.
Saint-Val G.
4
Le schéma relationnel
Microsoft Access
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°
E1
E2
E3
E4
Nom entreprise
Plomberie du nord
CIE des eaux
SNCF
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
Saint-Val G.
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".
Saint-Val G.
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.
Saint-Val G.
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.
Saint-Val G.
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".
Saint-Val G.
9
Les requêtes
Microsoft Access 2003
Les requêtes.
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).
S
La requête utilise le langage SQL ( tructured
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. Les requêtes Ajout : requête qui ajoute les enregistrements du jeu de résultats d'une requête à
la fin d'une table existante.
2. Les requêtes Mise à jour : requête qui modifie un jeu d'enregistrements en fonction des
critères (conditions de recherche) spécifiés.
3. Les requêtes Suppression : requête qui supprime d'une ou de plusieurs tables les lignes qui
correspondent aux critères spécifiés.
4. Les requêtes 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
Les requêtes 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.
Saint-Val G.
10
Microsoft Access 2003
Les requêtes
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.
Saint-Val G.
11
Les requêtes
Microsoft Access 2003
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
"Requête" option "Exécuter".
Saint-Val G.
de la barre d'outils ou sur le menu
12
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
13
Microsoft Access 2003
Les requêtes
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.
Saint-Val G.
14
Les requêtes
Microsoft Access 2003
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"
de la barre d'outils.
La ligne "Opération" s'affiche dans la grille de création.
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.
Saint-Val G.
15
Les requêtes
Microsoft Access 2003
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 la barre d'outils.
Dans le champ calculé, sélectionner l'option "Expression".
Champ : Nom Produit
Table : T_Produits
Opération : Regroupement
Saint-Val G.
Prix TTC:(Somme ([Prix HT]) +Somme ([Frais de port]))*1,196
Expression
16
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
17
Microsoft Access 2003
Cliquer sur la flèche en regard de l'icône type de requête
"Requête Ajout…".
Les requêtes
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".
Saint-Val G.
18
Les requêtes
Microsoft Access 2003
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"
de la barre d'outils.
Pour revenir en mode création de requête, cliquer sur le bouton "Affichage"
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.
Saint-Val G.
19
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
20
Les requêtes
Microsoft Access 2003
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"
de la barre d'outils.
Pour revenir en mode création de requête, cliquer sur le bouton "Affichage"
de la barre d'outils.
Saint-Val G.
21
Les requêtes
Microsoft Access 2003
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.
Saint-Val G.
22
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
23
Les requêtes
Microsoft Access 2003
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".
Saint-Val G.
24
Les requêtes
Microsoft Access 2003
Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage"
de la barre d'outils.
Pour revenir en mode création de requête, cliquer sur le bouton "Affichage"
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.
Saint-Val G.
25
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
26
Les requêtes
Microsoft Access 2003
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.
Saint-Val G.
27
Les requêtes
Microsoft Access 2003
Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage"
de la barre d'outils.
Pour revenir en mode création de requête, cliquer sur le bouton "Affichage"
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.
Saint-Val G.
28
Microsoft Access 2003
Les requêtes
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.
Saint-Val G.
29
Les requêtes
Microsoft Access 2003
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
"Requête" option "Exécuter".
de la barre d'outils ou sur le menu
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".
Saint-Val G.
30
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
31
Les requêtes
Microsoft Access 2003
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.
Saint-Val G.
32
Les requêtes
Microsoft Access 2003
Pour afficher les résultats de la requête, cliquer sur le bouton "Affichage"
de la barre d'outils.
Pour revenir en mode création de requête, cliquer sur le bouton "Affichage"
de la barre d'outils.
Enregistrer la requête, puis cliquer sur le bouton exécuter
Saint-Val G.
de la barre d'outils.
33
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
34
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
35
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
36
Microsoft Access 2003
Les requêtes
Saisir le nom de la requête.
Cliquer sur "Terminer".
Saint-Val G.
37
Microsoft Access 2003
Les requêtes
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".
Saint-Val G.
38
Microsoft Access 2003
Les requêtes
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.
Saint-Val G.
39
Les requêtes
Microsoft Access 2003
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
Description
SELECT
Sélectionne les champs des tables.
FROM
Indique le nom des tables.
WHERE
Indique les critères de sélection.
GROUP BY
Indique les regroupements.
HAVING
Indique des critères de sélection sur le résultat du regroupement.
ORDER BY
Indique des critères de tri.
AS
Permet d'utiliser un alias en lieu et place du nom d'un champ.
Instructions DDL
Description
INSERT
Insert de nouvelles lignes (Enregistrements) dans une table.
UPDATE
Met à jour les champs.
DELETE
Supprime des lignes (Enregistrements).
CREATE
Crée des tables, des index.
ALTER
Modifie la structure d'une table.
DROP
Supprime une table.
Saint-Val G.
40
Les requêtes
Microsoft Access 2003
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).
Saint-Val G.
41
Microsoft Access 2003
Les requêtes
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;
Saint-Val G.
42
Microsoft Access 2003
Les requêtes
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;
Saint-Val G.
43
Microsoft Access 2003
Les requêtes
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';
Saint-Val G.
44
Microsoft Access 2003
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.
Saint-Val G.
45
Microsoft Access 2003
Saint-Val G.
Les macros
46
Microsoft Access 2003
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.
Saint-Val G.
47
Microsoft Access 2003
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"
Saint-Val G.
48
Microsoft Access 2003
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.
Saint-Val G.
49
Microsoft Access 2003
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
Saint-Val G.
50
Microsoft Access 2003
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
Saint-Val G.
51
Microsoft Access 2003
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.
UTILISEZ CETTE EXPRESSION
POUR EXECUTER L'ACTION SI
[Ville]="Paris"
Paris est la valeur de Ville dans le champ du
formulaire à partir duquel la macro a été
exécutée.
CompteDom("[RéfCommande]",
"Commandes")>35
Il existe plus de 35 entrées dans le champ
RéfCommande de la table Commandes.
Saint-Val G.
52
Microsoft Access 2003
Les macros
Il existe plus de trois entrées dans la table
CompteDom("*", " Détails Commandes ",
Détails Commandes pour lesquelles le champ
"[RéfCommande]=Forms![Commandes]![RéfCom
RéfCommande de la table correspond au champ
mande]")>3
RéfCommande du formulaire Commandes.
La valeur du champ DateEnvoi du formulaire à
partir duquel la macro est exécutée n'est pas
[DateEnvoi] Entre #2-Fév-2001# Et #2-Mar-2001#
antérieure au 2-Fév-2001 ni postérieure au 2Mar-2001.
Forms![Produits]![UnitésEnStock]<5
La valeur du champ UnitésEnStock du formulaire
Produits est inférieure à 5.
EstNull([Prénom])
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.
[Pays]="Royaume-Uni" Et Forms![Total des
ventes]![Commandes cumulées]>100
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.
[Pays] En ("France", "Italie", "Espagne") Et
Nbcar([Code postal])<>5
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.
BoîteMsg ("Confirmer modifications ?" ,1) = 1
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.
Saint-Val G.
53
Téléchargement