Access - Séance 2 - page 1 Bases de données (Séance 2) Cette séance sera une séance consacrée à la réalisation : - d'une base de données Contacts.mdb - d'une base de données Anniversaire.mdb. A) Base "Contacts.mdb" But : Nous allons créer une base permettant de mémoriser tous nos contacts (professionnels, familles, autres). Pour chaque contact, on indiquera les informations suivantes : Nom du champ Type de Taille Légende Format champ IDContact NumeroAuto ID Nom Texte court 80 Nom Prenom Texte court 80 Prénom Adresse Texte court 255 Adresse CodePostal Texte court 80 Code Postal Ville Texte court 80 Ville Departement Texte court 80 Département Pays Texte court 80 Pays NumeroTelephone Texte court 255 Téléphone NumeroFax Texte court 80 Fax DateNaissance Date Date de Naissance Date/Abrégé TypeContact Texte court 80 Type de contact InformationsDiverses Texte long Informations Diverse Email Texte court 80 E-mail Tableau 1 Dans le champ InformationsDiverses, on inclura des informations textuelles (cela peut contenir le nom et prénom des enfants, leur date de naissance (pratique pour ne pas se fâcher avec ses amis), les goûts et couleurs du contact, les sujets à éviter, etc....) Le champ NumeroTelephone contiendra une suite de numéros de téléphones. Par exemple, le contact Dupond aurait dans le champ NumeroTelephone le texte suivant : "01 44 75 56 23 (D) 05 04 32 15 26 (P)". (D) signifiera (Domicile), (P) signifiera (Portable)" Le champ TypeContact contiendra un texte qui sera soit "Pro", soit "Famille"., soit "Autre". Le but de cette manipulation est de : a) créer le fichier (sous le nom Contact.accdb) qui contiendra cette base de contacts, b) créer la table principale de cette base (il n'y a qu'une seule table dans cette base et elle s'appellera TContact) c) créer un formulaire d'entrée pour modifier ou entrer de nouveaux contacts, d) créer plusieurs états : - un état Email et Coordonnées Téléphoniques donnant comme résultat la liste des contacts avec uniquement les champs Nom, Prenom, Email, NumeroTelephone avec un tri par ordre alphabétique sur les champs Nom puis Prenom. - un état Carnet d'adresses Complet donnant la liste de tous les contacts avec tous les champs de la table TContact (Nom, Prenom, Adresse, Tc...) avec un tri par ordre alphabétique sur les champs Nom, Prenom.
- un état Renseignements Famille donnant la liste de tous les contacts dont le TypeContact est égal à "Famille" avec les champs Nom, Prenom, Email, NumeroTelephone, avec un tri par ordre alphabétique sur les champs Nom, Prenom. - un état Recherche par Nom donnant la liste de tous les contacts ayant un nom précis. e) créer un menu permettant de modifier les nouveaux contacts, d'entrer un nouveau contact, et d'accéder à ces différents états. 1) Création ex nihilo de la base "Contacts.mdb" Action.1.1 Lancez "Microsoft Access" Action.1.2 : Créez une nouvelle base en cliquant sur «Base de données du Bureau vide» Donnez le nom «Contacts» à la base et cliquez sur bouton «Créer». le Avant de cliquer sauvagement sur le bouton Créer, vérifiez que vous enregistrez votre base dans le dossier qui vous intéresse. Par exemple, sur l image ci-dessu, la base est sauvegardée dans «C:\Users\Paul\Documents» Après avoir cliqué sur le bouton Créer, vous obtiendrez la fenêtre suivante. Une table «Table1» semble avoir été créée. La fenêtre obtenue contient plusieurs parties repérables : - le ruban. - Access - Séance 2 - page 2
- La fenêtre d'objets. Elle contient la liste de tous les types d'objets d'une base de données. (tables, formulaires, états, ) 2) Création de la table TContact dans la base Contacts.mdb Action 2.1 : Sélectionnez dans la fenêtre des Objets la table «Table1» Action 2.2 : Faites un clic droit et choisissez «Mode création» Action 2.3 : Access 2013 vous demande le nom de la table. Donnez le nom «TContact» Action 2.4.1 Une fenêtre vous permet de définir les paramètres d un champ de table : son nom, son type de données ainsi que d autre propriétés (ici, la propriété «Légende» et «Indexé». Pour obtenir le résultat cicontre, il faut cliquer sur la zone A, écrire le nom du champ (IDContact). Action 2.4.2 A B C Ensuite, il faudra cliquer sur la zone B pour sélectionner le type de données. Acccess vous proposera les valeurs : Texte court, Texte long, Numérique, Date/heure, Monétaire, NuméroAuto, Oui/Non, Objet OLE, Lien hypertexte, Pièce jointe Calculé. Le type texte court est limité à 256 caractères. Le type texte long est utilisé pour stocker du texte long. Le type Numérique permet de mémoriser des nombres. Le type Date/Heure permet de stocker des informations temporelles. Le type NuméroAuto est utilisé pour stocker un nombre qui sera automatiquement attribué par Access à l'enregistrement lors de sa création. On choisira le «Type de données» «NuméroAuto» pour le champ «IDContact». Action 2.4.3 Lorsque vous aurez défini le type de données, de nouvelles informations apparaîtront dans la zone "C". Elles décrivent les propriétés de ce champ. Par exemple, la propriété Taille du champ indique pour un type de données Texte court le nombre de caractères maximum qu'un utilisateur peut écrire dans ce champ. La propriété Légende d'un champ est utilisé par les assistants de création de formulaires et d'états. Par exemple, lorsqu'un assistant est amené à construire un état ou un formulaire, il va créer dans ce formulaire une zone de saisie pour un champ donné et une étiquette contenant un texte indiquant à l'utilisateur quel type d'information il faut entrer dans la zone de saisie. Le texte utilisé par défaut est le texte mis dans la propriété Légende du champ concerné. Access - Séance 2 - page 3
La propriété "Valeur par défaut" (pour un champ texte) est le texte qui sera mis par défaut dans le champ lors de la création d'un nouvel enregistrement dans cette table. Il s agit d affecter au le champ «IDContact» quelques propriétés : Dans la propriété «Légende», on mettra «ID Contact». Dans la propriété «Indexé», on choisit «Oui Sans doublons». Refaire 2.4.1,2.4.2, 2.4.3 autant de fois qu il le faut pour définir les autres champs de la table TContact. On se basera sur le tableau 1 pour indiquer les noms des différents champs, les types de données de ces champs, et les légendes. On devrait obtenir le résultat ci-contre. Enregistrez le fruit de votre travail, soit en cliquant sur «Fichier» puis «Enregistrer» Soit en cliquant sur l icône de la disquette présente dans la barre d outils rapides. Vous pouvez maintenant fermer la fenêtre associée à la table «TContact» en cliquant sur la case de fermeture de l onglet. (Voir figure ci-après) Nous venons de créer la table TContact. 3) Création du formulaire d'entrée "Modifier/Entrer des contacts" Action 3.1 : Dans le ruban, cliquez sur l onglet du ruban «Créer» et choisissez l assistant formulaire. Action 3.2 : L'assistant formulaire vous propose Cliquez sur le bouton pour mettre dans la liste de Champs Access - Séance 2 - page 4
sélectionnés tous les champs de la table TContact. Voilà ce qui est obtenu. Cliquez sur Suivant et choisissez Colonne simple et cliquez sur Suivant.. L'assistant Formulaire vous demande un titre pour ce formulaire. Entrez comme titre "Modifier/entrer des contacts". Choisissez "Ouvrir le formulaire pour afficher ou entrer des informations". Et Cliquez sur Terminer. Note : si une fenêtre comme celle-ci apparaît avec le message suivant, «L Assistant ne peut ouvrir votre formulaire en mode Formulaire eu Feuille de données, peut-être parce qu un autre utilisateur a ouvert une table source en mode exclusif. Votre formulaire sera ouvert en mode création». Il faudra alors cliquer sur «OK» et fermer l onglet Tcontact. Access - Séance 2 - page 5
Une nouvelle fenêtre vient d'être créée à l'écran. Cette fenêtre a pour titre "Modifier/Entrer des contacts". C'est la fenêtre du formulaire. Elle se présente de la manière suivante. Vous êtes en "mode Formulaire". C'est à dire en mode "Utilisation du formulaire". Ce mode est repérable pour les formulaires par la présence des boutons suivants : Vous avez les boutons classiques de navigation ainsi que le numéro de l'enregistrement en cours de visualisation. Si l'on veut ajouter un nouvel enregistrement, il suffit de cliquer sur. Après ce clic, tous les champs du formulaire se "vident" et vous pouvez entrer un nouvel enregistrement. Si la présentation d'un formulaire ne vous plaît pas, il faut faire un clic droit sur l objet représentant le formulaire et choisir «Mode création». En mode Création, votre formulaire aura l'apparence suivante Access - Séance 2 - page 6
Cliquez sur le champ "TypeContact". Vous verrez à l'écran la sélection de 2 objets : - un objet étiquette contenant le texte Type de contact et - un objet de type Zone de texte (dans lequel l'utilisateur inscrira des données) appelé Type Contact. Nous savons que le type de contact peut avoir 3 valeurs possibles : Pro, Famille, Autres. Nous allons modifier l'objet de type Zone de Texte en objet de type Zone de liste. Cliquez (et ne relâchez pas la souris) sur l'objet de type Zone de texte appelé TypeContact avec le bouton droit de la souris. Le menu contextuel ci-contre apparaît. Choisissez le menu "Remplacer Par/Zone de liste déroulante» comme indiqué ci-dessous. Notre objet de type Zone de Texte a été transformé en type Zone de liste déroulante. Nous allons ensuite modifier les propriétés de cet objet de type Zone de liste déroulante. On désirerait, en effet, indiquer que la liste contient seulement les valeurs Pro, Famille et Autres. Cliquez (et ne relachez pas la souris) avec le bouton droit sur l'objet de type Zone de liste déroulante nommé TypeContact". Si vous ne vous êtes pas trompé dans la manipulation, vous verrez la fenêtre suivante : Access - Séance 2 - page 7
La propriété Nom a pour valeur TypeContact. C'est effectivement le nom de l'objet que l'on est en train d'essayer de modifier. Modifiez la propriété Origine source par Liste valeurs. Mettez dans la propriété Contenu le texte "Pro;Famille;Autres". (Le caractère "; " sépare les différentes valeurs qui seront proposées dans le formulaire). Nous venons d'indiquer que ce champ est une zone de liste déroula,ntye, que ce champ se présente comme un menu, comportant les 3 choix suivants : Pro, Famille ou Autres. Fermez la fenêtre "Feuille de propriétés". Choisissez le menu Fichier/enregistrer pour sauvegarder votre nouveau formulaire. Ouvrez votre formulaire en mode utilisation. Voici un exemple d'entrée avec la zone de liste modifiable TypeContact en action. Grâce à cette opération, vous pouvez faciliter la saisie du type de contact : l'utilisateur n'aura pas à entrer le texte au clavier, il lui suffira de cliquer sur l'un des 3 choix donné. Dans la liste des objets du type Formulaires sélectionné, vous verrez apparaître une nouvelle ligne. Cette nouvelle ligne contient l'objet formulaire "Modifier/Entrer des contacts". 4) Création d'un état 2 étapes doivent être suivies : - créer la requête permettant d'avoir la liste des contacts avec uniquement les champs demandés et les éventuels tris. - créer l'état en se basant sur la requête nouvellement créée. Nous allons réaliser l'état "Email et Coordonnées Téléphoniques". étape 1 : création de la requête "Requete Email et Coordonnées Téléphoniques". Action 4.1 : Cliquez sur l onglet «Créer» et choisissez «Création de requête». Access - Séance 2 - page 8
Action 4.2 : Une fenêtre "Afficher la table" apparaît. On sélectionne la table TContact et on clique sur Ajouter car on a besoin de faire une requête qui va extraire des éléments de cette table L'écran ci-dessous apparaîtra : Comme nous désirons avoir comme résultats les champs Nom, Prenom, Email et NumeroTelephone avec un tri par ordre alphabétique sur les champs Nom, Prenom. il faudra remplir les colonnes de telle manière à obtenir l'écran ci-dessous: Cliquez sur l icône de la disquette pour enregistrer cette requête. Access vous demande le nom de cette requête. Donnez le nom "Requete Email et Coordonnees Telephoniques" à votre requête. Et validez en cliquant sur OK. Access - Séance 2 - page 9
Si vous voulez voir le résultat de votre requête sur la base, il suffit de choisir le menu "Affichage/Mode Feuille de données" si vous étiez encore en train d'éditer la requête. étape 2 : création de l'objet de type Etat " Email et Coordonnées Téléphoniques " qui sera se basé sur la requête "Requete Email et Coordonnées Téléphoniques". Action 4.1 : Sélectionnez dans le ruban l objet «Assistant Etat». L'assistant état vous propose de créer un état. Demandez lui de créer un état en se basant sur la requête "Requete Email et Coordonnées" et prenez tous les champs Nom, Prenom, Email, NumeroTelephone". Et cliquez sur Suivant. Ne faites pas de regroupement et choisissez Suivant. L'assistant vous propose de trier des enregistrements. Vous pouvez le stipuler ici. Cliquez sur Suivant. Access - Séance 2 - page 10
Donnez le nom «Emails et Coordonnées téléphoniques» à cet état. Cliquez sur Terminer. Vous obtiendrez cet écran. Vous pouvez, bien entendu, faire imprimer cet état ou modifier sa structure en le rééditant avec le mode création. Pour les autres états, il faudra faire des manipulations similaires. Voici quelques conseils à suivre pour créer les requêtes associées à ces états. - créer la requête : Requete Carnet Adresses Complet. - créer la requête : Requete renseignements Famille Access - Séance 2 - page 11
- créer la requête : Recherche par Nom 5) Création d'un menu de travail pour la base Contacts.mdb Il s'agit d'obtenir l'écran suivant, c est à dire une fenêtre contenant les manipulations possibles sur la base : créer un nouveau contact, modifier un contact, liste emails et contacts et Quitter. Pour créer cette fenêtre, il faudra créer un objet «Pages du menu général» qui s appellera «Menu Contacts». Et pour cette page «Menu Contacts», on décrira 4 éléments de menu qui correspondent aux 4 manipulations possibles. Action.5.1 Nous avons besoin de la commande «Administrer». La commande «Administrer» n étant parfois pas accessible sur le ruban, Il est recommandé de l ajouter dans le «Barre d outils Accès rapide» d Access. La manipulation est la suivante. Cliquer sur «Fichier» de Access, puis sur «Options». Dans «Choisir les commandes dans les catégories suivantes :», choisissez «Toutes les commandes». Sélectionnez «Administrer» et cliquez sur le bouton «Ajouter». La commande «Administrer» se trouvera ensuite dans le barre de menus rapide. Access - Séance 2 - page 12
Cliquez sur «Administrer» dans la «Barre de menu Rapide». Si la fenêtre ci-contre apparaît, cliquez sur "Oui". Cliquez sur Nouveau... pour créer un nouveau menu. Changez le nom de page de menu général en "Menu Contacts" et cliquez sur OK. Nous avons créé un nouveau Menu. Le nouveau menu «Menu Contacts» apparaît. Nous allons créer les lignes de ce menu en cliquant sur le bouton «Modifier». Vous obtiendrez l'écran ci-dessous. Cliquez sur Nouveau. Access - Séance 2 - page 13
Modifiez les différents champs en vous aidant de l'écran ci-dessous : Cliquez sur OK. On vient d'ajouter une ligne de menu "Créer un nouveau contact" Re-cliquez sur Nouveau et introduisez les autres menus en vous aidant des écrans suivants : Voici ce qui résulte à la fin des opérations. Vous avez créé une page de menu à 4 entrées Access - Séance 2 - page 14
Cliquez sur «Fermer».. Sélectionnez le «menu «Menu Contacts» et cliquez sur «utiliser par défaut» Sauvegardez votre base. Quittez Access. Puis ré-ouvrez la base. Quitter Access - Séance 2 - page 15
2) Base Anniversaire.mdb Cette base, qui sera stockée sous le nom, Anniversaire.mdb contiendra les dates anniversaires de toutes les personnes dont vous connaissez la date de naissance. On pourrait aussi utiliser cette base pour stocker des événements internationaux précis : Prise de la Bastille, etc...... Pour chaque anniversaire, on indiquera: Nom du champ Type de Taille Légende champ NomPrenom Texte 80 Nom et Prénom Jour Nombre Entier Jour Mois Nombre Entier Mois Année Nombre Entier Année - Créez la table TAnniversaire. - Créez un formulaire permettant la modification et l'introduction de dates anniversaires - Créez un état donnant la liste de tous les anniversaires. Cette liste contiendra évidemment le nom des personnes ou événements concernés. Il faudra trier ce "listing" suivant le Mois et le Jour de la date anniversaire. Cela permettra de savoir ce qui nous attend pour tel ou tel mois. - Créez un état donnant la liste des anniversaires situés dans un mois qui sera demandé à l'utilisateur. Access - Séance 2 - page 16