Leçon 3 : Tables et enregistrements -Premiers pas

Pour suivre cette leçon, vous devez avoir suivi la leçon précédente. Mais c'était une leçon très courte visant simplement à créer une base de données qui s'appelle procd.mdb. Avant d'aller plus loin vous devez donc ouvrir (si ce n'est déjà fait) cette base de données

Résumé de la leçon précédente

Dans la leçon précédente, vous avez vu comment on crée une base de données totalement vide. Dans cette leçon, vous allez apprendre comment on crée une table, comment on la modifie, et comment on y entre des données.

Bien. maintenant, j'aimerais gérer mes CD. Comment faire ?

Avant de parler de CD, nous allons d'abord parler de clients. Simplement parce que les clients sont plus facile à gérer. Et puis de toutes façons, il faudra bien répertorier les clients à un moment ou à un autre.

Contrairement à Word et Excel, ou vous écririez directement les noms prénoms et adresses de vos clients, dans Access, vous allez devoir créer un "sous objet" de la base de données procd.mdb. Vous allez donc créer une table.

Cliquez 2 fois sur

Vous êtes maintenant en mode création d'une nouvelle table qui n'a pas encore de nom.

Ecrivez NomClient et Prenom comme ceci :

Pourquoi est-ce qu'on n'écrit pas directement les noms des clients ?

Parce que nous sommes en mode création. C'est à dire que d'une manière générale, avec Access, il faut toujours savoir ce qu'on veut faire avant de le faire. Si vous aviez été sous Excel, vous auriez fait votre liste de client de cette manière :

C'est à dire que vous auriez écris les titres de colonnes sur la première ligne (1), et ensuite, dans les lignes plus bas, vous auriez commencé à entrer les noms de vos clients.

Avec Access, vous devez définir cette première ligne de titre justement. Et nous allons utiliser les bons termes : NomClient et Prenom s'appellent des Champs. Notre table est donc composée (pour l'instant) de 2 champs, et d'aucune donnée (Il n'y a encore personne d'entré dans la table)

Pourquoi écrivez-vous NomClient et Prenom ? On ne pourrait pas mettre Nom et Prénom ?

On pourrait tout imaginer. Mais l'expérience m'a montré qu'il est judicieux de respecter certaines règles :

NomClient à la place de Nom : le mot "Nom" est un mot réservé d'Access, et l'utiliser comme nom de champ prête à confusion. C'est comme quelqu'un dont le nom de famille serait "Monsieur". Il peut s'appeler comme ça, mais il risque bien des problèmes avec les administrations.

Prenom n'a pas besoin de s'appeler PrenomClient, car Prenom n'est pas un mot réservé.

Pour information, voici une liste (non exhaustive) de noms de champs que je déconseille :

Concernant les espaces, "NomClient" plutôt que "Nom client", c'est pour une raison similaire. Si vous utilisez des espaces dans les noms de champs, vous aurez quelques problèmes lorsque vous utiliserez Access de manière avancée. Je ne vous en dit pas plus pour l'instant

Les majuscules au début de chaque mot (NomClient plutôt que nomclient), ça, c'est simplement pour garder la visibilité.

Bien. Maintenant, j'aimerais mettre des clients : Alain Dalon et Jean-Paul Brulmondo. Comment faire ?

Pour entrer des clients proprement dit, il va falloir visualiser la table en MODE SAISIE DE DONNEES. Vous cliquez sur l'icône (en haut à droite de votre écran)

Il vous demande

Répondez OUI

Il vous demande d'enregistrer la table. Appelez-là T_Client et cliquez sur OK.

Pourquoi T_Client et pas Liste de clients ?

Access ne vous empêchera pas de donner le nom que vous voulez à vos tables. L'expérience m'a toutefois montré qu'il était vivement recommandé d'avoir des normes :

  1. Pourquoi T au début ?
    Parce que c'est une Table
  2. Pourquoi pas ListeDeClients ?
    Il n'est pas judicieux d'ajouter des mots qui ne servent qu'à garnir
  3. Pourquoi _ entre T et Client ?
    Parce que les espaces sont souvent gênants dans les noms de tables et de champs, un tiret peut être confondu avec le signe Moins, et tout collé, ça enlève de la lisibilité
  4. Pourquoi pas T_Clients ? Il y en a quand même plusieurs, des clients ...
    Dans une utilisation avancée d'Access, il est des cas ou on doit plus ou moins connaître par coeur les noms des ses tables et des champs. Il arrive toujours un moment ou on se demande si on a mis un S ou pas. En bannissant systématiquement tous les pluriels, j'en gagne en confort (bien des erreurs sont évitées, croyez-moi !)

Revenons à nos moutons :

Ensuite il vous informe qu'il est fortement conseillé de mettre une clé primaire :

A l'avenir, il faudra TOUJOURS réponde NON à cette question. Uniquement pour voir ce qu'Access fait si on répond Oui, répoondez OUI.

Vous vous retrouvez alors dans cette situation :

La première colonne (N°) qui contient NuméroAuto, est le champ qu'Access à ajouté quand vous avez répondu Oui à la question

Cliquez sur la case blanche juste en dessous de NomClient, et écrivez Dalon :

Vous constatez qu'il vous a créé une nouvelle ligne en dessous, et que le NuméroAuto s'est mis à 1. Pour mettre le prénom de Dalon, soit vous cliquez sur la case en dessous de Prenom, soit vous appuyez sur la touche Tabulation . Ecrivez-y Alain :

En dessous d'Alain Dalon, ajoutez Jean-Paul Brulmondo :

Et là, je peux écrire Jean-Paul, je ne dois pas écrire JeanPaul ?

Oui. Il s'agit de Données. Les données peuvent contenir tout ce que vous voulez : Des espaces, des accents, des tirets, etc. Heureusement, parce que sinon, Access ne serait vraiment pas pratique. Mais encore une fois, vous pouvez mettre tout ce que vous voulez comme caractères même dans les noms des champs, mais vous supporterez quelques inconvénients...

Est-ce qu'il y a une limite au nombre de clients que je peux mettre ?

Avec Excel, vous seriez limité à 65535 clients... Avec Access, vous n'avez pas vraiment de limite. La seule limite théorique est que la base de données ne doit pas dépasser un GB... Mais si vous atteignez des tailles aussi monstrueuses, votre système ne vous suffira certainement plus, et il faudra passer à une architecture plus imposante avec des serveurs dédiés et un programme tel qu'Oracle ou SQL Server... Vous n'y êtes pas encore !

Et maintenant, je suppose que je dois sauvegarder mes deux clients, comme dans les autres programmes ?

Et bien non ! Justement, c'est un des atouts d'Access ! Vous ne devez pas sauvegarder ! La preuve ? Quittez Access ! (Fichier/Quitter)

Il ne vous demande absolument rien ! Il ne vous prévient même pas que vous allez quitter le programme... Et pourtant vos deux clients sont bel et biens sauvgardés. Relancez Access.

Choisissez votre base de données et cliquez sur OK.

Double-cliquez sur . Vous revoilà dans votre table. Vous constatez que vos données ont été bien sauvegardées :

Parfait ! On peut enlever ce champ N° ?

Oui. Sans le moindre problème. Pour ce faire, il faut que nous retournions dans notre table T_Client en mode Création. Pour ce faire vous cliquez sur l'icône (en haut à gauche)

Vous vous retrouvez ici :

Pour supprimer le champ N°, vous cliquez avec le bouton droit de la souris à côté sur la petite clé, et vous choissez Supprimer.

à la question , répondez Oui. C'est simplement une demande de confirmation de suppression. Si vous aviez supprimé le champ NomClient par exemple, et que vous aviez déjà rentré seize mille clients, vous allez les effacer d'un seul coup en supprimant le champ. Sans espoir de pouvoir annuler ! Alors remercions Access de bien nous mettre en garde.

A la 2ème question , répondez égaleemnt Oui. Ah il nous en veut avec sa clé primaire ! Nous y reviendrons.

Vous vous retrouvez maintenant dans la situation de départ : .

Je peux aller revoir mes clients maintenant ?

Oui. Cliquez sur (en haut à droite). Il vous redemande si vous voulez enregistrer.

Oui. C'est bizarre... Vous n'aviez pas dit qu'il enregistrait automatiquement ?

Ce sont les DONNEES qui s'enregistrent automatiquement. Ici, le changement que vous venez d'effectuer est au niveau de la STRUCTURE de la table (enlever un champ). Et ça, il faut le sauvegarder !

Constatez maintenant que l'icône s'est transformée en . Cliquez dessus, HOP, vous revenez en mode création, et l'icône s'est retransformée en . En fait, vous retournez la table comme une chaussette... Un coup vous êtes en mode création , et vous avez l'icône qui apparaît, et si vous cliquez dessus, vous êtes en saisie de données , et vous avez l'icône pour revenir en mode création.

Bon... Hem... On peut résumer ?

Vous avez créé au tout début une base de données appelée procd.mdb (procd est le petit nom de votre base de données - jeu de mot avec procédé). MDB est l'extension d'Access. Vous étiez obligé e la nommer tout de suite, sinon, Access refuse de travailler !

procd contient une seule table appelée T_Client, qui contient 2 champs : NomClient et Prenom. Ces champs contiennent des données que l'on appelle des enregistrements. Il y a 2 clients, donc il y a 2 enregistrements : Alain Dalon et Jean-Paul Brulmondo. Ces données s'enregistrent automatiquement, contrairement à la structure de la table (les champs : Ajout, suppression, changement) qui eux, doivent être enregistrés manuellement.

procd va petit à petit s'enrichir et contenir d'autres tables bien d'autres choses.

Avez-vous bien compris ?

  1. Combien de clients peut-on mettre dans une table ?
    a. 65535
    b. Autant qu'on veut tant que la table ne dépasse pas 1GB***
    c. Un million

  2. Je désire établir une table de mes amis. Comment est-il conseillé de la nommer ?
    a. Table des amis
    b.T_Ami***
    c. Table1
    d. tamis

  3. Avec Access, il y a quelque chose qui est enregistré automatiquement sans qu'on ait à s'en soucier, c'est :
    a. Les tables
    b. La base de données elle-même
    c. Les données qu'on entre dans les tables***
    d. Tout s'enregistre automatiquement

  4. Qu'est-ce que le "mode création" d'une table ?
    a.C'est quand on veut ajouter, supprimer ou modifier les champs***
    b.C'est quand on modifie les données
    c.C'est quand on a pas encore créé de table

  5. Un de ces noms de champ n'est pas déconseillé. Lequel ?
    a. Type
    b. Date
    c. DateValidite***
    d. Index

  6. Que se passe-t-il si vous effacez un champ ?
    a. Access refusera de l'effacer s'il contient des données
    b. Les données de ce champ seront effacées (après avertissement d'Access)***
    c. Le champ sera effacé, mais les données resteront en place

Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses.

Exercice

Quittez Access. Créez une nouvelle base de données que vous appellerez MaBase.MDB. Dans cette nouvelle base de données, vous allez y créer une table que vous appellerez T_Copain. Dans cette table, vous installerez 2 champs : NomCopain et NoTelephone. Une fois ceci fait, vous lancez cette table en mode saisie de données (c'est à ce moment qu'il faudra la nommer T_Copain), vous refuserez la clé primaire qu'il vous propose, et vous rentrerez les 2 copains suivant : Robert, numéro de téléphone : (079)345.66.74 et Raymond, Numéro de téléphone 345.66.88

Téléchargez la solution de l'exercice ici

Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de procd.mdb (nommée lecon4.mdb) exactement dans l'état ou elle devrait être à la fin de cette leçon.

Aperçu de la leçon suivante

Lors de la prochaine leçon, vous apprendrez que, contrairement à Excel qui est d'une souplesse exemplaire, Access ne laisse pas faire les choses aussi facilement (heureusement). Vous verrez que lorsqu'il s'agit par exemple d'entrer un nombre dans un champ, il est hors de question d'entrer du texte, et c'est tant mieux pour la validité de vos informations !