ppt - Grenet.fr

Download Report

Transcript ppt - Grenet.fr

Initiation MS Access 2010
Structures – Tables, schémas et Données
TD -- MSI
2ème Année GI
filière ICL
L. Gzara, E. Khouri, M Tollenaere
1
MSI 2A ICL – Initiation ACCESS Structures 2014
Objectifs :
- Prendre en main les structures dans Access
- Importer des données
- Obtenir une BD intègre (données et schémas en
conformité)
- Fichiers TD-Access dans Chamilo
Base de données commandes – articles –
clients ACCESS 2010 exemple
2014CMD-Clients-prod.mdb
Prérequis
2014MS-Access-Requetes.ppt
L. Gzara, E. Khouri, M Tollenaere
Si vous ne construisez pas à l'avance
les relations entre vos tables, vous
devrez recommencer cette procédure
chaque fois que vous voudrez créer
une nouvelle requête. Il est donc
toujours préférable de prendre le
temps de bien
concevoir ses
tables et de définir les
bonnes relations. De cette
manière vos requêtes seront plus
faciles et plus rapides à construire
2
MSI 2A ICL – Initiation ACCESS Structures 2014
Principes généraux de l’interface
Zone de menu principal
Fichier -- Accueil – Créer – Données ext …
Zone d’icones
contextuelles
Affichage – Presse Papier –
Trier et filtrer…
Les objets
Access
Tables – Requetes –
Formulaires – Macros…
Zone de travail
Sélectionner “Outils de base de données” >> Relations
L. Gzara, E. Khouri, M Tollenaere
3
MSI 2A ICL – Initiation ACCESS Structures 2014
Modèle statique UML
Cahier des charges : modèle de classes UML à implémenter
NUM-Client
nom
téléphone
e-mail
Adresse
pays
Produit
Commande
Client
0..*
1
Est_composée-de>
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
0..*
0..*
Quantité
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
annuler ()
confirmer ()
Ajout-article
Chag-quantité
totalfacturé ()
Cmd-en-cours ?
Des clients passent des commandes qui comportent des produits en
quantité variable: les commandes évoluent et passent par les états
“preliminaire”, livrée” et “payée”. On désire connaitre le Top 10 des
clients en terme de volume facturé et aussi les clients qui ont des
commandes en cours, comme ceux qui ont des retards de paiement.
L. Gzara, E. Khouri, M Tollenaere
4
MSI 2A ICL – Initiation ACCESS Structures 2014
Modèle statique UML
NUM-Client
nom
téléphone
e-mail
Adresse
pays
Produit
Commande
Client
0..*
1
totalfacturé ()
Cmd-en-cours ?
Est_composée-de>
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
0..*
0..*
Quantité
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
annuler ()
confirmer ()
Ajout-article
Chag-quantité
Créer une TABLE “Client” avec les attributs :
- Num-client
- Nom
Alimenter la TABLE “Client” avec les données
- Telephone
du fichier Excel “2014cmd-produits.xls”
- Adresse
- pays
L. Gzara, E. Khouri, M Tollenaere
5
MSI 2A ICL – Initiation ACCESS Structures 2014
Table “Client”
Créer la TABLE “Client”
avec les attributs :
- Num-client (Numérique =
clef)
- Nom (texte)
- Société (texte 80 caract.)
- Telephone
- Adresse
- pays
Alimenter la TABLE “Client” avec les données du fichier Excel
2014cmd-produits.xls
L. Gzara, E. Khouri, M Tollenaere
6
MSI 2A ICL – Initiation ACCESS Structures 2014
Alimenter les données de la table “Client”
Par Données externes :
- Excel
- Importer
Selon protocole
Les Données invalides vont dans la Table d’erreurs (Super!)
On peut aussi procéder par Copier - Coller
Les 216 enregistrements sont tous compatibles avec les
contraintes sur attributs (dont Clef primaire)
L. Gzara, E. Khouri, M Tollenaere
7
MSI 2A ICL – Initiation ACCESS Structures 2014
On continue avec la table “Commande”
Créer la TABLE “Commande”
avec les attributs :
- Num-cmd (Numérique = clef)
- Client (Num)
- Montant-payé (Monétaire €)
- Date cmd (date)
- Date livraison (date)
- Date paiement (date)
- Etat (liste-etat)
L. Gzara, E. Khouri, M Tollenaere
Commande
Client
NUM-Client
nom
téléphone
e-mail
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
8
0..*
1
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
annuler ()
confirmer ()
Ajout-article
Chag-quantité
MSI 2A ICL – Initiation ACCESS Structures 2014
Alimenter les données de la table “Commande”
On importe les commandes
Par Données externes :
- Excel -- Importer
- Ou par Copier - Coller
Vérifiez champ par champ la
validité des structures:
Les 300 enregistrements sont tous compatibles avec
les contraintes sur attributs (dont Clef primaire)
L. Gzara, E. Khouri, M Tollenaere
9
MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
Onglet >> outils de base de données >> relations
Lier graphiquement l’attribut Client et Num-client
Contrainte d’intégrité référentielle
L. Gzara, E. Khouri, M Tollenaere
10
MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
Onglet >> outils de base de données >> relations
Lier graphiquement l’attribut Client et Num-client
Contrainte d’intégrité référentielle
L. Gzara, E. Khouri, M Tollenaere
11
MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
Les attributs Clients.NumClient et Commande.Client
DOIVENT être de même type (ici entier long)
L’intégrité référentielle
garantit que toute
commande a bien un
client.
On peut maintenant implémenter les méthodes de la classe
“client” : mcd en cours? Et Montant total?
L. Gzara, E. Khouri, M Tollenaere
12
MSI 2A ICL – Initiation ACCESS Structures 2014
Implémenter les méthodes pour les “clients”
Commande en cours? ………… Montant total payé / client (top 10) ?
L. Gzara, E. Khouri, M Tollenaere
13
MSI 2A ICL – Initiation ACCESS Structures 2014
STOP 1
La coexistence des MODES Création (ou Structure) et
feuille de données au même moment (soit programmation et
runtime) est une caractéristique d’ACCESS.
MAIS, dans la plupart des cas, toute modification de structure
(en MODE création) nécessite qu’aucune fenêtre “Feuille de
données” ne soit ouverte sur la même table.
C’est parfois bien irritant au début (et même ensuite) en
particulier lors des modifications de schémas (ajout de
relations, suppressions..).
L. Gzara, E. Khouri, M Tollenaere
14
MSI 2A ICL – Initiation ACCESS Structures 2014
On continue avec les produits et les lignes
de commande
NUM-Client
nom
téléphone
e-mail
Adresse
pays
Produit
Commande
Client
0..*
1
totalfacturé ()
Cmd-en-cours ?
Est_composée-de>
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
0..*
0..*
Quantité
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
annuler ()
confirmer ()
Ajout-article
Chag-quantité
Créer la TABLE “Produit” avec les attributs :
- Code-prod (Numérique = clef)
- Désignation (Texte 50)
Alimenter la TABLE “Produit”
- PU (Monétaire €)
avec les données du fichier Excel
- Rayon (texte)
2014cmd-produits.xls
- Ss-rayon (texte)
L. Gzara, E. Khouri, M Tollenaere
15
MSI 2A ICL – Initiation ACCESS Structures 2014
puis les lignes de commande
NUM-Client
nom
téléphone
e-mail
Adresse
pays
Produit
Commande
Client
0..*
1
totalfacturé ()
Cmd-en-cours ?
Est_composée-de>
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
Quantité
annuler ()
confirmer ()
Ajout-article
Chag-quantité
Créer la TABLE “LigneCMD”
avec les attributs :
- Code-prod (Numérique = clef)
- Num-CMD (Numérique = clef)
- Quantité (Numérique)
L. Gzara, E. Khouri, M Tollenaere
0..*
0..*
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
16
Alimenter la TABLE “Ligne-CMD”
avec les données du fichier Excel
2014cmd-produits.xls
MSI 2A ICL – Initiation ACCESS Structures 2014
puis les lignes de commande
Attention à LA CLEF
double de la table “LigneCMD”
Code-prod et Num-CMD
En sélectionnant les 2
lignes, puis clic sur l’icone
“Clef”
Les attributs liés
DOIVENT être de même
type (ici entier long)
L. Gzara, E. Khouri, M Tollenaere
17
MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “Produits”
Onglet >> outils de base de données >> relations
Lier graphiquement
l’attribut CodeProduit et
Produit puis Commande
et NumCMD
Contraintes
d’intégrité
référentielle
L. Gzara, E. Khouri, M Tollenaere
18
MSI 2A ICL – Initiation ACCESS Structures 2014
Exploitons la base et ses données
1.
2.
3.
4.
5.
6.
7.
Le C.A. mensuel par magasin
Le CA par client et par an
Le CA par rayon et par an.
Le Top10 des clients
Le Top 10 des produits (par quantité, par CA)
Le montant des PU article par commande
Les commandes dont le montant s’écarte de plus de
10% du total des articles
L. Gzara, E. Khouri, M Tollenaere
19
MSI 2A ICL – Initiation ACCESS Structures 2014
Retour sur l’état (statut) des Commandes
L’état a été défini comme un texte libre !!!
Or, on doit pointer sur une liste finie d’états (preliminaire,
livree, payee) éventuellement extensible.
L. Gzara, E. Khouri, M Tollenaere
20
MSI 2A ICL – Initiation ACCESS Structures 2014
Retour sur l’état (statut) des Commandes
On crée une table
“Etats-CMD” qui va
contenir les statuts
successifs (dans un
ordre donné) pris
par les commandes.
La clef est bien le
nom de l’état (un
seul état “livrée”).
L. Gzara, E. Khouri, M Tollenaere
21
MSI 2A ICL – Initiation ACCESS Structures 2014
Retour sur l’état (statut) des Commandes
On la remplit et on la
rattache à l’attribut “Etat”
de la commande.
Toutes les commandes ont
alors un état “conforme” !!
L. Gzara, E. Khouri, M Tollenaere
22
MSI 2A ICL – Initiation ACCESS Structures 2014
Bénéfice : un menu déroulant permet de choisir l’état
Interface saisie de texte
Modification de l’attribut “Etat”
de la commande.
On passe en zone de liste
déroulante.
L. Gzara, E. Khouri, M Tollenaere
23
MSI 2A ICL – Initiation ACCESS Structures 2014
Bénéfice : un menu déroulant permet de choisir l’état
Le menu “zone de liste déroulante” se fait plus riche.
La source d’un controle est le
lieu de stockage du résultat
Nous allons éditer le contenu
sous forme d’une requete
On peut avoir des menus
déroulants à plusieurs
colonnes : exemple on
présente les noms, on
sélectionne le code.
L. Gzara, E. Khouri, M Tollenaere
24
MSI 2A ICL – Initiation ACCESS Structures 2014
Bénéfice : un menu déroulant permet de choisir l’état
Le contenu de “zone de liste déroulante”
D’où l’intérêt de
parler un peu SQL
Le menu déroulant se trouve dans tous les objets créés
L’interface d’acces à l’état de
la commande
Y a comme une erreur dans
l’ordre des états !!!!
Je vous laisse corriger…. et
apprécier comment Access gère
la dynamique des objets.
L. Gzara, E. Khouri, M Tollenaere
25
MSI 2A ICL – Initiation ACCESS Structures 2014
On est au bout de cette section
Vous savez maintenant :
•
•
•
•
•
•
•
•
Créer des structures de tables
Créer des attributs avec type et contraintes
(texte, entier, memo, date, objet OLE..)
Identifier et créer les clefs primaires
Importer des données
Copier – coller des données
Créer des contraintes d’intégrité entre tables
Utiliser les requètes “sélection” pour tirer des
informations des données
Créer des menus déroulants pour renseigner des
attributs
Il vous reste à travailler la création des interfaces, des
graphiques, la recherche de données, l’évolution des
données pour créer des applications.
C’est l’objet du prochain chapitre.
L. Gzara, E. Khouri, M Tollenaere
26
MSI 2A ICL – Initiation ACCESS Structures 2014