Les tables
Créer les tables de la base en mode Feuille de données ou en mode Création, choisir les bons types de données, puis relier les tables entre elles pour que la base devienne relationnelle : intégrité référentielle, sous-feuilles de données et rapport des relations.
Durée indicative : 3 h 30 · Prérequis : séquence 2, principes généraux des bases de données
Définition d’une table
Une table regroupe toutes les données sur un seul sujet : les adhérents, les documents, les emprunts. Elle est organisée en colonnes (les champs) et en lignes (les enregistrements). Chaque table possède une clé primaire qui identifie chaque ligne de façon unique.
Dans la médiathèque, on évite un seul grand tableau où le nom de l’adhérent serait recopié à chaque emprunt. On crée trois tables reliées :
Créer une table en mode Feuille de données
C’est la méthode rapide : on construit la table comme un tableau, en ajoutant les colonnes au fur et à mesure.
- Onglet Créer > Table. Une table Table1 s’ouvre avec un champ N° de type NuméroAuto, déjà clé primaire.
- Cliquez sur l’en-tête Cliquer pour ajouter et choisissez le type du champ : Texte court, Nombre, Date et heure, Oui/Non…
- Saisissez le nom du champ directement dans l’en-tête, puis validez avec Entrée. La colonne suivante s’ouvre.
- Pour renommer le champ N°, double-cliquez sur son en-tête.
- Saisissez quelques enregistrements, puis Ctrl+S pour enregistrer la table et lui donner son nom.
| NumDocument | Titre | Auteur | Cliquer pour ajouter ▾ | |
|---|---|---|---|---|
| 1 | Le Petit Prince | Saint-Exupéry | ||
| ✎ | 2 | Germinal| | ||
| * | (Nouveau) |
Créer une table en mode Création
C’est la méthode recommandée : on décrit chaque champ avant de saisir la moindre donnée, avec un contrôle complet des propriétés.
- Onglet Créer > Création de table.
- Pour chaque champ, saisissez le Nom du champ, choisissez le Type de données, et ajoutez si besoin une Description (elle s’affichera dans la barre d’état lors de la saisie).
- Réglez les propriétés dans le volet du bas : taille, format, valeur par défaut, Null interdit…
- Sélectionnez le champ identifiant, puis Création de table > Clé primaire.
- Ctrl+S, nommez la table, puis basculez en Feuille de données pour saisir.
Les types de données
| Type | Contenu | Exemple | À savoir |
|---|---|---|---|
| Texte court | Texte ou chiffres sans calcul, 255 caractères maximum | Nom, code postal, téléphone | Les numéros de téléphone et codes postaux vont ici, pas en Nombre |
| Texte long | Texte de plus de 255 caractères | Résumé d’un livre, commentaire | Accepte le texte enrichi |
| Nombre | Valeurs utilisées dans des calculs | Nombre de pages, quantité | Taille : Entier long par défaut, Réel double pour les décimales |
| Grand nombre | Entiers très grands | Identifiants externes | Format .accdb récent uniquement |
| Monétaire | Montants avec 4 décimales exactes | Pénalité de retard | Pas d’erreur d’arrondi, contrairement au Réel double |
| NuméroAuto | Numéro unique attribué automatiquement | NumAdherent | Un par table ; un numéro supprimé n’est jamais réattribué |
| Date et heure | Dates et heures | DateEmprunt | Permet les calculs de durée |
| Oui/Non | Deux valeurs possibles | Disponible | S’affiche sous forme de case à cocher |
| Lien hypertexte | Adresse web ou chemin de fichier | Fiche éditeur | Cliquable en feuille de données |
| Pièce jointe | Un ou plusieurs fichiers | Couverture du livre | Alourdit vite la base ; préférez un lien vers le fichier |
| Calculé | Résultat d’une expression sur d’autres champs | [Prénom] & » » & [Nom] | Non modifiable à la saisie |
| Assistant Liste de choix | Liste déroulante de valeurs ou issue d’une autre table | Type : Livre, DVD, CD | Lance un assistant, ce n’est pas un type à part entière |
Supprimer une table
- Fermez la table.
- Si elle est reliée à d’autres tables, supprimez d’abord ses relations dans Outils de base de données > Relations.
- Dans le volet de navigation, sélectionnez la table puis Suppr, et confirmez.
Supprimer des données sans supprimer la table
Pour vider une table tout en gardant sa structure : ouvrez-la, cliquez sur le coin supérieur gauche de la grille pour tout sélectionner, puis Suppr. Le prochain NuméroAuto ne repartira pas à 1, sauf après Fichier > Informations > Compacter et réparer la base de données.
Dupliquer une table
Dupliquer une table, c’est en faire une copie dans la même base. Deux méthodes :
| Méthode | Étapes | Résultat |
|---|---|---|
| Copier / coller | Sélection de la table, Ctrl+C, Ctrl+V, puis choix de l’option de collage | Structure seule, structure et données, ou ajout à une table existante |
| Enregistrer sous | Table sélectionnée, F12 ou Fichier > Enregistrer sous > Enregistrer l’objet sous | Copie complète, structure et données |
Copier, couper et coller une table
Le principe a été vu en séquence 2 pour tous les objets. Pour les tables, le collage propose trois options :
- Vers une autre base : copiez la table, ouvrez la base cible dans une seconde fenêtre Access, puis collez. Pour des transferts réguliers, préférez Données externes > Nouvelle source de données > À partir d’une base de données > Access.
- Vers Excel : sélectionnez des enregistrements en feuille de données, Ctrl+C, puis collez dans Excel. Les noms des champs viennent en en-têtes de colonnes.
- Depuis Excel : un tableau Excel collé dans le volet de navigation crée une nouvelle table. Access demande si la première ligne contient les en-têtes de colonnes.
Les relations entre tables
Une relation relie deux tables par un champ commun : la clé primaire d’une table et la clé étrangère de l’autre. Elle permet de retrouver, par exemple, tous les emprunts d’un adhérent.
| Type | Signification | Exemple | Mise en œuvre |
|---|---|---|---|
| Un-à-plusieurs (1 → ∞) | Un enregistrement de A correspond à plusieurs de B | Un adhérent a plusieurs emprunts | La clé primaire de A est reprise comme clé étrangère dans B. C’est le cas le plus fréquent. |
| Un-à-un (1 → 1) | Un enregistrement de A correspond à un seul de B | Un adhérent a une seule carte de lecteur | Les deux champs reliés sont des clés primaires ou des index sans doublons. Rare. |
| Plusieurs-à-plusieurs (∞ ↔ ∞) | Chaque enregistrement de A peut correspondre à plusieurs de B, et inversement | Un adhérent emprunte plusieurs documents, un document est emprunté par plusieurs adhérents | Impossible directement : on crée une table de jonction (ici T_Emprunts) avec deux relations un-à-plusieurs. |
Gérer les relations de la base de données
- Fermez toutes les tables, puis Outils de base de données > Relations.
- Si la fenêtre est vide, cliquez sur Ajouter des tables et ajoutez les tables à relier.
- Faites glisser la clé primaire d’une table (NumAdherent de T_Adherents) sur la clé étrangère correspondante (NumAdherent de T_Emprunts).
- Dans la boîte Modifier des relations, cochez Appliquer l’intégrité référentielle puis cliquez sur Créer.
- Enregistrez la mise en page avec Ctrl+S et fermez la fenêtre.
L’intégrité référentielle
Cochée, elle garantit la cohérence des données liées :
- impossible de saisir un emprunt pour un adhérent qui n’existe pas ;
- impossible de supprimer un adhérent qui a encore des emprunts ;
- impossible de modifier le numéro d’un adhérent qui a des emprunts.
| Option en cascade | Effet | Prudence |
|---|---|---|
| Mettre à jour en cascade | Modifier la clé primaire met à jour la clé étrangère dans les tables liées | Sans effet sur un NuméroAuto, qui ne peut pas être modifié |
| Effacer en cascade | Supprimer un adhérent supprime tous ses emprunts | Dangereux : une suppression peut effacer des centaines de lignes |
Modifier ou supprimer une relation
- Modifier : double-cliquez sur le trait de la relation.
- Supprimer : cliquez sur le trait pour le sélectionner (il s’épaissit) puis Suppr.
- Voir toutes les relations : bouton Toutes les relations ; Effacer la disposition retire les tables de la fenêtre sans supprimer les relations.
Afficher et modifier des données liées dans une sous-feuille
Dès qu’une relation existe, un petit + apparaît au début de chaque ligne de la table du côté « 1 ». Il déplie une sous-feuille de données qui montre les enregistrements liés.
| NumAdherent | Nom | Prénom | Ville | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ⊞ | 1 | LEFEBVRE | Claire | Hesdin | |||||||||||||||||||||
| ⊟ | 2 | DUMONT | Karim | Frévent | |||||||||||||||||||||
| |||||||||||||||||||||||||
| ⊞ | 3 | BERNARD | Lucie | Doullens | |||||||||||||||||||||
| Action | Comment |
|---|---|
| Déplier ou replier une ligne | Clic sur ⊞ ou ⊟ |
| Tout déplier ou tout replier | Accueil > Enregistrements > Autres > Sous-feuille de données > Développer tout / Réduire tout |
| Ajouter un enregistrement lié | Saisir sur la ligne * de la sous-feuille : la clé étrangère est remplie automatiquement |
| Modifier un enregistrement lié | Cliquer dans la cellule et taper : la modification est enregistrée dans la table liée |
| Choisir la table affichée | Mode Création > Feuille de propriétés > propriété Sous-feuille données |
| Supprimer la sous-feuille | Même menu Autres > Sous-feuille de données > Supprimer (la relation est conservée) |
Imprimer les relations de la base de données
- Ouvrez la fenêtre Outils de base de données > Relations et cliquez sur Toutes les relations.
- Disposez les tables pour que les traits ne se croisent pas : cela rendra le schéma lisible.
- Onglet Création de relations > Rapport de relations. Access génère un état en aperçu avant impression.
- Réglez l’orientation (souvent Paysage), puis Imprimer ou PDF ou XPS.
- À la fermeture, Access propose d’enregistrer l’état. Enregistrez-le sous E_Relations pour le réimprimer plus tard.
Raccourcis de la séquence
Exercices
Les exercices complètent la base Mediatheque.accdb des séquences 1 et 2, qui contient déjà T_Adherents.
Créer T_Documents en Feuille de données
25 min- Créez une nouvelle table en mode Feuille de données.
- Renommez le champ N° en NumDocument.
- Ajoutez les champs Titre et Auteur (Texte court), Type (Texte court), Disponible (Oui/Non).
- Saisissez 5 documents de votre choix, dont un DVD.
- Enregistrez la table sous T_Documents, puis ouvrez-la en mode Création pour vérifier les types.
Voir le corrigé
- Créer > Table.
- Double-clic sur l’en-tête N°, taper NumDocument, Entrée.
- Cliquer pour ajouter > Texte court, nommer le champ ; idem pour chaque champ, avec Oui/Non pour Disponible.
- Saisie ligne par ligne ; cocher la case Disponible si le document est en rayon.
- Ctrl+S > T_Documents. Accueil > Affichage > Mode Création : NumDocument est NuméroAuto et clé primaire.
Créer T_Emprunts et relier les tables
40 min- En mode Création, créez T_Emprunts : NumEmprunt (NuméroAuto, clé primaire), NumAdherent et NumDocument (Nombre, Entier long), DateEmprunt (Date et heure, valeur par défaut
=Date()), DateRetour (Date et heure). - Ouvrez la fenêtre Relations et ajoutez les trois tables.
- Créez la relation T_Adherents → T_Emprunts avec intégrité référentielle.
- Créez la relation T_Documents → T_Emprunts avec intégrité référentielle.
- Saisissez dans T_Emprunts un emprunt pour l’adhérent n° 99. Notez le message.
- Saisissez 4 emprunts valides, puis essayez de supprimer un adhérent qui a un emprunt.
Voir le corrigé
- Créer > Création de table. Pour NumAdherent et NumDocument, propriété Taille du champ : Entier long. Ctrl+S > T_Emprunts.
- Fermer les tables, Outils de base de données > Relations > Ajouter des tables.
- Glisser NumAdherent de T_Adherents sur NumAdherent de T_Emprunts > cocher Appliquer l’intégrité référentielle > Créer. Le trait affiche 1 et ∞.
- Même manipulation avec NumDocument.
- Access refuse : aucun enregistrement correspondant dans la table T_Adherents.
- Access refuse la suppression : l’enregistrement a des enregistrements liés dans T_Emprunts.
Exploiter et documenter les relations
35 min- Ouvrez T_Adherents, dépliez la sous-feuille d’un adhérent et ajoutez-lui un emprunt directement depuis la sous-feuille.
- Ouvrez T_Documents : vérifiez qu’elle a aussi une sous-feuille et réglez-la pour afficher T_Emprunts.
- Dupliquez T_Emprunts en structure seulement sous le nom T_Emprunts_Archives. Vérifiez si la copie apparaît dans les relations.
- Disposez la fenêtre Relations proprement et produisez le rapport de relations en PDF, nommé Relations_Mediatheque.pdf.
- Enregistrez le rapport sous E_Relations.
Voir le corrigé
- Clic sur ⊞, saisie sur la ligne * : NumAdherent n’est pas demandé, il est rempli automatiquement.
- Mode Création > Feuille de propriétés > Sous-feuille données : Table.T_Emprunts, Champs fils et Champs pères : NumDocument. Enregistrer et revenir en feuille de données.
- Ctrl+C, Ctrl+V > Structure seulement. Dans la fenêtre Relations, Toutes les relations : la copie n’a aucune relation.
- Relations > Toutes les relations > disposer les tables > Rapport de relations > Paysage > PDF ou XPS > nom du fichier > Publier.
- Fermer l’aperçu > Oui pour enregistrer > E_Relations.