accesstp-01
TRANSCRIPT
1
IESP2A
Université du Littoral Côte d'Opale
Année universitaire 2010 / 2011
Base de données
TP N°01
Enoncé
Vous travaillez dans un organisme de formation. On vous confie le soin de créer une base de
données dans le but de gérer les stagiaires. Voici un brouillon de la fiche désirée :
Après analyse de cette fiche, on s'aperçoit qu'il y a deux types de données : celles qui concernent
les stagiaires individuellement et celles qui concernent les stages globalement. On en déduit qu'il faut
utiliser deux tables dont on peut donné la structure
2
Nom des tables Les champs Type Descriptions
1 Stages ReferenceStage NuméroAuto va permettre le lien pour les annotations
NomStage Texte - 20
DateDebutStage Date/Heure
DateFinStage Date/Heure
CommentaireStage Texte - 255
2 LesStagiaires ReferenceStagiaire NuméroAuto index
NomStagiaire
Prenom Texte - 30
ReferenceStage Texte - 30
Numérique
permettra de faire le lien avec
l'autre table
DateNaissance Date/Heure
Adresse Texte - 80
CodePostal Texte - 10
VilleStagiaire Texte - 40
TelephonePerso Texte - 20
TelephoneTravail Texte - 20
TelephonePortable Texte - 20
CommentairesStagiaires Mémo texte de grande taille (zone de saisie libre)
DateCreationFicheStagiaires Date/Heure la saisie sera automatique
DateDerniereModifStagiaires Date/Heure la date se modifiera à chaque modification
de la fiche
L'exercice consiste donc à :
1. Créer la structure de ces deux tables
2. Saisir directement dans la table Stages :
2 stages :
o DTS 1 - 1/4/1999 - 30/3/2000 - premier stage
o DTS 2 - 1/4/2000 - 30/3/2001 - deuxième stage
2 stagiaires par stage (pour les tests)
3. Créer le formulaire de saisie :
Pour les stages avec la liste des stagiaires composant les stages (saisir deux stages
supplémentaires DTS3 et DTS4)
Pour les stagiaires avec les données concernant les stages (effectuer les saisies nécessaires
pour qu'il y ait 5 stagiaires dans chaque stage.
4. Créer un menu qui se lancera automatiquement au démarrage et qui permettra de lancer le
formulaire des stages et celui des stagiaires.
5. Les dates « Création » et « DateDerniereModifStagiaires » doivent être remplies
automatiquement.
Remarque : dans cette base de données, pour simplifier, un stagiaire ne peut faire partie que d'un
stage.
3
1 Création de la base et de la première table
Lancer Access soir avec l’icône , soit avec : Demarrer Programmes Access
Si on clique sur « Nouvelle base de données », on obtient l’écran suivant :
Un nom est demandé dès le début car la base est écrite directement sur le disque dur, à la différence
de nombreux logiciels qui stockent leurs documents en mémoire jusqu'à la première sauvegarde
volontaire. On choisira comme nom de la base : « GestionStagiaires » (ce qui sera plus parlant que le
« bd1.mdb » qui est proposé par défaut)
4
Voici la page initiale de Microsoft Access : une feuille blanche avec 6 onglets :
Tables
Requêtes
Formulaires
États
Macros
Modules
On choisira « nouveau » de l'onglet Tables : car on veut d'abord créer la table des stages.
On choisira le « Mode Création » qui nous fait directement entrer dans le coeur d'une table.
5
On obtient une zone de saisie avec 3 colonnes :
Le Nom du champ (fixé dans l'énoncé)
Type de données (fixé dans l'énoncé)
Description (facultative)
On commence donc à saisir dans la colonne Nom du champ : (dans le nom du champ, les accents et
les espaces sont autorisés, mais nous ne les utiliserons pas, par respects des normes et pour éviter
certains problèmes de compatibilités) on choisira le type « NuméroAuto » pour le champ de
« ReferenceStage » et on cliquera « clé primaire » pour ce champ avec l'icône qui va bien (la clé) ou
le bouton droit de la souris lorsqu'on est sur la bonne ligne.
La clé signifie que chaque fiche « Stage » sera repérée par un numéro unique qui sera attribué
automatiquement grâce au type « NuméroAuto »
6
Et on enregistre notre première table en l'appelant « Stages »
En fermant la fenêtre création, on peut s'assurer que notre première table vient bien d'être créée (on
voit les dates en mode « affichage Détails » = icône entouré)
Double-cliquer la table stages et rentrer les 2 stages suivants :
DTS 1 01/04/1999 30/03/2001 Premier stage
DTS 2 01/04/2000 30/03/2001 Deuxième stage
On peut utiliser la touche « Tab » pour se déplacer entre les champs
2 Création de la deuxième table
En mode création :
7
C’est ici une des clefs d'Access : créer un lien avec une autre table !
8
On choisit uniquement les deux premiers champs avec la petite flèche indiquée entourée.
Les 2 stages saisis (DTS1 et DTS2) doivent apparaître sous « NomStage » :
9
Voici ce qui doit apparaître en cliquant l'onglet « liste de choix » :
Fermer les fenêtres concernant les tables puis cliquer « relations »
10
L’intégrité référentielle signifie que le champ « ReferenceStage » de la fiche stagiaire doit être
obligatoirement rempli avec une donnée de la table « Stage ». Il faudra donc commencer à saisir la
table des stages ! Résultat de l'opération d'intégrité référentielle :
Les stagiaires ne font partie que d'un seul stage (1) et pour 1 stage il peut y avoir plus d'un stagiaire
(symbole infini).
Fermer la fenêtre « Liaisons » puis cliquer sur la table « LesStagiaires » ; et là, suspens...
11
... si l'ascenseur apparaît lorsqu'on clique dans la 4ème colonne (« ReferenceStage ») la partie est
gagnée !
3 Notre premier formulaire !
12
Tous les champs de la table « LesStagiaires » sont pris (touche deux chevrons).
Pour la table « Stages », on écarte « ReferenceStage » qui est déjà présent mais on peut aussi le
laisser, pour voir...
13
Voici ce que propose l'assistant d'Access, par défaut. Ce qui donne, après quelques clics bien
ajustés... (Attention, le temps passe vite !) :
14
Si le bouton n'apparaît pas sur le contrôle correspondant au choix du stage, il faut user du bouton
droit de la souris et forcer : remplacer par... zone de liste modifiable
Si un champ disparaît il faut aller au menu Affichage :
Choisir le champ et le glisser dans le formulaire.
Ce qui donne lorsqu'on se met en mode formulaire ( )
4 Création du deuxième formulaire
Celui des stages, avec un aperçu des stagiaires de chaque stage sous forme de sous formulaire (un
des intérêt d'Access !).
15
16
Tous les champs de la table des stages sont pris et pour les stagiaires on ne prend que son nom,
prénom et code postal qui apparaîtront dans la liste des stagiaires (on peut choisir autre chose que le
code postal).
17
Après avoir fermé ce formulaire, voici ce qui apparaît (aux dates près)
18
5 Création du menu principal de notre application.
Le Menu principal est l'écran sur lequel on installera des boutons qui nous permettront d'aller dans les
formulaires ou de quitter l'application.
19
Pour enlever la barre qui se place à droite du formulaire :
On va créer notre premier bouton :
20
L’option par défaut est « image ». Nous préférerons le texte
21
6 Modification des formulaires avec ajout de boutons retour et Fin de l'application
On crée l'en-tête de formulaire pour y placer un bouton qui permettra de revenir au menu principal :
On accepte le choix par défaut :
22
On profite du mode création pour mettre un titre et quelques couleurs il faut utiliser les propriétés de
chaque contrôle ou les icônes de la barre d'outils contextuel (bouton droit de la souris)
Ce qui donne, lorsqu'on se replace en
Notre menu principal se peaufine :
23
On place dans l'autre formulaire ce bouton suggestif qui le fermera, ce qui fera réapparaître le menu
principal :
... qu'il faut enregistrer :
Voici un bouton qui permet de revenir au menu Access initial (pour vous le développeur).
24
Voici le bouton (cerise sur le gâteau) qui permet de quitter complètement l'application (à sauvegarder
avant de cliquer, car on scie, ainsi, la branche sur laquelle on est installé...)
Après quelques tâtonnements de mise en place des boutons je propose cette disposition, mais c'est
vous qui créez. Vous êtes donc libres de votre agencement.
7 Création de la macro-instruction « autoexec » qui lance le menu principal au démarrage + bouton raccourci sur le bureau, associé à la base de données
On se lance dans notre première macro :
Première instruction : le menu principal prendra toute la fenêtre
25
La seconde et dernière instruction ouvrira le formulaire Menu Principal :
On l'enregistre avec ce nom imposé qui sera lancé automatiquement par Access lorsqu'on ouvrira le
fichier « Gestion Stagiaires.mdb »
26
Avec l'explorateur (en mode fenêtré, pour laisser un bout du bureau apparent), on repérera le fichier
de la base et on le glissera AVEC LE BOUTON DROIT DE LA SOURIS ! Sur le bout de bureau et on
choisira : si vous utilisez le bouton droit, comme à votre habitude, vous allez déplacer votre base de
donnée sur le bureau où elle y sera très vulnérable ! Appuyez immédiatement dans ce cas là sur
CTR+Z ce qui remettra le fichier à sa place.
Voici l'icône produite. Notez bien la petite flèche qui indique un raccourci. Sinon, vérifiez bien avec les
propriétés du fichier que ce n'est pas un fichier MDB
27
En le cliquant, voici ce que vous devez voir apparaître lorsque le sablier s'efface :
8 Mise à jour automatique des dates
Comme n'importe quel fichier, chaque fiche gardera la trace de l'instant de sa création et celui de sa
dernière modification.
C'est la partie la plus technique de notre exercice : se placer sur le formulaire (CTR+R), puis appeler
les propriétés avec le bouton droit de la souris puis il faut se placer dans le contrôle « Avant MAJ » (et
non pas « Après MAJ » comme je l'ai fait intuitivement plusieurs jours de suite mais sans succès
jusqu'au jour où, me trompant de ligne, je suis parvenu à mes fins...)
Ajoutez cette ligne (en visual basic) dans le module. La date de Maj de chaque fiche se mettra à
l'heure système après chaque modification. Le nom du champ peut avantageusement provenir d'un
« copier-coller ».
28
Pour le champ création, c'est plus simple :
Il faut aller dans ces deux champs et placer cette formule dans la « valeur par défaut ».
Voici ce qui se passe lorsqu'on est en création de fiche. Ensuite c'est le module créé ci-dessus qui
s'activera lorsqu'on fera des modifications sur la fiche.
29
Message d'alerte si on passe à la fiche suivante sans avoir entré le stage (contrainte référentielle)