Académique Documents
Professionnel Documents
Culture Documents
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 2
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Une base de données est créée pour être consultée, pour être mise à jour. Pour créer et utiliser les
bases de données on utilise des logiciels appelés : Système de Gestion de Base de Données
Relationnelles ou SGBDR).
2 Objectif et méthodologie
Vous allez apprendre à utiliser Access 2007 directement par la pratique en créant une application
qui vous permettra d’utiliser une base données relationnelle tout en apprenant les fonctions Access.
L’apprentissage va se faire façon progressive, vous créerez une application simple à deux tables. Au
fur et à mesure du déroulement du support vous allez découvrir un large panel de possibilités qui
vous permettront de visualiser toutes les possibilités qu’offre un SGBDR.
Ce module n'aborde pas le principe des champs calculés dans des requêtes et formulaires.
Je n'aborde pas non plus le principe des critères insérés dans des requêtes sélections.
Il n'est pas non plus question d'applications à 3, 4 ou 5 tables qui sont bien évidemment des
applications plus complexes.
Ces notions seront vues dans un second tutoriel qui présente les fonctions avancés d'Access.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 3
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 4
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Nous avons supprimé le prix total qui correspond à une donnée calculée.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 5
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 6
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
La relation entre les tables est souvent de type mère/fille Une mère peut avoir plusieurs filles,
mais une fille ne peut avoir qu’une seule mère. Dans notre exemple, un patient peut réaliser
plusieurs visites, mais une visite ne peut concerner qu’un seul patient. En conséquence, la table
Patients est la table mère et la table Visites la table fille.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 7
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
1
Par convention on attribue un dièse après une clé externe
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 8
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 9
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
En utilisant la même
procédure saisissez les
autres champs de votre
table.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 10
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
La clé primaire doit permettre d’identifier de façon unique un enregistrement dans une table.
La clé primaire sert également à établir des relations entre les tables.
Un enregistrement est un ensemble de champs et un champ est un attribut d’un enregistrement.
Exemple d’un enregistrement :
Num_Client Nom_Client Prénom_Client, Adresse_Client CP_Client, Ville_Client
12345 Martin Sylvie 1, rue Verte 95000 Cergy
Exemple d’un champ :
Num_Client
12345
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 11
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Une fois vos enregistrements saisis et votre clé insérée vous pouvez enregistrer votre table en la
nommant Visites puis vous pouvez la fermer.
Nous pouvons faire le choix de saisir dans nos tables mais vous allez voir que c’est tout de même
plus facile et surtout plus convivial de le faire via un formulaire et un sous formulaire.
En résumé pour l’instant vous avez créé la structure de vos deux tables mais il n’y a aucune
information concernant des patients ou des visites.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 12
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Repérer le champ
Civilité_Patient puis
cliquez sur la flèche qui
commande le menu
déroulant du champ Texte.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 13
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Sélectionnez l’option
Assistant Liste de choix.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 14
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Conservez le nom de
l’étiquette du champ
Civilité_Patient.
Cliquez sur Terminer.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 15
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 16
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Appliquer l’intégrité référentielle
Cela rend impossible la saisie dans la table Visites d’un Num_Patient inexistant dans la table
Clients.
Mettre à jour en cascade les champs correspondants
Si vous activez la case à cocher Mettre à jour en cascade les champs correspondants lorsque vous
définissez une relation entre les tables, chaque fois que vous modifiez la clé primaire d'un
enregistrement dans la table primaire, Access met automatiquement à jour la clé primaire avec la
nouvelle valeur dans tous les enregistrements liés.
Effacer en cascade les enregistrements correspondants
Impossibilité de supprimer un enregistrement primaire et tous les enregistrements correspondants en
une seule fois, si la case à cocher Effacer en cascade les enregistrements correspondants est
activée. Si la case est cochée alors chaque fois que vous supprimez des enregistrements dans la
table Patients, Access supprime automatiquement les enregistrements dans la table liée.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 17
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 18
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Vous allez maintenant insérer tous les champs de la table Visites à l’exception du champ
Num_Patient (il est déjà inséré par le biais de la table Patients).
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 19
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Vous devez obtenir ce qui figure ci-dessous :
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 20
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 21
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
L'option Feuille de
données doit à priori être
sélectionnée par défaut
sinon cochez la.
Une fois fait cliquez sur
Suivant.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 22
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Le formulaire affiche les champs de la table Patients (mère) dans le formulaire du haut, les champs
de la table Visites (fille) dans le sous formulaire du bas.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 23
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Bouton de
défilement du
sous-formulaire.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 24
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 25
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Saisissez dans votre sous formulaire ce qui figure ci-dessous :
Num_Vis Date_Vis Taille_Vis Poids_Vis Symptome_Vi Diagnostique_V Prescription_V Prix_Vis Prix_Ac
ite ite ite ite site isite isite ite te
2 21/06/20 175 65 Maux de Angine Doliprane 500 22,00 € 0,00 €
10 gorge
Vous pouvez constater que le Num_Visite commence par le chiffre 3, c'est normal car c'est la 3ème
consultation si on compte également la consultation du 2ème patient.
Fermez votre formulaire en cliquant sur la petite croix en haut à droite de votre formulaire.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 26
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Dans la zone
Tables/Requêtes
sélectionnez la requête
RPatient_Visites.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 27
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 28
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 29
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 30
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 31
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 32
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 33
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Cliquez sur l'option Opérations sur Formulaire dans la zone Catégories puis
cliquez sur l'option Ouvrir un formulaire dans la zone Actions.
Une fois fait cliquez sur Suivant.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 34
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 35
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 36
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
Votre formulaire doit à priori s'afficher (voir ci-dessous) donc cela fonctionne.
Revenez dans votre formulaire.
En utilisant la même
procédure insérez un bouton
qui permet l'ouverture de
l'état EPatients.
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 37
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart
11 Exercice
L'association sportive de Chtitville souhaite informatiser la gestion de
ces adhérents.
En effet auparavant l'association utilisait des fiches cartonnées pour le
suivi des inscriptions et des cotisations et cela engendrait des
procédures administratives lourdes et fastidieuses.
En fonction de l’annexe 1 vous devez être capable de construire une base de données qui permette
de visualiser les informations suivantes :
1. Vous créerez les deux tables dont vous avez le détail en annexe. Attention à bien insérer les clés
primaires.
2. Vous établirez la relation entre ces deux tables.
3. Vous créerez la requête relationnelle.
4. Chaque sport doit permettre de visualiser dans un formulaire et son sous-formulaire le montant
de la cotisation annuelle demandée par sport, les adhérents inscrits et le montant de la cotisation
versée par adhérent.
5. Vous créerez un état permettant de visualiser toutes les informations par discipline sportive ainsi
que le total des cotisations versées par sport.
6. Vous créerez un formulaire Menu qui permet d'accéder au formulaire et à son sous formulaire
ainsi qu'à l'état.
Annexe 1
Table Sport Table Adhérent
Champs Type Champs Type
CodeSport Numérique N°identifiant Numérauto
Nomsport Texte Titre Texte
Montantcotisationannuelle Monétaire Nom Texte
Prénom Texte
Adresse Texte
CP Texte
Ville Texte
Tél Texte
E-mail Texte
Dateinscription Date/heure
CodeSport Numérique
RéglementCotisation Monétaire
Access 2007. Conception d’une base de données relationnelle. Christophe Malpart. Page 38
Christophe Malpart
Access 2007. Niveau 2. Christophe Malpart
1 Objectif____________________________________________________________________ 4
1.1 Les tables ____________________________________________________________________ 4
1.2 Les requêtes __________________________________________________________________ 4
1.3 Les formulaires ________________________________________________________________ 4
1.4 Les états _____________________________________________________________________ 4
1.5 Macro-commande _____________________________________________________________ 4
2 Projet _____________________________________________________________________ 5
3 Les tables __________________________________________________________________ 5
3.1 Paramétrages des tables ________________________________________________________ 5
3.2 La clé primaire ________________________________________________________________ 6
3.3 Le masque de saisie ____________________________________________________________ 6
3.4 Contrôle de saisie _____________________________________________________________ 11
3.5 Création des deux autres tables _________________________________________________ 12
3.6 Paramétrer des listes déroulantes ________________________________________________ 12
3.7 Relier les tables_______________________________________________________________ 15
3.8 Saisir les données _____________________________________________________________ 17
4 Les requêtes _______________________________________________________________ 18
4.1 Requête sélection _____________________________________________________________ 18
4.2 Requête sélection avec champs calculés ___________________________________________ 19
4.3 Requête suppression __________________________________________________________ 21
4.4 Requête mise à jour ___________________________________________________________ 23
4.5 Requête sélection avec critère de saisie programmée ________________________________ 23
5 Les formulaires ____________________________________________________________ 24
5.1 Formulaire instantané _________________________________________________________ 24
5.2 Formulaire avec sous formulaire à l'aide de l'assistant _______________________________ 25
5.3 Modifier un formulaire_________________________________________________________ 28
5.4 Formulaire avec sous formulaire multiple dans des onglets ___________________________ 32
5.4.1 Créer un onglet ______________________________________________________________________ 32
er
5.4.2 Copier le 1 sous-formulaire dans un deuxième onglet ______________________________________ 34
ème ème
5.4.3 Copier le 2 sous formulaire dans le 2 onglet __________________________________________ 35
5.4.4 Renommer les onglets ________________________________________________________________ 36
5.5 Ajout de champs calculés dans un formulaire_______________________________________ 37
5.5.1 Programmer un champ calculé__________________________________________________________ 38
5.6 Créer un groupe de boutons ou cases à cocher______________________________________ 40
6 Les états __________________________________________________________________ 44
6.1 Etat avec assistant ____________________________________________________________ 44
6.2 Etat avec option de synthèse ____________________________________________________ 49
7 Formulaire auto exécutable __________________________________________________ 53
12 Objectif
Il est question à présent de vous faire travailler sur un cas pratique en apprentissage
programmé afin de vous montrer toutes les fonctionnalités (ou presque) du logiciel
Access.
Je ne reviens pas sur la conception du MCD et ses différentes étapes car cela a été
vu dans le module 1.
Il sera question de procéder ainsi :
12.5 Macro-commande
Insertion d'un auto-exécutable
13 Projet
La société Vins de Touraine commercialise des vins de Loire auprès de
particuliers, entreprises et administrations. Elle s'est constituée un fichier client et
désire à présent informatiser la facturation et la gestion du suivi de la facturation.
Par simplification nous partirons du principe que la société ne commercialise qu'un
seul vin (ce qui est évidemment très rare dans la réalité) mais je ne voulais pas
rentrer dans une procédure de saisie d'articles avec une grille tarifaire. Par
conséquent l'article a un seul prix qui se module en fonction de la quantité commandée.
14 Les tables
Trois tables à paramétrer :
La gestion des clients,
La gestion des ventes,
La gestion des évaluations par phoning,
Le masque de saisie se
présente ainsi.
Le paramétrage est terminé. L'onglet Liste de choix récapitule les paramètres de la liste.
Nous allons à présent relier nos tables par un cliquer-glisser de la clé primaire de la table mère vers
la clé externe de la table fille.
Procédez de la même façon avec la clé primaire de la table Clients et la clé externe (N°client) de la
de la table Phoning.
Table Facturation
Saisissez les données suivantes dans la table Facturation.
Table Phoning
Saisissez les données suivantes dans la table Phoning.
15 Les requêtes
15.1 Requête sélection
Ajoutez dans un 1er temps le champ CA plafond dans la table Clients afin de protéger la société
contre les risques d'impayés.
Pour paramétrer un champ au format Euro, ré affichez votre requête en mode création clic droit
sur le champ à traiter (TVA par exemple), clic gauche sur l'option Propriétés.
Sélectionnez l'option Euro dans la
liste déroulante de l'option
Format.
Ajouter à présent un nouvel enregistrement dans votre table Clients en saisissant les
informations ci-dessous:
Civilité Nom CP Ville CA
N°client Société Rue client Tél client
client client client client plafond
411013 MENUISERIE Monsieur DUBOIS 9, rue de la 37000 TOURS 02 47 85 10 000,00
LAPLANCHE Chaise 63 12 €
Une fois fait, enregistrez les modifications et fermez la table Clients.
Vous avez à présent 13 enregistrements au lieu de 12.
Ouvrez une requête en mode Création, ajouter la table Clients et insérez tous les champs de
cette table.
Cliquez sur l'option
Suppression du groupe Type
de requête de l'onglet Créer.
Exécutez la requête.
Une fenêtre vous demande
confirmation et vous signale
qu'il ne sera pas possible
d'annuler l'opération.
Cliquez sur Oui.
Info plus : Pour pouvoir exécuter la requête il faut impérativement désactiver le mode protégé
d'Access.
Enregistrez votre requête en la nommant Requête Suppression puis fermez cette requête.
Ouvrez votre table Client pour vérifier.
Exécutez la requête.
Une fenêtre vous demande
confirmation et vous signale
qu'il ne sera pas possible
d'annuler l'opération.
Cliquez sur Oui.
Enregistrez votre requête en la nommant Requête Mise à jour puis fermez cette requête.
Ouvrez votre table Client pour vérifier.
Enregistrez votre requête en la nommant Requête Client puis fermez cette requête.
16 Les formulaires
Vous souhaitez paramétrer des formulaires de saisie afin de rendre les opérations de saisie et de
consultations plus pratiques.
Cliquez sur la Cliquez sur l'option
table Facturation. Formulaire de groupe
Formulaires de l'onglet
Créer.
Sélectionnez la table
Facturation.
Ici ce sont les boutons qui vous Ici ce sont les boutons qui vous
permettent de naviguer dans permettent de naviguer dans
votre formulaire. votre sous formulaire.
Etiquette
Contrôle
Par défaut, les étiquettes et les contrôles du formulaire sont placés dans un tableau dont le
paramétrage concerne tous les champs. Pour traiter individuellement chaque champ, nous devons
commencer par dissocier les champs.
Sélectionnez les champs par
cliquer-glisser.
Paramétrer le titre en
complétant le texte.
Pour la mise en forme il
suffit d'utiliser les options du
groupe Police de l'onglet
Accueil.
Allongez votre
formulaire en
descendant vers le
bas cette zone.
Nous allons maintenant créer le sous-formulaire du phoning. Pour cela, nous allons créer un
formulaire Clients avec sous-formulaire Phoning. Puis nous transférerons le sous-formulaire
Phoning par copier-coller.
Dans un 1er temps fermez le formulaire Clients et son sous-formulaire Facturation en prenant
soin d'enregistrer au préalable les modifications.
Créez un formulaire Clients avec comme sous formulaire Phoning. C'est la même procédure
que pour la création du formulaire Clients avec comme sous-formulaire Facturation (vous
devez utiliser deux tables, la table Clients et la table Phoning).
Cliquez sur l'onglet Toutes
puis dans la zone Nom
saisissez Facturation.
Cliquez sur le
1er onglet à
gauche.
Paramétrez le format de la
donnée en Euro en cliquant
sur la liste déroulante de
l'option Format onglet Toutes
du volet Feuille de propriétés
à droite de votre écran.
Sélectionnez le champ de la
table dans lequel enregistrer la
donnée Statut.
Cliquez sur Suivant.
Complétez le formulaire en activant la case Particulier lorsque rien n'est saisi dans la cellule
Société, dans le cas contraire il faut activer la case Entreprise (vous n'avez pas encore de client
de l'administration).
Enregistrez les modifications et fermez votre formulaire;
Vérifiez dans la table Clients si cela s'est bien répercuté.
17 Les états
Un état permet d'imprimer des données en utilisant une mise en page personnalisée.
Il est créé à partir de tables ou de requêtes.
Il permet :
• Des regroupements de données,
• Des calculs automatiques de totaux et sous-totaux pour les champs numériques et financiers.
• D'intégrer des graphiques et des images,
• De paramétrer des en-têtes et pieds de page.
Testez votre requête en cliquant sur le bouton Exécuter, saisissez le N° de facture 1 par
exemple.
Si la requête s'exécute convenablement, sauvegardez puis fermez cette requête.
Nous allons à présent utiliser cette requête pour créer un état.
Cliquez sur l'option Assistant
Etat du groupe Etats de
l'onglet Créer.
Sélectionnez la Requête
Facture client.
Supprimez ce critère.
Sélectionnez Opérations
sur formulaire dans la
zone Catégories puis
sélectionnez l'option
Ouvrir un formulaire.
Une fois fait cliquez sur
Suivant.
Sélectionnez le formulaire
Clients puis cliquez sur
Suivant.
Le remplissage
d'arrière plan du
formulaire se fait par le
biais des options du
groupe Police de
l'onglet Création.
Sauvegardez votre
macro en la nommant
Autoexec.