Initiation MS Access 2010 Structures – Tables, schémas et Données
description
Transcript of Initiation MS Access 2010 Structures – Tables, schémas et Données
L. Gzara, E. Khouri, M Tollenaere 1 MSI 2A ICL – Initiation ACCESS Structures 2014
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 2 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 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
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 3 MSI 2A ICL – Initiation ACCESS Structures 2014
Principes généraux de l’interface
Zone de menu principalFichier -- Accueil – Créer – Données ext …
Les objets
AccessTables – Requetes –
Formulaires – Macros…
Zone d’icones
contextuellesAffichage – Presse Papier –
Trier et filtrer…
Zone de travail
Sélectionner “Outils de base de données” >> Relations
L. Gzara, E. Khouri, M Tollenaere 4 MSI 2A ICL – Initiation ACCESS Structures 2014
Modèle statique UML
Commande
annuler ()
confirmer ()
Ajout-article
Chag-quantité
ClientNUM-Client
nom
téléphone
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
A-effectué>
1
0..*
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
Produit
0..*
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
Est_composée-de>
0..*
Quantité
Cahier des charges : modèle de classes UML à implémenter
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 5 MSI 2A ICL – Initiation ACCESS Structures 2014
Modèle statique UML
Commande
annuler ()
confirmer ()
Ajout-article
Chag-quantité
ClientNUM-Client
nom
téléphone
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
A-effectué>
1
0..*
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
Produit
0..*
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
Est_composée-de>
0..*
Quantité
Créer une TABLE “Client” avec les attributs :
-Num-client
-Nom
-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
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
Attentio
n au
type de chaque
attribut
L. Gzara, E. Khouri, M Tollenaere 7 MSI 2A ICL – Initiation ACCESS Structures 2014
Alimenter les données de la table “Client”
Les 216 enregistrements sont tous compatibles avec les
contraintes sur attributs (dont Clef primaire)
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
L. Gzara, E. Khouri, M Tollenaere 8 MSI 2A ICL – Initiation ACCESS Structures 2014
On continue avec la table “Commande”
Commande
annuler ()
confirmer ()
Ajout-article
Chag-quantité
ClientNUM-Client
nom
téléphone
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
A-effectué>
1
0..*
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
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 9 MSI 2A ICL – Initiation ACCESS Structures 2014
Alimenter les données de la table “Commande”
Les 300 enregistrements sont tous compatibles avec
les contraintes sur attributs (dont Clef primaire)
On importe les commandes
Par Données externes :
-Excel -- Importer
-Ou par Copier - Coller
Vérifiez champ par champ la
validité des structures:
L. Gzara, E. Khouri, M Tollenaere 10 MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
Lier graphiquement l’attribut Client et Num-client
Contrainte d’intégrité référentielle
Onglet >> outils de base de données >> relations
L. Gzara, E. Khouri, M Tollenaere 11 MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
Lier graphiquement l’attribut Client et Num-client
Contrainte d’intégrité référentielle
Onglet >> outils de base de données >> relations
L. Gzara, E. Khouri, M Tollenaere 12 MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “clients”
On peut maintenant implémenter les méthodes de la classe
“client” : mcd en cours? Et Montant total?
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.
L. Gzara, E. Khouri, M Tollenaere 13 MSI 2A ICL – Initiation ACCESS Structures 2014
Implémenter les méthodes pour les “clients”
Commande en cours? ………… Montant total payé / client (top 10) ?
Bravo, une partie du SI client –
commande – produit est réalisée.
Nous allons continuer avec les produits.
L. Gzara, E. Khouri, M Tollenaere 14 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 15 MSI 2A ICL – Initiation ACCESS Structures 2014
On continue avec les produits et les lignes
de commande
Créer la TABLE “Produit” avec les attributs :
-Code-prod (Numérique = clef)
-Désignation (Texte 50)
-PU (Monétaire €)
-Rayon (texte)
-Ss-rayon (texte)
Commande
annuler ()
confirmer ()
Ajout-article
Chag-quantité
ClientNUM-Client
nom
téléphone
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
A-effectué>
1
0..*
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
Produit
0..*
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
Est_composée-de>
0..*
Quantité
Alimenter la TABLE “Produit”
avec les données du fichier Excel
2014cmd-produits.xls
L. Gzara, E. Khouri, M Tollenaere 16 MSI 2A ICL – Initiation ACCESS Structures 2014
puis les lignes de commande
Créer la TABLE “LigneCMD”
avec les attributs :
-Code-prod (Numérique = clef)
-Num-CMD (Numérique = clef)
-Quantité (Numérique)
Commande
annuler ()
confirmer ()
Ajout-article
Chag-quantité
ClientNUM-Client
nom
téléphone
Adresse
pays
totalfacturé ()
Cmd-en-cours ?
A-effectué>
1
0..*
NUM-CMD
Montant-payé
Date-cmd
Date-livraison
Date paiement
Produit
0..*
CODE
Désignation
Rayon
Ss-Rayon
Prix-Unitaire
Est_composée-de>
0..*
Quantité
Alimenter la TABLE “Ligne-CMD”
avec les données du fichier Excel
2014cmd-produits.xls
L. Gzara, E. Khouri, M Tollenaere 17 MSI 2A ICL – Initiation ACCESS Structures 2014
puis les lignes de commande
Attention à LA CLEF
double de la table “Ligne-
CMD”
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 18 MSI 2A ICL – Initiation ACCESS Structures 2014
Lier les “Commandes” et les “Produits”
Lier graphiquement
l’attribut CodeProduit et
Produit puis Commande
et NumCMD
Contraintes d’intégrité
référentielle
Onglet >> outils de base de données >> relations
L. Gzara, E. Khouri, M Tollenaere 19 MSI 2A ICL – Initiation ACCESS Structures 2014
Exploitons la base et ses donnéesRequêtes
1. Le C.A. mensuel par magasin
2. Le CA par client et par an
3. Le CA par rayon et par an.
4. Le Top10 des clients
5. Le Top 10 des produits (par quantité, par CA)
6. Le montant des PU article par commande
7. Les commandes dont le montant s’écarte de plus de
10% du total des articles
L. Gzara, E. Khouri, M Tollenaere 20 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 21 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 22 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 23 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 24 MSI 2A ICL – Initiation ACCESS Structures 2014
Bénéfice : un menu déroulant permet de choisir l’état
La source d’un controle est le
lieu de stockage du résultat
Le menu “zone de liste déroulante” se fait plus riche.
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 25 MSI 2A ICL – Initiation ACCESS Structures 2014
Bénéfice : un menu déroulant permet de choisir l’état
D’où l’intérêt de
parler un peu SQL
Le contenu de “zone de liste déroulante”
L’interface d’acces à l’état de
la commande
Le menu déroulant se trouve dans tous les objets créés
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 26 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.