Initiation aux bases de donn - PowerPoint PPT Presentation

About This Presentation
Title:

Initiation aux bases de donn

Description:

(l'utilisateur pouvant alors mettre jour une partie des donn es) ... Alors, le sous-formulaire est mis jour son tour par la m thode Requery ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 23
Provided by: bernard48
Category:
Tags: alors | aux | bases | donn | initiation

less

Transcript and Presenter's Notes

Title: Initiation aux bases de donn


1
Initiation aux bases de données et à la
programmation événementielle
  • Cours N9
  • Gestion de la cohérence
  • avec des sous-formulaires.

Support de cours de Soheib BAARIR. Page web
pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/su
pport.htm E-mail souheib.baarir_at_u-paris10.fr
Université Paris Ouest Nanterre la
Défense. 2009-2010. Adapté du cours de B.
COFFIN. Reproduction interdite sans autorisation
écrite de lauteur.
2
Sous-formulaire
  • Un formulaire est un objet complexe composé de
  • contrôles.
  • Un formulaire peut être lui-même un contrôle
  • dun autre formulaire.
  • ? on parle alors de sous-formulaire.
  • Si le formulaire et le sous-formulaire ont
    chacun une
  • relation source, alors ils peuvent être liés.
  • ?Une valeur dun champ de lun correspond à
  • une valeur dun champ de lautre.

3
Un premier exemple
Formulaire Principal
Sous-Formulaire
4
Sous-formulaire lié / indépendant
  • Un sous-formulaire lié permet de gérer
    automatiquement
  • un lien logique lors de la création des
    enregistrements.
  • Un sous-formulaire indépendant permet dafficher
    des
  • informations complémentaires à celles du
    formulaire
  • principal.
  • Par exemple, il permet dafficher le détail dun
  • enregistrement dune table après la saisie de
    sa clef
  • (pour vérifier quil existe et que cest bien
    celui qui est
  • cherché).
  • Ce sont deux nouvelles façons de gérer
  • la cohérence de la base de données.

5
Construction dun Sous-formulaire
  • Cest un contrôle dun formulaire que nous
    appelons
  • formulaire principal.
  • On le crée en le dessinant sur la grille de
    construction
  • du formulaire principal.
  • Dans la propriété  objet source  on saisit le
    nom du
  • formulaire qui doit être inséré dans le
    formulaire principal.
  • Donc, le sous-formulaire doit avoir été
    construit avant
  • pour pouvoir devenir sous-formulaire.

6
Lien entre le formulaire principal et son
sous-formulaire
  • Le lien se fait
  • Entre enregistrements
  • utilisation des propriétés  champs pères  et
     champs fils  du contrôle sous-formulaire.
  • Par lintermédiaire de la requête décrivant la
    relation source du sous-formulaire.

7
Sous-formulaire lié
  • Le lien avec le formulaire principal est la
    réalisation dun
  • lien logique.
  • Il faut que la source du formulaire principal
    soit construite
  • sur une relation  père .
  • La relation source du formulaire qui est lui-même
    lobjet
  • source du contrôle sous-formulaire doit être
    construite sur
  • une relation  fils .
  • La valeur attribuée à la propriété  champs
    pères  du
  • contrôle sous-formulaire doit être le nom de la
    clef primaire
  • de la table (relation) père.
  • La valeur attribuée à la propriété  champs
    fils  du contrôle
  • sous-formulaire doit être le nom de la clef
    externe
  • correspondante dans la table (relation) fils.

8
Exemple Sous-formulaire lié
  • Exemple extrait dune base de données gérant
  • lapprovisionnement dune entreprise.
  • Table pour les fournisseurs tabFournisseur.
  • Table pour les produits tabProduit.
  • Un produit ne peut venir que dun fournisseur.
  • ? On est bien dans un lien père/fils
  • Père tabFournisseur.
  • Fils tabProduit.
  • En général on saisit à la fois un nouveau
    fournisseur et ses
  • premiers produits.
  • Lergonomie de ce traitement est bien adaptée à
    un
  • formulaire comprenant un sous-formulaire

9
Exemple création des tables
tabFournisseur Code fournisseur texte de 6
caractères clef primaire Nom fournisseur
texte de 50 caractères Adresse fournisseur
texte de 100 caractères Ville texte de 50
caractères Code postal entier long
tabProduit N produit NuméroAuto clef
primaire Libellé produit texte de 50
caractères Commentaire texte de 255
caractères Référence fournisseur texte de 6
caractères clef externe Prix achat
monétaire
10
Exemple Formulaire produit
  • FormProduit
  • Source Select From tabProduit
    Order BY Libellé produit
  • Zones de textes ztLibellé, ztCommentaire,
    ztPrix liées respectivement aux
  • trois champs
    Libellé produit, Commentaire, Prix achat
  • Pas de contrôle pour la clef primaire et la clef
    externe (gérées automatiquement).

11
Exemple Formulaire fournisseur
  • FormFournisseur
  • Source Select From
    tabFournisseur Order By Nom
    Fournisseur, Code postal, Ville
  • Cinq zones de textes ztCode_fournisseur,
    ztNom_fournisseur, ztAdresse,
    ztCode_postal, ztVille liées
    respectivement aux quatre champs Code
    fournisseur,Nom fournisseur,
    Adresse fournisseur, Code postal et Ville
  • Le contrôle lié à la clef primaire est
    nécessaire parce que le type de
  • cette clef nest pas NuméroAuto cest à
    lutilisateur de le fournir
  • (à moins quon ne prévoie un algorithme).
  • Un contrôle sous-formulaire sfProduits pour la
    saisie des
  • produits du fournisseur.

12
Exemple Formulaire fournisseur (suite)
Propriétés du contrôle sfProduits. Objet source
formProduit Champs pères Code
fournisseur Champs fils Référence
fournisseur
13
Exemple Formulaire fournisseur (fin)
14
Exemple Formulaire complet
15
Sous-formulaire indépendant
  • Le lien avec le formulaire principal doit être
    géré par
  • lapplication.
  • On lutilise pour afficher des informations
    complexes en liaison
  • avec le contenu du formulaire principal.
  • Le lien se fait par lintermédiaire dune clause
    de restriction sur
  • la requête de description de la relation source
    du sous-
  • formulaire.
  • La programmation événementielle gère
    lutilisation du sous-
  • formulaire.

16
Exemple sous-formulaire indépendant
  • Construction dun formulaire permettant lajout
    dun produit (le
  • fournisseur étant déjà enregistré)
    formAjout_produit la relation
  • source est construite sur la table  fils 
    tabProduit.
  • Lutilisateur doit saisir directement le code du
    fournisseur (connu)
  • dans la zone de texte ztRéférence_fournisseur
    (liée à la clef externe
  • Référence fournisseur).
  • Lapplication doit alors afficher la description
    complète de
  • lenregistrement du fournisseur correspondant
    au code saisi
  • (lutilisateur pouvant alors mettre à jour une
    partie des données).
  • Le contrôle utilisé pour ça est un
    sous-formulaire dont la relation
  • source est construite sur la table  père 
    tabFournisseur.
  • Le lien entre le formulaire principal et le
    sous-formulaire se fait par
  • lintermédiaire de la requête de la source du
    sous-formulaire.

17
Exemple construction du sous- formulaire
indépendant
  • formAfficher_fournisseur
  • Source SELECT FROM tabFournisseur WHERE
    code fournisseur
    forms!formAjout_produit!ztRéférence_fournisseur
  • Une zone de texte liée à chacun des champs (sauf
    la clef primaire qui
  • doit être égale au contenu du contrôle
    ztRéférence_fournisseur du
  • formulaire principal).

18
Exemple construction du formulaire principale
  • formAjout_produit
  • Source SELECT FROM tabProduit
  • Une zone de texte liée à chacun des champs (sauf
    la
  • clef primaire qui est gérée par lapplication
    NuméroAuto)
  • Un contrôle sous-formulaire sfFournisseur
  • Objet lié formAfficher_fournisseur
  • Pas de lien  champs pères  /  champs fils  !
  • Le lien se fait par lintermédiaire de la
    requête
  • source du formulaire formAfficher_fournisseur

19
Exemple formulaire complet
20
Exemple Programmation des gestionnaires
dévènements (1/3)
  • Elle concerne uniquement le formulaire principal
  • formAjout_produit.
  • Lors de louverture du formulaire, il faut se
    placer sur un
  • nouvel enregistrement (derrière ceux qui
    existent déjà)
  • Private Sub Form_Load()
  • DoCmd.GoToRecord acDataForm, "formAjout_produit",
    acNewRec
  • on peut laisser vide les deux premiers
    arguments
  • parce quil sagit de lobjet actif on écrit
    alors
  • DoCmd.GoToRecord , , acNewRec
  • End Sub

21
Exemple Programmation des gestionnaires
dévènements (2/3)
22
Exemple Programmation des gestionnaires
dévènements (3/3)
  • Après modification de la valeur de la zone de
    texte
  • ztRéférence_fournisseur, il faut mettre à jour
    le contenu du contrôle sous-
  • formulaire.
  • Private Sub ztRéférence_fournisseur_AfterUpdate
  • sfFournisseur.Requery
  • End Sub

Le contrôle est mis à jour quand on le quitte.
Alors, le sous-formulaire est mis à jour à son
tour par la méthode Requery
Write a Comment
User Comments (0)
About PowerShow.com