Tutoriel - Access - Cas PAPETIERE
Tutoriel - Access - Cas PAPETIERE
Tutoriel - Access - Cas PAPETIERE
ACCESS
A/ Quels sont les renseignements dont j’aurai besoin? La réponse à cette question va déterminer les champs à
définir pour la table.
Votre mission (si vous l'acceptez) va consister à créer la table CLIENT appartenant à la base de données
PAPETIERE.MDB
2) Sélectionnez le type de
données en cliquant sur le
bouton « liste
déroulante »
3) Sélectionnez la taille du
champ en cliquant sur le bouton
« liste déroulante » pour les
champs de type numérique
OU Saisissez le nombre de
caractères pour les champs de
type texte
« Mode création »:
* Si la table client est fermée, sélectionnez celle-ci dans la fenêtre « Base de données » et cliquez sur le
bouton « modifier » :
1) Sélectionner la table
CLIENT
2) Le mode de paiement étant une donnée répétitive, vous allez codifier ce champ (il est plus rapide de saisir un
code plutôt qu’une expression du type « CHEQUE A RECEPTION ») on va donc insérer un nouveau champ :
CODEREG juste avant le champ PAIEMENT :
* Pour insérer un champ : on sélectionne la ligne avant laquelle on veut insérer le champ (ici on
sélectionne la ligne PAIEMENT)
3) Mettez à jour le contenu du champ CODEREG pour les cinq enregistrements saisis précédemment :
Basculez en mode feuille de données et saisissez une valeur comprise entre 1 et 5 dans le champ CODEREG.
4) Le champ PAIEMENT est maintenant devenu superflu, aussi vous allez le supprimer :
Sélectionnez le champ PAIEMENT
Cliquez sur le menu Edition - supprimer ligne
Informations
LE FORMAT D’AFFICHAGE
Le format d'un champ définit la manière dont doivent être présentées les données. On peut utiliser dans
certains cas des formats prédéfinis ou alors personnaliser son format (pour les formats prédéfinis faites donc
des essais!!!)
Exemples de formats personnalisés (à définir dans la propriété FORMAT de la table en mode création :
LES REGLES DE VALIDATION limitent les valeurs que doit prendre le champ et permettent donc un
contrôle de saisie
ACTIVITE
Paramétrez les propriétés de certains champs de la table CLIENT en tenant compte des indications ci-dessous
4) Vous allez vérifier les formats et les règles de validation en saisissant les cinq enregistrements suivants de la
table CLIENT :
Code NOMCLI ADRCLI code VILLEC COD PAIEMENT ENCOURS PLAFON
client postal LI ERE CLI DCLI
G
00006 Mécanord ZAC les 59450 SIN LE 3 60 jours fin de 269 000.00 280000
Epis NOBLE mois F
00007 Le soleil de 125, place 59500 DOUAI 4 90 jours fin de 29 600.00 F 50000
Tunis du Barlet mois
00008 Joue Club 356, rue de 59500 DOUAI 4 90 jours fin de 176 200.00 190000
Bellain mois F
00009 Micropuce 147, rue de 59500 DOUAI 3 60 jours fin de 72 350.00 F 95000
Paris mois
00010 Centre 15, rue de 59187 DECHY 3 60 jours fin de 294 150.00 310000
français de Saint mois F
restauration Sulpice
Basculez en mode Feuille de données et effectuez la saisie.
1) La saisie directe dans la table client n’est pas agréable, aussi vous allez créer un formulaire de saisie que vous
appellerez :
Saisie modification des clients
Mode opératoire :
- Fermez la table CLIENTS,
- Dans la fenêtre base de données, sélectionnez l’objet
- Cliquez sur le bouton Nouveau
2) Vous allez saisir les sept derniers enregistrements de la table CLIENT en utilisant le formulaire précédent :
LE THEME
Vous devez compléter la base de données de la société PAPETIERE en créant les tables
- REGLEMENT,
- CATEGORIE de produits,
- PRODUIT.
Vous devrez créer les formulaires de saisie correspondants afin de saisir les données.
Le contenu des tables à créer est le suivant
REGLEMENT CATEGORIE
CODEREG MODEREG CODECAT LIBELLECAT
1 cheque a reception ACC Accessoires
2 30 jours fin de mois fournitures
3 60 jours fin de mois MOB Mobilier petit
4 90 jours fin de mois matériel
5 cheque a 60 jours OUV Ouvrages
PAP Papeterie
PRODUIT
CODEART DESIGNART TVAART PUHT CODECAT
1 Transparents photocopieurs/10 19.60% 30.00 F ACC
2 Transparents manuels/10 19.60% 13.50 F ACC
3 Stylo à transparents effaçables 19.60% 7.50 F ACC
4 Stylo à transparents permanents 19.60% 7.50 F ACC
5 Boîtes de disquettes 3,5''/10 19.60% 35.00 F MOB
6 Boîte de CD-R 74 mn/10 19.60% 99.00 F MOB
7 Boîte de CD-RW /10 19.60% 152.00 F MOB
8 Calulatrice scientifique Cazio 19.60% 225.00 F MOB
9 Calculette Euro 19.60% 27.00 F MOB
10 Ramette papier multi usages 19.60% 45.00 F PAP
11 Papier qualité photo /20 19.60% 58.00 F PAP
12 Support mural pour moniteur 19.60% 352.00 F MOB
13 Filtre anti-reflet pour moniteur 19.60% 159.00 F MOB
14 Créer un site avec Front Page 5.50% 125.00 F OUV
15 Programmation en javascript 5.50% 250.00 F OUV
16 Les grandes courants du management 5.50% 75.00 F OUV
17 Le mémento du comptable débutant 5.50% 226.00 F OUV
18 WebCam Sauni 19.60% 467.00 F MOB
19 Kit de reconnaissance vocale pour PC 19.60% 450.00 F MOB
ACTIVITE
2) table CATEGORIE
b) Créez un formulaire de saisie des catégories de produits, le nom du formulaire est « Saisie des catégories
de produits »
3) Table PRODUIT
b) Créez le formulaire de saisie des produits (nom du formulaire : Saisie des produits)
Une requête paramétrée est une requête nécessitant l’entrée d’une valeur (d’un paramètre) par l’utilisateur au
moment de l’éxécution de la requête.
Dans l’exemple du 8 ACCESS demandera à l’utilisateur d’entrée la valeur du paramètre CODE PRODUIT
RECHERCHE pour afficher le résultat de la requête.
Mode opératoire :
Créez une nouvelle requête fondée sur la table PRODUIT
Cliquez dans le menu Requête - Paramétre
Visualisez le résultat de la requête : vous devez entrer un n° de produit (entre 1 et 19), par exemple 10
I. CONNAISSANCES PREALABLES
Au cours des étapes précédentes, vous avez créé la table PRODUIT et CATEGORIE. Ces deux tables peuvent
être mises en relation car une catégorie de produits comprend plusieurs produits ou encore un produit
appartient à une seule catégorie de produits.
Pour qu’il y ait relation entre deux tables, il faut que les deux tables comportent un champ commun.
Par exemple les relations entre les 2 tables apparaissent comme suit dans ACCESS et ont pour champ commun
CODECAT :
Clé primaire
Relation
Clé étrangère
La table CATEGORIE comporte comme champ CODECAT qui constitue la clé primaire.
La table produit comporte également le champ CODE CAT car chaque produit appartient à une catégorie. On dit
que ce champ constitue la clé étrangère de la table PRODUIT.
La mise en relation de tables évite la redondance d’informations : par exemple le champ LIBELLECAT n’a pas
à figurer dans la table PRODUIT car à partir d’un numéro de produit donné on connait le codecat qui lui-même
nous permettra de connaître, grâce à la relation, le libellé de la catégorie.
II. Application
Vous allez mettre en relation la table produit et la table catégorie
Remarque : pour déplacer les tables à l’écran pointez le titre de la table et faites glisser.
4. Créez la relation en faisant glisser le champ CODECAT de la table CATEGORIE (côté
UN) vers le champ CODECAT de la table PRODUITS (côté PLUSIEURS) (Cf schéma ci-
dessus). La boîte de dialogue suivante apparaît :
Remarques :
a) L’intégrité référentielle signifie qu’un code catégorie saisi dans la table PRODUIT doit avoir été au préalable
saisi dans la table CATEGORIE. Inversement, si on essaie de supprimer une catégorie donnée de produits (dans
la table catégorie) alors qu’il existe des produits appartenant à cette catégorie, ACCESS refusera de supprimer la
catégorie concernée.
Pour créer des relations UN à PLUSIEURS on doit obligatoirement cocher la case Appliquer l’intégrité
référentielle
b) La case « Mettre à jour en cascade les champs correspondants », lorsqu’elle est cochée, permet de changer
automatiquement les valeurs du champ clé étrangère de la table côté plusieurs lorsqu’on modifie la valeur
correspondante de
la clé primaire côté un. Pour cela, la case « appliquer l’intégrité référentielle doit être cochée »
c) La case « Effacer en cascade les enregistrements correspondants », lorsqu’elle est cochée, permet de supprimer
les enregistrements de la table côté Plusieurs dont la clé étrangère fait référence à une valeur de clé primaire
dans la table côté Un que l’on a effacé. En d’autres termes, si on supprime une Catégorie de produit donnée dans
la table catégorie, tous les produits de la catégorie donnée seront effacées en cascade. Pour utiliser cette option, il
faut « appliquer l’intégrité référentielle ».
5. Pour avoir une représentation concrète de la relation établie entre les tables CATEGORIE et PRODUIT,
ouvrez la table CATEGORIE (côté 1) en mode feuille de données :
ACCESS a ajouté à gauche une colonne supplémentaire contenant des symboles +. Ce symbole indique la
présence d’enregistrements liés. Un clic sur l’un de ces symboles ouvre les enregistrements liés, cela donne pour
la catégorie OUV :
Créez le formulaire « 2 Saisie/modification des produits », ce formulaire est fondé sur la requête nommée
« Requête formulaire produits » et doit être réalisée avec l’assistant. A un moment donné l’assistant propose de
choisir entre un affichage par CATEGORIE ou un affichage par PRODUIT :
Choisissez par PRODUIT de manière à avoir un tri des données par produit plutôt que par catégorie.
Choisissez une présentation permettant un affichage par produit (par exemple la présentation
« Justifié ») et un style (selon votre goût).
Saisissez le titre du formulaire : « 2 Saisie/Modification du formulaire ».
Pour terminer, ouvrez le formulaire en mode formulaire (choix par défaut proposé dans le dernier
assistant).
Vous devez obtenir ceci :
C/ Modification du formulaire
Vous allez effectuer des modifications dans la présentation du formulaire « 2 – Saisie/Modification des
produits », en particulier en remplaçant le contrôle CODECAT par un bouton liste modifiable :
Résultat à obtenir au final :
QUELQUES PRECISIONS :
Le formulaire « 2 Saisie Modification/des produits » se présente comme suit en mode création :
Etiquettes
Zone de texte
La grille permet d’ajuster la position des
éléments à l’écran. Cette grille n’apparait
pas en mode formulaire
Pour déplacer une zone de texte et l’étiquette associée, on pointe la bordure et on fait glisser (le pointeur
prend la forme d’une main : )
Pour déplacer un des deux éléments, on pointe le coin supérieur gauche du contrôle (Le curseur prend la
forme d’un doigt )
Pour supprimer un contrôle on le sélectionne et on appuie sur la touche Suppr.
Remarque : la suppression d’une zone de texte n’entraine aucunement la suppression du champ de la table ou
requête source.
ACTIVITE :
Sélectionnez les étiquette et zone de texte CODECAT et supprimez les
Créez un bouton liste déroulante en cliquant sur le bouton « Liste modifiable » de la barre d’outils « Boîte
à outils » (si celle-ci n’est pas affichée : sélectionnez le menu Affichage – Barres d’outils … - Boîte à outils).
Le pointeur prend la forme d’une croix avec un petit rectangle
Ajoutez et alignez le champ CODECAT à la place du contrôle CODECAT que vous venez de supprimer
Réduisez la largeur de la colonne contenant le code cat et élargissez celle du libellé cat
Décochez cette case (voir remarque ci-après)
Remarque : Comme le champ LIBELLECAT est déjà affiché dans le formulaire, on doit ici afficher le champ
CODECAT, c’est pourquoi, il faut décocher la case à « Colonne clé cachée ». Si l’affichage de la clé n’était pas
important pour l’utilisateur, on aurait pu simplement afficher le LIBELLECAT (et laisser la case cochée)
La valeur utilisable est CODECAT :
Ici on vous demande en fait quelle valeur vous souhaitez afficher.
Comme on souhaite afficher la valeur du CODECAT, on sélectionne
ce champ
La valeur choisie est à stocker dans le champ CODECAT (de la table PRODUIT) :
Il ne reste plus qu’à positionner correctement les étiquette et zone de liste modifiable CODECAT correctement
sur la grille
Testez le formulaire (cliquez sur le bouton Affichage - mode formulaire)
Saisissez l’enregistrement suivant :
20 Tout sur Merise 2 - 5,50% - 120 F - catégorie : ouvrage
On sélectionne le contrôle
Les Etats
Alors qu’un formulaire permet l’affichage à l’écran, un état permet d’imprimer des données soit sous forme de
fiches soit sous forme de tableau.
On veut imprimer le catalogue des produits classés par code croissant et connaître le nombre de références pour
chaque catégorie
Entête d’ETAT
CATALOGUE DES PRODUITS
Date : 20/11/2001
Entête de page
COMMENTAIRE :
Les sections sont hiérarchisées
La section Entête d’ETAT apparaît une seule fois sur la 1ère page de l’état et la section Pied d’état apparaît à
la fin de l’état en dernière page
Les sections Entête et Pied de page apparaissent sur chaque page : en entête on indique généralement les
étiquettes de champs
Les sections entêtes et pieds de groupe permettent de regrouper plusieurs enregistrements par catégorie (dans
l’exemple le regroupement se fait par Libellé de catégorie - La première catégorie est « Accessoires
Fournitures » qui regroupe 6 enregistrements.
La section détail est le niveau de base : Dans l’exemple la section Détail contient les enregistrements relatifs
aux produits.
ACTIVITES :
1. Créez, à l’aide de l’assistant Etat, l’Etat « CATALOGUE DES PRODUITS » fondée sur la requête
« Requête formulaire produits » :
Revenez dans la fenêtre Base de données
Sélectionnez l’objet Etat
Cliquez sur l’onglet Nouveau
Etape 1 : Dans la liste des tables et requêtes, sélectionnez la requête « Requête formulaire des produits »
Etape 3 : Il est possible déterminer un sous-niveau de regroupement (on pourrait par exemple demander un
regroupement par taux de TVA)
Les options de synthèse permettent de calculer des sommes, des moyennes… sur des champs numériques. Dans
l’application présente, elles ne présentent aucun sens (on ne va pas additionner des taux de TVA ou des prix
unitaires).
Etape 7 : Saisissez le titre de l’état : CATALOGUE DES PRODUITS puis cliquez sur le bouton Terminer
1. Modification de l’Etat
On aimerait avoir pour chaque groupe de produits le nombre de produits du groupe. Pour cela il faut afficher la
section « Pied de groupe », puis y inclure un contrôle zone de texte contenant une formule de calcul.
a) Afficher un pied de groupe :
Basculer en mode création
Menu Affichage – Trier et grouper
On voudrait réaliser un Etat « Liste des clients » classé par code client. Les champs à prévoir sont :
CODECLI, NOMCLI, RUECLI, CPCLI, VILLECLI, CODEREG, LIBELLEREG, ENCOURSCLI, PLAFONDCLI
Cet état sera fondé sur la requête « Requête formulaire clients » créée dans l’application non guidée facultative
Les dirigeants de la société Papetière souhaiteraient maintenant gérer les commandes des clients.
Vous allez donc élaborer la structure des tables nécessaires et réaliser un formulaire de saisie des commandes.
ANALYSE DU PROBLEME :
Examinez le bon de commande ci-dessous :
LIGNECOMMANDE La clé primaire est composée du numéro de comande ET d’un code produit. Car la
quantité commandée dépend à la fois du N° de commande et du code produit. On pourra
NO COM+CODEPROD ainsi établir une relation (jointure) entre :
DATECOM la table COMMANDE et la table LIGNE COMMANDE
QTESCOM et
La table LIGNE COMMANDE et PRODUIT
ACTIVITES PRATIQUES
Un clic sur ce symbole et il est alors possible de visualiser les enregistrements de la table liée LIGNE
COMMANDE ou d’ajouter, comme vous allez le faire des enregistrements :
REMARQUE : Dans la table liée le chmp NOCOM qui sert de lien entre les deux tables n’est pas affiché. En fait,
ce champ se met à jour automatiquement.
1. IV. LE COIN DES AMATEURS : CREATION D’UN FORMULAIRE AVEC UN SOUS FORMULAIRE
Vous avez pu apprécier la facilité avec laquelle on saisit une commande directement dans les tables (SIC). Vous
allez créer un formulaire de saisie des commandes. Ce formulaire va comprendre les champs de la table
COMMANDE et un sous-formulaire incluant les champs de la table LIGNE COMMANDE.
MODE OPERATOIRE :
En faisant glisser le pied de formulaire vers le bas, vous pouvez agrandir le formulaire
4. Agrandissez la taille du formulaire
Insertion du sous-formulaire
7. Fermez le formulaire
L’une permettant la saisie de la date de commande et l’affichage de l’identité et l’adresse du client. Cette
requête servira pour le formulaire principal
Dans le menu affichage vérifiez que l’option soit cochée (cette option est
très importante lorsqu’on créée des requêtes multitables
Faites glisser les champs utiles (dans l’ordre d’apparition dans le formulaire)
La liste des champs et les tables sources sont indiquées ci-après :
Ces 3 champs seront mis à jour à chaque nouvelle commande. Les autres champs ne sont affichés qu’à titre
d’information et de contrôle
Formatez les deux champs calculés en Monétaire – 2 Décimales (Sélection du champ puis clic sur le bouton
Propriétés)
Visualisez le résultat de la requête en cliquant sur le bouton Affichage – Mode Feuille de données
Fermez la requête et enregistrez la sous le nom CORPS BC
Il ne reste plus qu’à inclure le sous-formulaire contenant les lignes de chaque commande :
En mode création de formulaire, augmentez la taille du formulaire :
Sélectionnez ensuite la requête source (soit CORPS BC) et sélectionnez tous les champs.
Il faut ensuite indiquer à l’assistant quel est le champ permettant de lier le formulaire principal (contenant en
fait l’entête du bon de commande) avec le sous-formulaire (en fait les lignes de commande) :
REMARQUES :
Lorsque le formulaire et le sous-formulaire sont fondés sur des tables et que des relations ont été établies
entre les tables sur la base de clés primaires et étrangères, ACCESS sait automatiquement déterminer le
champ qui sert de liaison entre le formulaire et le sous-formulaire. En revanche, lorsque le formulaire
et/ou le sous-formulaire sont fondés sur des requêtes, il faut définir soi-même le champ de liaison.
Le champ NOCOM du formulaire principal est appelé champ Père et le champ NOCOM du sous-
formulaire est appelé champ Fils :
Un Père a 1 ou plusieurs Fils mais un Fils n’a qu’1 seul Père. Dans l’exemple, en effet, une commande
(identifié par un numéro de commande unique) comporte plusieurs lignes (chaque ligne est identifiée par un
numéro de commande ET un numéro de produit)
Donnez un nom significatif au sous-formulaire avant de terminer la création du sous-formulaire :
ATTENTION : Cette partie devient très technique. vous pouvez la contourner en saisissant les bons de
commande de l’annexe 1 en utilisant le formulaire « Saisie des commandes »
Commencez d’abord par enregistrer le Formulaire « Saisie des commandes » sous le nom « Saisie des commandes
2 ». Enregistrez ensuite le sous-formulaire « Articles en commande » sous le nom « Articles en commande 2 »
(Dans la fenêtre Base de données, sélectionnez l’objet Formulaire et cliquez sur Modifier. Puis Fichier
enregistrer sous.). Fermez ensuite tous les formulaires.
Pour mettre des sous-totaux dans le formulaire principal deux étapes sont à suivre :
- Mettre les sous totaux dans le pied de page du sous-Formulaire
- Mettre une formule dans le pied de page du formulaire principal.
Procédez de même pour les champs TOT TVA et TOT TTC (à paramétrer comme suit :)
Etiquette
Visualisez le formulaire Saisie des commandes 2 : les totaux concernent toutes les lignes de toutes les
commandes :
Affichez le Formulaire pour verifier l’affichage, en mode creation, vous pouvez élargir la taille de la zone de liste
pour améliorer l’affichage :
CONNAISSANCES DE BASE
Les requêtes action permettent de modifier les données dans les tables alors que les requêtes sélection et
opération ne modifient en rien les données stockées dans les tables.
Création de table Permet de créer une nouvelle table à partir des enregistrements répondant à un critère
de sélection
Ajout Ajoute le contenu des enregistrements correspondant au critère de sélection à une table
existante (ou nouvelle)
Mise à jour Permet de mettre à jour le contenu d’un ou plusieurs champs pour les enregistrements
sélectionnés correspondant au critère de sélection
Suppression Permet de supprimer les enregistrements correspondant au critère de sélection
DANGER : UNE REQUÊTE ACTION MODIFIE LE CONTENU DES TABLES, PAR CONSEQUENT IL FAUT
ÊTRE RIGOUREUX QUANT AU CRITERE DE SELECTION
le thème
Dans la table CLIENT de la base de données PAPETIER.MDB figure le champ ENCOURS (contenant le montant
du crédit accordé aux clients). Ce champ constitue une donnée de situation (au même titre qu’un solde de compte
ou un stock) et doit être régulièrement mis à jour. Par conséquent, vous allez :
- créer AUTOMATIQUEMENT par requête une table « ENCOURS DE CREDIT » comprenant les champs
suivants :
- CODECLI
- ENCOURS
- ensuite supprimer le champ ENCOURS de la tale CLIENT
- ensuite établir une relation entre la table CLIENT et la table ENCOURS DE CREDIT
7. Exécutez la requête (Menu Requête - Exécution ou bouton Exécuter de la barre d’outils Requête)
Un message d’alerte vous informe que 17 enregistrements vont être collés dans une nouvelle table :
8. Enregistrez la requête sous le nom Création table Encours et fermez-la (la requête évidemment !)
Attention, si vous tentez une deuxième exécution de la requête Création, Access affichera un message
d’erreur car la table ENCOURS DE CREDIT a été créé lors de la 1ère exécution. Pour signaler le danger,
Le nom des requêtes action (dans la liste des requêtes) est précédé d’un point d’exclamation
Comme le champ ENCOURS fait partie d’une nouvelle table, vous devez le supprimer de la table CLIENT :
Comme UN client n’a qu’UN seul encours de crédit et inversement, la relation entre les tables CLIENT et
ENCOURS DE CREDIT sera du type UNE à UNE. Le champ commun au deux tables est CODECLI.
travail a faire :
La structure de la table CLIENT ayant été modifiée, les requêtes, les formulaires ou les Etats fondés sur la table
CLIENT ne se mettent pas automatiquement à jour. Conséquence : si une requête, un état ou un formulaire
utilise le champ ENCOURS, il faudra faire des modifications
APPLICATION :
Au cours des TD précédents (CAS PAPETIERE : TROISIEME PARTIE - UTILISER ACCESS AVEC
PLUSIEURS TABLES – 3.3. : Créer une zone de liste modifiable)
Vous avez créé le formulaire « 2 Saisie/Modification des clients » fondé sur la requête « REQUETE
FORMULAIRE CLIENT »
Comme ces éléments font référence au champ ENCOURS, vous allez les modifier « en cascade »
Passez à la rubrique « Le coin des experts » OU fermez le formulaire puis passez directement au II
Le champ ENCOURS représente une Donnée de situation (comme cela a pu être dit précédemment) dont la
valeur augmente à chaque nouvelle commande et diminue avec les règlements reçus des clients). Par conséquent,
ce champ doit être mis à jour avec une requête action.
Oui : le contrôle ne peut pas être mis à jour (on empêche la saisie
ou la modification)
Non : le contrôle peut être mis à jour
Remarque :
AU PREALABLE :
Vous allez effectuez une copie de la base de données PAPETIERE.MDB et travailler sur cette copie.
Plutôt que d’utiliser l’explorateur de WINDOWS, vous allez utiliser la commande COMPACTER d’ACCESS.
Cette commande permet de réduire la taille d’une base de données. Le compactage se fait dans un nouveau
fichier.
PROCEDURE :
PAPETIERERAC.MDB
Une fois l’opération achevée, ouvrez la base de données PAPETIERERAC.MDB, c’est dans cette base de données
que vous allez effectuer diverses requêtes action.
Le directeur commercial de la société PAPETIERE a décidé de majorer de 10% le prix unitaire des articles de
papeterie. Vous êtes chargé de modifier les prix unitaires.
MODE OPERATOIRE :
1. Créer une nouvelle requête fondée sur les tables PRODUITS et CATEGORIE
2. Faites glisser les champs CODEART, DESIGNART, LIBELLECAT et PUHT
3. Mettez le critère : Papeterie pour le champ LIBELLE CATEGORIE
4. Visualisez la requête en mode Feuille de données pour vérifier que vous n’avez que les enregistrements
relatifs aux articles de papeterie
5. En mode création, sélectionnez le type de requête « Mise à jour » dans le menu requête (ou cliquez sur
le bouton
6. Dans la grille d’interrogation, saisissez la formule suivante sur la ligne mise à jour et en dessous du
champ Prix unitaire :
[PUHT]*1.10
7. Exécutez la requête (Menu Requête Exécuter et visualisez le résultat : les prix ont augmentés de
10% (de 12,60 F ils sont passés à 13,86 F)
Remède :
Lors de la création des relations entre la table commande (côté UN de la relation) et la table LIGNE
COMMANDE (Côté PLUSIEURS) Vous avez demandé à ACCESS d’appliquer l’intégrité référentielle : Pour
pouvoir supprimer une enregistrement de la table côté UN, il faut d’abord supprimer les enregistrements liés de
la table côté PLUSIEURS.
CONNAISSANCES DE BASE
Faire une analyse croisée consiste à effectuer une synthèse des données sur plusieurs niveaux.. Dans Access,
l’analyse croisée constitue une forme particulière de requête opération.
Dans l’exemple qui suit, vous aurez à effectuer une analyse croisée du chiffre d’affaires consistant à déterminer
le montant du chiffre d’affaires par client et pour chaque catégorie d’article.
Ici, les noms des clients représentent des « entêtes de ligne » et les libellés de catégorie représentent des « entêtes
de colonnes ». Les sommes figurant dans le tableau correspondent aux « valeurs » et sont le fruit d’un calcul
(opérateur Somme).
Application guidée :
Créez une nouvelle requête en mode création
Sélectionnez les tables qui vous sont nécessaires
Sélectionnez ensuite les champs NOMCLI, LIBELLECAT et créez un champ calculé que vous
nommerez HT.
Maintenant, il ne reste plus qu’à transformer la requête sélection en requête analyse croisée :
Il faut ici définir les champs de regroupement (ici NOMCLI et LIBELLECAT) et l’opérateur de calcul (ici
l’opérateur SOMME appliqué au champ HT.
Il faut également définir l’entête de ligne(NOMCLI), l’entête de colonne (LIBELLECAT).
Il faut noter aussi que les trois champs proviennent de trois tables différentes.
Remarques :
- Il est tout à fait possible de trier les clients comme les libellés de catégorie
- l’analyse s’est faite sur deux niveaux (dimensions), à savoir un premier niveau sur le nom des clients et un
second niveau sur le libellé catégorie. On peut ajouter des niveaux supplémentaire d’analyse en entête de ligne.
Par exemple, si l’on veut obtenir le cumul du chiffre d’affaires par client , par taux de TVA et par libellé
catégorie, la requête analyse croisée se présente alors de la manière suivante :
Ce qui donne :
Le résultat n’est pas significatif car une catégorie d’articles ne semble comporter qu’un seul taux de TVA.
Activité :
Répondez à la demande des dirigeants à l’aide d’Access
Les macros
Définition
Une macro comporte une ou plusieurs actions effectuant chacune une opération particulière, telle
l'ouverture d'un formulaire ou l'impression d'un état. Les macros permettent d'automatiser les tâches
habituelles. Vous pouvez, par exemple, exécuter une macro qui imprime un état lorsqu'un utilisateur clique sur
un bouton de commande.
Une macro peut se présenter sous forme de macro unique composée d'une série d'actions ou sous forme
de groupe de macros. Vous pouvez également utiliser une expression conditionnelle pour déterminer si, dans
certaines circonstances particulières, une action est effectuée lorsqu'une macro s'exécute.
Série d'actions
Une macro peut être composer d'une série d'actions, Microsoft Access effectue ces actions en bloc chaque
fois que la macro est exécutée.
Groupe de macros
Si vous utilisez un grand nombre de macros, regroupez les macros liées dans des groupes de macros
pour faciliter la gestion de votre base de données. Pour afficher les noms des macros d'un groupe de macros,
cliquez sur "Nom de macro" dans le menu "Affichage" de la fenêtre Macro. Pour exécuter une macro contenue
dans un groupe de macros, vous devez indiquer le nom du groupe de macros suivi d'un point, puis le nom de la
macro.
Actions conditionnelles
Dans certaines situations, il peut être nécessaire d'exécuter conditionnellement une ou plusieurs actions
dans une macro. C'est par exemple le cas lorsque vous définissez une macro qui valide le contenu d'un champ.
Pour ce faire, affichez la colonne "Condition" en cliquant sur "Conditions" dans le menu "Affichage"
de la fenêtre Macro, tapez l'expression conditionnelle sur la ligne qui contient l'action à exécuter
conditionnellement.
La partie supérieure de la fenêtre "Macro" est composée de deux colonnes intitulées "Action" et
"Commentaire". La première donne accès à 53 actions prédéfinis. Quant à la seconde, elle apporte des
précisions sur les actions complexes.
Dans la colonne "Action", cliquez dans la première cellule puis cliquez sur la flèche pour afficher la
liste d'actions à partir de laquelle vous allez sélectionner l'action que vous voulez utiliser. Par suite vous pouvez,
si vous le désirez, saisir un commentaire. En fait, les commentaires sont facultatifs mais souhaitables pour
mieux comprendre votre macro plus tard. Dans la partie inférieure de la fenêtre, spécifiez les arguments de
l'action, si ceux-ci sont obligatoires. Cliquez ensuite sur le bouton d'enregistrement pour sauvegarder la macro, le
nom saisi apparaîtra dans la fenêtre "Base de données"
I. Les propriétés
Vous limitez ainsi la place mémoire mais également des erreurs d'utilisation. Pour un champ texte, vous limiter le nombre de
caractères, la valeur par défaut est 50, si vous indiquez 0 c'est la valeur 255 qui sera retenue.
Pour un champ numérique, vous avez les tailles suivantes :
I.2. Format
Selon le type de champ, vous avez des formats prédéfinis ou non, mais vous pouvez également concevoir votre propre format
en utilisant des symboles, différents selon le type de champ. Certains symboles sont communs à tous les types :
Symbole Explications
"" Tous les caractères compris entre les 2 guillemets sont affichés.
\ Le caractère qui suit \ s'affiche, utilisez plutôt les guillemets.
* Complète l'espace vide du champ avec le caractère situé après *
Espace Affiche un espace dans le champ
! Force l'alignement à gauche
[couleur] Affiche le champ dans la couleur spécifiée. Les couleurs disponibles sont : Noir, Bleu, Vert, Cyan, Rouge,
Magenta, Jaune, Blanc.
Texte : vous n'avez aucun format prédéfini, les formats personnalisés utilisent les symboles suivants :
Symbole Explications
@ Caractère obligatoire
& Caractère non obligatoire
< Convertit les caractères en minuscules
> Convertit les caractères en majuscules
Date/heure : détermine le mode d'affichage de la date et de l'heure. Utilisez les formats de la liste :
Symbole Explications
: séparateur d'heure
/ séparateur de date
J Jour - j affiche en 1 ou 2 chiffres (1 à 31) - jj affiche en 2 chiffres (01 à 31)
jjj affiche les 3 premières lettres du jour (dim à sam)
jjjj affiche le jour entier en lettres (dimanche à samedi) (Vous pouvez marier ces affichages : j jjjj ou jj jjj, etc.)
E e affiche le jour dans la semaine (1 à 7) - ee affiche le jour de la semaine (1 à 53)
M Mois - m affiche en 1 ou 2 chiffres (1 à 12) - mm affiche en 2 chiffres (01 à 12)
mmm affiche les 3 1er lettres du jour (jan à déc) - mmmm affiche le jour entier en lettres (janvier à décembre)
T trimestre (1 à 4)
A numéro du jour de l'année
A l'année - aa affiche en 2 chiffres - aaaa affiche en 4 chiffres
H l'heure - h affiche en 1 ou 2 chiffres (1 à 23) - hh affiche en 2 chiffres (01 à 23)
N Minute - n affiche en 1 ou 2 chiffres (1 à 59) - nn affiche en 2 chiffres (01 à 59)
S Seconde - s affiche en 1 ou 2 chiffres (1 à 59) - ss affiche en 2 chiffres (01 à 59)
" Tout les caractères compris entre 2 guillemets sont affichés. Exemple, "Le "j jjjj mmmm aaaa affichera : Le 2
novembre 2000
Numérique et Monétaire : vous avez le choix entre 6 formats pour les champs de type Numérique, NumeroAuto, Monétaire
:
Format Exemple
Nombre général 3456,789
Monétaire 3456,79 F
Fixe 3456,79
Standard 3 456,79
Pourcentage (x10) 345678,9%
Scientifique (puissance 10) 3,46E+03
Ou créez votre propre format. Il comportent entre une et quatre sections et utilise le point-virgule (;) comme séparateur de
section. Chacune peut avoir un format différent et corresponde à :
nombres positifs;nombres négatifs;zéro;valeur null
Exemple : # ###0;0,00;"zero";"Nul"
Oui/Non : Vous pouvez choisir entre 3 formats prédéfinis : Oui/Non, Vrai/Faux, Actif/Inactif. Par défaut ces 3 formulaires
s'affichent dans la feuille de données ou le formulaire sous forme de case à cocher, si vous préférez voir du texte, modifiez la
I.3. Décimales
La valeur par défaut est Auto, ainsi la propriété Format indique le nombre de décimales. Si vous indiqué un nombre, celui-ci
sera prioritaire au nombre de décimale indiqué dans la propriété Format, excepté le format Nombre général. Exemple avec
3456,789, avec le format Nombre général et Décimales à 0, 3456,789 s'affiche; par contre avec n'importe quel autre format,
"0,000" par exemple, le nombre s'affiche 3457 car Décimales est à 0.
S'utilise exclusivement pour le type de champ NumeroAuto, ce dernier champ se calcule automatiquement pour ne jamais
exister en double :
Incrément, Access ajoute 1 à la valeur du dernier enregistrement, si vous supprimez un enregistrement la valeur qui
lui avait été attribué ne sera jamais réutilisé.
Aléatoire Access choisit une nouvelle valeur, n'existant pas encore, de façon aléatoire.
Un masque de saisie facilite l'entrée de données et contrôle les valeurs tapées, par exemple, un masque pour un champ
numéro de téléphone qui vous montre comment le tapez. Pour établir votre masque de saisie vous avez 2 possibilités,
l'Assistant Masque de saisie ou le taper directement dans la propriété. Il est souvent plus facile d'utiliser l'Assistant Masque
de saisie et de le personnaliser :
Sélectionnez un de ces masques, si vous ne trouvez pas exactement celui que vous voulez, choisissez le plus proche. Cliquez
sur Suivant. Si vous n'avez pas besoin de modifier le masque, sautez cette étape. Sinon modifiez le masque de saisie en
utilisant les symboles suivant :
Caractère Description
0 Chiffre (0 à 9, saisie obligatoire; signes plus [+] et moins [-] non autorisés).
9 Chiffre ou espace (saisie facultative; signes plus et moins non autorisés).
# Chiffre ou espace (saisie facultative; blancs convertis en espaces, signes plus et moins autorisés).
L Lettre (A à Z, saisie obligatoire).
? Lettre (A à Z, saisie facultative).
A Lettre ou chiffre (saisie obligatoire).
a Lettre ou chiffre (saisie facultative).
& Tout caractère ou espace (saisie obligatoire).
C Tout caractère ou espace (saisie facultative).
.,:;-/ Virgule décimale et séparateurs des milliers, de date et d'heure. (En fonction des paramètres régionaux du
Panneau de configuration de Microsoft Windows).
< Implique la conversion en minuscules de tous les caractères qui suivent.
> Implique la conversion en majuscules de tous les caractères qui suivent.
! Implique que le masque de saisie affichera de droite à gauche et non de gauche à droite. Les caractères tapés
dans le masque le rempliront toujours de la gauche à la droite. Vous pouvez mettre le point d'exclamation
n'importe où dans le masque.
\ Implique l'affichage du caractère qui suit comme caractère d'affichage littéral. Sert à afficher tout caractère
compris dans ce tableau comme caractère d'affichage littéral (par exemple, \A s'affiche sous la simple forme
A).
I.6. Légende
Permet d'indiquer à l'avance le texte que les contrôles devront afficher en intitulé. Dans notre exemple de bibliothèque, dans
la table Plages, le champ de référence aux auteurs est nommé No A, ce n'est pas très explicite, indiquez alors "Auteur" dans la
propriété Légende.
Si un champ prend souvent la même valeur, vous pouvez éviter une saisie en attribuant cette valeur à cette propriété. Elle
peut être également le résultat d'une expression, comme Date() par exemple. Pour entrez cette expression, utilisez le
générateur d'expression en cliquant sur le bouton situé à droite de la zone de texte de la propriété.
I.8. Valide si
Permet de limiter la saisie des données selon une ou des conditions. Il est alors fortement recommandé d'indiquer la règle de
validité dans la propriété Message si erreur. Cette règle utilise les opérandes : <, >, =, ET, OU, ainsi que le mot Comme, les
symboles *,?. Le tableau suivant vous donne des expressions souvent utilisées.
Expression Description
<>0 Toutes les valeurs différentes de 0.
>=500 ET <=1000 Toutes les valeurs comprises entre 500 et 1000.
>Date()+15 La date ne doit pas être antérieure à aujourd'hui + 15 jours.
"Machin" OU Le texte doit être Machin ou Machine
"Machine"
Comme "A????" Tout texte commençant par la lettre A et contenant 5 lettres.
Comme "A*.???" Tout texte commençant par la lettre A, d'un nombre de caractère minimum de 5 lettres (A, . et les 3 ?)
et finissant par un point et 3 lettres quelconques.
Cette propriété est indispensable si vous avez attribué une règle de validité au champ. Tapez le texte d'explication pour cette
règle afin de l'expliquer à l'utilisateur en cas d'erreur de saisie. Ce message s'affichera dans une petite boîte de dialogue.
Si vous voulez que l'utilisateur soit obligé de donner une valeur à un champ, attribuez OUI à cette propriété.
Si vous attribuez la valeur NON à cette propriété, l'utilisateur est obligé de tapez un texte d'au minimum 1 caractère.
La propriété Null interdit et celle-ci vous paraissent similaires, mais Access les différencie. Par exemple, dans une requête
faisant appel à plusieurs tables , les enregistrements dont le champ commun contient une valeur nulle ne sont pas affichés
par contre ceux contenant une chaîne vide sont affichés.
I.12. Indexé
Un index permet à Access d'accélérer les requêtes sur les champs indexés ainsi que les tris et regroupement. La propriété
peut prendre les 3 valeurs suivantes :
Cette propriété se trouve sur l'onglet Liste de choix, elle définit le contrôle à afficher lors de la création d'un formulaire. La
valeur par défaut est zone de texte, selon le champ, vous avez le choix entre Case à cocher, Zone de texte et Zone de liste
modifiable.
Dans une table, pour entrer des données dans un des champs, vous pouvez utiliser une liste de choix basée sur une ou
plusieurs autres tables. Pour créer cette liste, vous utilisez l'Assistant liste de choix. Dans ce cas, de nouvelles propriétés sont
disponibles pour ce champ.
Paramètres Description
Table/requête Les données proviennent d'une table ou sont le résultat d'une requête enregistrée ou d'une requête définie
par la propriété Contenu. C'est la valeur par défaut.
Liste valeurs Les données constituent une liste d'éléments définie dans la propriété Contenu.
Liste champs Les données constituent une liste de noms de champs provenant d'une table, d'une requête enregistrée ou
d'une requête définie par la propriété Contenu.
I.2 Contenu
Cette propriété renseigne la propriété précédente, selon le paramètre de cette dernière, elle contient :
OrigineSource Contenu
Table/requête Un nom de table, de requête ou une instruction SQL.
Liste valeurs Une liste d'éléments séparés par des points-virgules (;).
Liste champs Le nom d'une table, d'une requête ou une instruction SQL.
Pour indiquer le nom d'une table ou d'une requête, sélectionnez- la dans la liste déroulante de la propriété. Pour la liste de
valeurs, tapez chacune des valeurs séparés par des points-virgules dans la zone de texte de la propriété. Pour l'instruction
SQL, cliquez sur le bouton , situé à droite de la propriété, une fenêtre de création de requête s'ouvre, procédez comme
pour la création d'une requête. Si vous voulez mieux décrire la liste, celle-ci peut se composer de plusieurs colonnes, le titre de
chacune de ces colonnes est un champ résultant de la requête créée dans cette fenêtre.
Cette propriété indique à Access, quelle colonne contient la valeur à enregistrer dans le champ. La valeur par défaut est 1. Si
vous indiquez la valeur 0, c'est le numéro de la ligne qui est enregistré, à savoir que la première ligne a le numéro 0. Si vous
indiquez une valeur supérieure à 0, c'est la valeur sélectionnée dans la colonne spécifiée qui est enregistrée.
Cette propriété permet d'indiquer le nombre de colonnes affichées par la liste. Elle est comprise entre 1 et le nombre de
champs de la table ou de la requête. La liste affiche alors les champs de la source, de gauche à droite, jusqu'au nombre
spécifié par la propriété. Elle est automatiquement définie par l'Assistant Liste de choix.
Si vous l'utilisez sur une liste de valeurs, elle répartira ces valeurs sur le nombre de colonnes spécifié. Par exemple, dans la
propriété Origine source, vous tapez la liste "a";"b";"c";"1";"2";"3", si vous affectez :
Si la propriété est défini à OUI, la liste affiche une ligne d'en-tête, dans le cas d'une source Table ou Requête, les titres des
champs sont affichés, dans le cas d'une source de valeurs, la première ligne des éléments est affichée comme en-tête.
Cette propriété permet d'indiquer la largeur de chacune des colonnes d'une liste multi-colonnes. La largeur spécifiée de
chacune des colonnes doit être séparé par un point virgule. Pour ne pas afficher une colonne, indiqué la valeur 0. Si nous
reprenons l'exemple de la propriété Nbre colonnes (avec la valeur 3), avec la propriété Largeur colonnes : 1,5cm;0;1,5cm. La
liste se présente ainsi :
Avec cette propriété vous indiquez le nombre de lignes affichées lorsque vous déroulez la liste. La valeur par défaut est 8.
Cette propriété vous permet d'indiquer la largeur de la liste lorsqu'elle est déroulée. Elle peut être plus large que la largeur
du champ mais plus petite.
Cette propriété permet de gérer l'insertion d'une donnée non comprise dans la liste. Si vous la définissez à OUI, Access
refusera cette donnée, et l'utilisateur doit recommencer la saisie, dans le cas contraire il accepte toute donnée qui respecte la
propriété Valide si.