CoursAccess Id2893
CoursAccess Id2893
CoursAccess Id2893
Une base de données est un ensemble de données organisées sous forme de tables. Une base de
données couvre un domaine de gestion précis (ex : domaine Gestion des clients, gestion des
ventes, gestion des achats, gestion de rendez-vous...).
Lorsqu’il existe des relations entre les tables, on parlera de base de données relationnelles
Exemple : Une vidéothèque souhaite créer une base de données permettant de suivre les locations
de cassettes des clients.
La base de données contiendra 3 tables : CLIENTS, CASSETTES, LOCATIONS
TABLE CLIENTS
CODE CLI NOM CLI PREN CLI RUE CLI VILLE CLI
1 DURAND Jean-Paul Rue des DOUAI
Wets
2 ALEXIS Marc Rue WAZIERS
d'Anjou
3 LEBIENHEUREUX Alexandre Rue Boda FLERS
Table LOCATIONS
CODE CLI CODE DATE LOC DATE RETOUR
CASS
1 2 04/01/1995 05/01/1995
2 1 05/01/1995 06/01/1995
2 3 02/01/1995 05/01/1995
2 4 12/01/1995 15/01/1995
TABLE CASSETTES
Le client CODE NOM CASS PRIX LOC
ALEXIS a CASS
loué
1 L'homme de Rio 10
3 cassettes
2 Amour torride 20
3 Cauchemar 15
informatique
4 La belle et 20
l'ordinateur
c/ QUELS SONT LES PRINCIPES ELEMENTAIRES A RESPECTER POUR CREER UNE BASE
DE DONNEES RELATIONNELLE ?
1) Chaque table doit comprendre un champ défini comme clé primaire, celle-ci permet d'identifier
de manière unique chaque enregistrement.
2) Les données doivent être élémentaires : Exemple Le champ IDENTITE contenant le nom et le
prénom d’un individu n'est pas élémentaire, il faut créer un champ NOM et un champ PRENOM
3) Les données calculées sont éliminées (car elles peuvent être recalculées de manière dynamique
et n'ont donc pas besoin d'occuper de l'espace disque)
C'est un logiciel outil qui permet de manipuler des données en offrant à l'utilisateur la possibilité de :
REMARQUE : Pour obtenir ce résultat avec EXCEL, il faudrait créer une feuille par client, ce qui
entraînerait un volume disque impressionnant en fonction du nombre de clients
L’ensemble des objets manipulés dans ACCESS 2000 sont disponibles depuis la fenêtre « Base
de données » :
A/ Quels sont les renseignements dont j’aurai besoin ? La réponse à cette question va déterminer les
champs à définir pour la table.
LE THEME
Votre mission (si vous l'acceptez) va consister à créer la table CLIENT appartenant à la base de
données PAPETIERE.MDB
1) Lancez MICROSOFT ACCESS 2000 qui se trouve dans le groupe MICROSOFT OFFICE
2) dans le menu fichier - sélectionnez l’option NOUVELLE BASE DE DONNEES
4) Sélectionnez l’objet Table dans la fenêtre base de données puis cliquez sur Créer une table en
mode création
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
7) Vous disposez ci-dessous des cinq premiers enregistrements de la table CLIENT de la société
PAPETIERE. Votre travail consiste à saisir ces enregistrements en mode « feuille de
données ».
Enregistrements à saisir
Code client NOMCLI ADRCLI VILLECLI PAIEMENT ENCOURSCLI PLAFONDCLI CPCLI
00001 Vent du Sud 10 rue Montaigne LILLE Chèque à 112 000.00 F 50000 59000
réception
00002 Crion 15, rue JB Lebas LILLE Chèque à 29 200.00 F 50000 59000
réception
00003 Edition du 221, Boulevard de LILLE Chèque à 47 200.00 F 90000 59000
Cherche Midi la république
réception
00004 Pic Puce 171, route de SIN LE NOBLE 30 jours fin de 37 000.00 F 130000 59450
Valenciennes
mois
00005 Assurance 12, rue de l'Eglise SIN LE NOBLE 30 jours fin de 147 000.00 F 100000 59450
Code client NOMCLI ADRCLI VILLECLI PAIEMENT ENCOURSCLI PLAFONDCLI CPCLI
Azur mois
MODES OPERATOIRES
1) Cliquez sur le bouton Affichage feuille de données (remarque : la petite flèche permet de sélectionner
les 2 modes d’affichage d’une table : feuille de données ou création)
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)
CODE PAIEMENT
REG
1 Chèque à réception
5 Chèque à 60 jours
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
5) Déplacement du champ CPCLI
Basculez en mode création de table (cliquer sur le bouton « Création de table »
Sélectionnez la ligne contentant le champ CPCLI :
2) On fait glisser le
champ CPCLI sur le
champ VILLECLI
1) On sélectionne
cette ligne dans la
marge
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
LES MESSAGES D’ERREUR : lorsqu’une règle de validation a été définie, on peut provoquer l’affichage d’un message
en cas d’erreur.
ACCESS utilise des EXPRESSIONS DE VALIDATION en Français.
Par exemple dans la propriété "VALIDE SI " on peut utiliser les expressions suivantes :
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 :
Mode opératoire :
- Fermez la table CLIENTS,
- Dans la fenêtre base de données, sélectionnez l’objet
- Cliquez sur le bouton Nouveau
1) Sélectionnez l’assistant
formulaire
2) Vous allez saisir les sept derniers enregistrements de la table CLIENT en utilisant le formulaire précédent :
Code code
NOMCLI ADRCLI VILLECLI CODEREG PAIEMENT ENCOURSCLI PLAFONDCLI
client postal
00011 Lycée Rambaux 105, rue Paul Foucaut 59450 SIN LE NOBLE 1 Chèque à 503 200.00 F 500000
réception
00012 Briko Boutik 124, Bd Jeanne de 59265 AUBENCHEUL AU 5 Chèque à 60 24 350.00 F 80000
Flandres BAC jours
00013 Carbone Copy 07, place Saint Amé 59500 DOUAI 3 60 jours fin de 116 000.00 F 180000
mois
00014 SériTech 12, rue de Maupassant 59650 VILLENEUVE D'ASCQ 3 60 jours fin de 263 000.00 F 310000
mois
00015 Berteman Inc. rue des Cytises 62221 NOYELLES SOUS 3 60 jours fin de 128 000.00 F 97000
LENS mois
Code code
NOMCLI ADRCLI VILLECLI CODEREG PAIEMENT ENCOURSCLI PLAFONDCLI
client postal
00016 Bils Deroo 14, rue des prés 59119 WAZIERS 4 90 jours fin de 178 000.00 F 195000
Transport mois
00017 Ets Mario Land 147, rue Bollaert 62300 LENS 2 30 jours fin de 60 000.00 F 60000
mois
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.
CATEGORIE
CODECAT LIBELLECAT
ACC Accessoires fournitures
MOB Mobilier petit matériel
OUV Ouvrages
PAP Papeterie
PRODUIT
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 REGLEMENT
3) Table PRODUIT
b) Créez le formulaire de saisie des produits (nom du formulaire : Saisie des produits)
Une requête est une interrogation de la base de données, par exemple: quels sont les clients habitant à DOUAI ?
Quels sont les produits soumis à 19,60% ? Quels sont les clients ayant commandé le produit "XXX" entre le
01/01/01 et le 31/03/01 ?
Vous allez créer un certain nombre de requêtes à partir de la table CLIENT de la base BUROMAT.MDB
ACTIVITE
AU PREALABLE, démarrez ACCESS et ouvrez la base de données PAPETIERE.MDB
1) On veut obtenir la liste des clients limitée aux champs CODECLI et NOMCLI
dans la boîte de dialogue "AJOUTER UNE TABLE", sélectionnez la table client, cliquez sur
"Ajouter" puis sur fermer
2 Cliquez sur
Ajouter
1) Sélectionnez la
table CLIENT
Bouton opérations
Bouton affichage :
- mode feuille de
données Bouton Propriétés
- mode création
- mode SQL
Liste des
champs
Grille
d’interrogation
On souhaite donc visualiser tous les enregistrements de la table CLIENT mais en ne retenant que les champs
CODECLI et NOM : en langage relationnel on appelle cela une PROJECTION.
Pour cela faites glisser le champ CODECLI vers la grille d'interrogation dans la 1ère colonne (sur la ligne
Champs)
Puis faites glisser le champ NOMCLI vers la grille d'interrogation (2ème colonne et ligne Champ)
Opération de glisser-
déplacer
Visualisez le résultat de la requête : cliquez sur le bouton Affichage et sélectionnez le mode Feuilles de données
2) Pour faciliter la lecture des noms on voudrait que ceux-ci soient triés par ordre alphabétique
Revenez à la fenêtre requête en mode création : cliquez sur le bouton
Dans la grille d'interrogation, sélectionnez la ligne Tri de la colonne comportant le champ NOMCLI
Un bouton liste déroulante apparaît, cliquez dessus et sélectionnez l'option Croissant
Visualisez le résultat : cliquez sur le bouton Affichage -: mode Feuille de données
Enregistrez la requête en la nommant : &q
Le responsable commercial de la société PAPETIERE souhaiterait pouvoir lancer un certain nombre
d'interrogations relatives à la table PRODUIT. Vous vous dévouez alors pour créer les requêtes appropriées
3 on veut afficher la liste des produits (nom et prix) soumis à P3 - Produits soumis à la TVA de
19.60% 19.60%
4 On veut afficher le nom des produits dont le prix unitaire est P4 - Produits dont le prix est
compris entre 100 F et 200 F compris entre 100 et 200 F
5 On veut afficher la liste des produits triée sur le nom (tous les P5 - Liste des produits avec prix de
champs) en faisant apparaître le prix de vente T.T.C. en francs et vente T.T.C. en F et en Euro)
en Euros.
Rappel : 1euro = 6.55957
6 Création d'une requête opération : On veut connaître les P6 - Liste des taux de TVA
différents taux de TVA
7 Création d'une requête Opération : on veut connaître pour chaque P7 - Nombre de produits par taux de
taux de TVA, le nombre de produits TVA
8 Création d'une requête paramétrée : on veut que l'affichage d'un P8 - Recherche d’un produit
code produit provoque l'affichage de l'enregistrement complet
relatif à ce produit
(voir ci dessous)
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’exé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
Saisissez le nom du paramètre : CODE PRODUIT RECHERCHE et le type de données : Entier long
Faites glisser tous les champs dans la grille d’interrogation
Saisissez le critère [CODE PRODUIT RECHERCHE] dans le champ CODEPROD
Visualisez le résultat de la requête : vous devez entrer un n° de produit (entre 1 et 19), par exemple 10
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
ATTENTION AUX ABUS DE LANGAGE :
Dans la théorie des bases de données
relationnelles, le terme relation n’a pas le même
sens. Dans La terminologie Access, une relation
représente une JOINTURE . S’agissant d’une
jointure entre une clé primaire et une clé
Relation étrangère, on parle de jointure naturelle.
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 connaît le codecat qui lui-même
nous permettra de connaître, grâce à la relation, le libellé de la catégorie.
3. La boîte de dialogue « Ajouter une table » est affichée à l’écran. Vous devez
sélectionner les tables devant être mises en relation (soit PRODUIT et CATEGORIE).
Cliquez sur le bouton Ajouter pour ajouter la table sélectionnée et sur le bouton
Fermer pour fermer la boîte de dialogue. Vous devez obtenir l’écran suivant :
Remarque : pour déplacer les tables à l’écran pointez le titre de la table et faites glisser.
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 :
1. Une requête multi-tables est une requête fondée sur 2 ou plusieurs tables. Vous allez créer une requête
permettant d’afficher tous les champs de la table produit et le libellé de la catégorie de produit. Cette requête
servira de base à un nouveau formulaire de saisie des produits
2. Dans la fenêtre Base de données, cliquez sur l’onglet Requête puis sur le bouton Nouveau et Requête vierge
4. Dans la fenêtre Création de requête, faites glisser tous les champs de la table PRODUIT dans la grille
d’interrogation (ou mieux faites glisser l’* vers la grille d’interrogation, ce qui produit le même résultat)
5. Faites ensuite glisser le champ LIBELLE CAT. Vous devez obtenir l’écran suivant :
ACCESS applique la relation UN-PLUSIEURS définie
précédemment ( la relation s’appelle ici une jointure).
L’inconvénient est qu’on ne peut pas ajouter d’enregistrements.
Pour ce faire, désactivez la relation UN-PLUSIEURS :
Sélectionnez la jointure en cliquant dessus
Appuyez sur la touche Suppr (les symboles 1-plusieurs
ont disparu mais la jointure reste)
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).
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 :
Ce bouton permet de choisir les codes catégories
QUELQUES PRECISIONS :
Etiquettes
Zone de texte
Les différents éléments
apparaissant dans ce formulaire La grille permet d’ajuster la
sont appelés des contrôles Il
existe différents types de contrôle
position des éléments à l’écran.
: Cette grille n’apparaît pas en
Zones de texte : ils
correspondent à des champs
mode formulaire
de tables ou de requêtes
Etiquettes : contiennent
la légende des champs ou un
texte fixe
Pour sélectionner un contrôle, on clique sur sa bordure
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’entraîne 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
Complétez les boîtes de dialogue successives de l’Assistant zone de liste :
Réduisez la largeur de la colonne contenant le code cat et élargissez celle du libellé cat
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
REMARQUE :
La création d’une zone de liste modifiable peut se faire automatiquement si et seulement si, lors de la création du
champ CODECAT dans la table PRODUIT on définit une « liste de choix » :
La table PRODUIT est ouverte en mode création et le champ CODECAT est sélectionné :
Dans la fenêtre des propriétés on sélectionne « Liste de choix »
On sélectionne le contrôle
Cadre dessiné avec l’outil Rectangle Attention : pour que les données à l’intérieur
du rectangle orange soient accessibles, le
rectangle doit être en arrière-plan (après
et le bouton « 3D Enfoncé » : avoir sélectionné le rectangle, menu Format
et une taille de bordure de 4 : – Arrière-plan)
On veut imprimer le catalogue des produits classées par code croissant et connaître le nombre de références pour
chaque catégorie
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 :
Etape 3 : Il est possible déterminer un sous-niveau de regroupement (on pourrait par exemple demander
un regroupement par taux de TVA)
Etape 4 : Définition des critères de tri
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 5 : le choix d’une présentation
Sélectionnez la
présentation ici
Sélectionnez l’orientation
de l’état
Etape 7 : Saisissez le titre de l’état : CATALOGUE DES PRODUITS puis cliquez sur le bouton Terminer
Visualisez l’état en mode aperçu :
1. Modification de l’Etat
Mettre cette
valeur à Oui
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 FORMULAIRES ET LES SOUS FORMULAIRES
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 :
Entourez en vert les données à saisir, en rouge les données qui s’affichent automatiquement et en bleu les
données calculées.
CONCLUSION :
Pour enregistrer les commandes des clients on doit créer deux tables :
REMARQUE : Il est inutile d’inclure le nom,
COMMANDE l’adresse du client... car ces données sont contenues
Clé primaire de la dans la table CLIENT.
NOCOM table COMMANDE
DATE COM On évite ainsi la REDONDANCE de données
CODECLI responsable d’une surcharge inutile du disque dur.
Clé étrangère de la table
COMMANDE. Ce champ
permettra d’établir une UNE BASE DE DONNEES OPTIMISEE EST
relation avec la table UNE BASE DE DONNEES SANS
CLIENT REDONDANCE
Sélecteur de champ
4. Créez les relations entre les tables COMMANDES, CLIENTS puis entre
COMMANDE et ET LIGNE COMMANDE et PRODUIT ET LIGNE COMMANDE conformément
au schéma des relations suivants :
III. SAISIE DIRECTE D’UNE COMMANDE DANS LES TABLES
Vous allez maintenant saisir la commande n° 1 - voir page 1 -
Vous allez devoir saisir un enregistrement dans la table COMMANDE et plusieurs enregistrements dans la table
LIGNE COMMANDE, heureusement, ACCESS 2000 associe à chaque enregistrement de la table
COMMANDE un ou plusieurs enregistrements de la table LIGNE COMMANDE
Dans la table commande saisissez l’enregistrement suivant :
Après validation de l’enregistrement, Un signe + dans la colonne de gauche indique qu’il y a des données liées à
l’enregistrement :
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 :
Saisissez maintenant Dans la table liée LIGNE COMMANDE les enregistrements relatifs à la 1ère commande :
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.
Pour le vérifier, il suffit d’afficher la table LIGNE COMMANDE en mode table :
NOCOM CODEART QTESCOM
00001 00001 100
00001 00006 20
00001 00012 4
00001 00014 2
2. Insertion du sous-formulaire
Cliquez sur le bouton Sous formulaire/sous état :
Dessinez une zone rectangulaire de 10 cm de large sur 5 de hauteur
Dans l’assistant formulaire, indiquez la source des données du sous formulaire
4. 7. Fermez le formulaire
V. CREATION DU FORMULAIRE COMMANDE FONDE SUR DES
REQUETES.
L’utilisation de sous-formulaires fondés sur des tables présente un inconvénient
majeur : il n’existe aucun moyen de contrôle lors de la saisie du code produit ou
du code client. D’autre part les champs calculés n’étant pas intégrés aux tables, il
n’apparaîtront pas dans le sous formulaire
On va donc créer deux requêtes :
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
L’autre qui permettra la saisie du Code produit, des quantités commandées et l’affichage : du prix unitaire,
du taux de TVA. On profitera également de cette requête pour créer des champs calculés :
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
B. Création du formulaire de saisie des commandes (2ème
version)
B1 Création du formulaire principal (saisie des commandes)
Fermez toutes les tables
Dans la fenêtre Bases de données, sélectionnez l’objet Formulaire puis cliquez sur « Créer un formulaire
en utilisant l’assistant »
Sélectionnez la requête ENTETE BC puis sélectionnez tous les champs de la requête qui devront figurer
dans le formulaire
L’affichage des données se fait par commande :
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 :
C/ Le fignolage
Le formulaire est maintenant créé mais la mise en forme laisse certainement à désirer.
Basculez en mode création et déplacez les champs, renommez certaines étiquettes et
augmentez la taille du sous-formulaire pour obtenir une présentation ressemblant à cela :
commande »
et l’affichez en mode feuille de données (Bouton Affichage – Feuille de données)
Sélectionnez toutes les colonnes et appliquez une taille de police de 8
Sélectionnez la colonne NOCOM et masquez la (menu Affichage – Masquer Colonnes) car
cette colonne se met à jour automatiquement et contient pour chaque commande la même
valeur que celle figurant dans le formulaire principal.
Ajustez ensuite la largeur de toutes les colonnes pour que le sous-formulaire s’affiche
correctement dans le formulaire principal.
Enregistrez le sous-formulaire (en conservant le même nom : Articles en commande et
fermez le.
Ouvrez le formulaire Saisie des commandes et vérifiez la présentation (au besoin
procédez aux modifications qui s’imposent)
REMARQUE : La relation Père-Fils est synonyme de relation UN-PLUSIEURS : Un père a plusieurs Fils
Cela signifie qu’un NO COM de la table COMMANDE correspond à plusieurs lignes commandes.
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 :)
Nom donné à la zone de
texte et qui pourra servir
dans un autre formulaire
Le pied de formulaire en mode création doit ressembler à ceci : indique l’origine des données, peut être le
nom d’un champ d’une table ou comme ici
une expression calculée
Zone de texte :
correspond à un champ
(de table ou calculé)
Etiquette
Visualisez le formulaire Saisie des commandes 2 : les totaux concernent toutes les lignes de toutes les
commandes :
Le générateur d’expressions :
Au lieu de saisir la propriété Source contrôle soi-même, cliquez sur le bouton Générateur d’expressions qui
apparaît lorsqu’on clique dans certaines propriétés :
1) Sélectionnez l’objet
concerné par l’expression (ici le
sous formulaire « Articles en
Mode opératoire :
En mode création, sélectionnez le contrôle contenant le numéro de client
Cliquez sur le menu Format – Remplacer par - Zone de liste modifiable
Affichez ensuite les propriétés de la zone de liste et paramétrez les propriétés suivantes :
ANNEXE 1
ETS PAPETIÈRE COMMANDE N° 4 du 19/03/2001
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
Dans la table CLIENT de la base de données PAPETIERE.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 table CLIENT
enfin établir une relation entre la table CLIENT et la table ENCOURS DE CREDIT
A. CREATION D’UNE REQUETE CREATION DE TABLE
Plutôt que de créer la structure de la table ENCOURS DE CREDIT, vous allez créer une
requête Création de tables :
8. 8. Enregistrez la requête sous le nom Création table Encours et fermez-la (la requête
évidemment !)
A ttention, si vous tentez une deuxième éxé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 éxé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
travail a faire :
APPLICATION :
Comme ces éléments font référence au champ ENCOURS, vous allez les modifier « en
cascade »
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.
Pour éviter que l’utilisateur du formulaire ne saisisse une valeur dans le champ
ENCOURS, on va le protéger en paramétrant certaines propriétés :
1. 1. Sélectionner le contrôle ENCOURS (si ce n’est pas déjà fait)
2. 2. Affichez la fenêtre des propriétés (si ce n’est pas déjà fait)
3. 3. Paramétrez les propriétés indiquées ci-dessous :
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 :
1. 1. Fermez la base de données PAPETIERE.MDB (indispensable)
2. 2. Activez le menu Fichier - Compacter une base de données ACCESS affiche une
première boîte de dialogue dans laquelle vous sélectionnez le nom de la base à
compacter soit PAPETIERE.MDB sur le lecteur A:
3. 3. Dans la deuxième boîte de dialogue Compacter sous... saisissez le nom de la
base compactée :
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.
Plutôt que de calculer manuellement les prix unitaires pour les articles de papeterie et de les
saisir vous allez, grâce à une requête Mise à jour, faire la modification automatiquement.
MODE OPERATOIRE :
1. 1. Créer une nouvelle requête fondée sur les tables PRODUITS et CATEGORIE
2. 2. Faites glisser les champs CODEART, DESIGNART, LIBELLECAT et PUHT
3. 3. Mettez le critère : Papeterie pour le champ LIBELLE CATEGORIE
4. 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. 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. 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. 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)
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.