iconeaccess.gif (2009 octets)

C'est quoi une clé primaire ?

Une clé primaire, c'est un champ qui n'accepte pas de doublon. Un doublon est une 2ème information.

Exemple :

Prenons la table "T_Client" qui ne contient qu'un seul champ : NomClient, et qui contient les données suivantes :

NomClient

Dupont
Martin
Dupont

Dans cet exemple, "Dupont" apparaît 2 fois : C'est un doublon. Ce champ NomClient ne PEUT PAS être une clé primaire. Faites le test suivant après avoir créé cette table et ces données :

Allez en mode création
Cliquez sur le champ "NomClient"
Faites Edition/Clé primaire
Essayez de sauvegarder la table, ou même d'aller en mode saisie de données : access va vous l'interdire. Une seule solution : Retirer la clé primaire avec Edition/Clé primaire

Maintenant, vous pouvez retourner en mode Saisie de données (Affichage/Mode feuille de données), et remplacer le 2ème Dupont par Dupond par exemple.

Ensuite, vous retournez en mode création (Affichage/Création), et vous remettez à nouveau la clé primaire sur le champ NomClient : Maintenant, quand vous retournez en mode feuilles de données, lors de la sauvegarde de la table, Access ne pose plus de problèmes.

Par contre... Maintenant que NomClient est "Scellé" en clé primaire, PLUS QUESTION d'ajouter un client qui s'appellerait Dupont... Essayez : Vous allez pouvoir l'écrire, mais lorsque vous allez revenir en mode création, Access va va vous en empêcher ABSOLUMENT... Une solution pour vous tirer de ce mauvais pas : Changer l'orthographe du 2ème Dupont (en Dupons par exemple)

Voilà : C'est ça une clé primaire : C'est un champ qui vous ASSURE qu'il n'y a pas deux fois la même chose à 2 endroits différents...

Ben oui... Mais si j'ai 2 clients qui ont le même nom ?

Evidemment... C'est un problème....

astuce.gif (2905 octets)Ajoutez un champ IDClient (Identificateur du client), qui LUI serait en clé primaire, et pas NomClient, comme ceci :

IDClient

NomClient

5514 Dupont
8002 Martin
776 Dupont

Ce qui permet d'avoir autant de Dupont qu'on le désire, mais chacun aura un numéro unique... Un numéro de client, comme il vous en est attribué un à chaque fois que vous commandez quelque chose dans un magasin, ou même lors de votre note téléphonique

La clé primaire combinée

Dans certains cas, on utilise une clé primaire combinée. Imaginons la table suivante :

IDClient

NomClient

Michel Dupont
Noémie Martin
Noémie Dupont
Michel Dupont

Nous avons 2 Michel Dupont. On peut empêcher cela. On peut accepter tous les nouveaux clients pour peu qu'ils aient soient un prénom différent, soit un nom différent.

Dans ce cas, en mode création, on sélectionne en noir les deux lignes : Prenom et NomClient, et on demande Edition/Clé primaire.

Maintenant, on ne peut plus avoir deux fois le même client qvec le même nom et le même prénom.

Dans ce cas de figure, il va donc bloquer lors de la sauvegarde de la table. Il faut alors, comme avant, retirer la clé primaire, lancer la table en mode feuille de données, changer le prénom du 2ème Michel Dupont, revenir en mode création, et remettre la clé primaire sur les deux champs à la fois, et enfin ! OUF ! Ca marche : On ne peut plus remettre Michel Dupont.

BIEN ENTENDU, dans le cas présent, ON NE PEUT PAS utiliser la clé primaire combinée, tout simplement parce que vous pouvez avoir deux ou plusieurs clients qui ont à la fois le même nom et le même prénom... C'était juste un exemple.

exercice.gif (2195 octets)  Créez une table T_Video, dans laquelle vous aurez les champs : TitreFilm, Genre et réalisateur. Placez la clé primaire sur le champ le plus adéquat. Nous imaginons que nous ne pouvions pas avoir deux films différents qui possèdent le même titre.
Une fois fait cet exercice, modifiez votre table en fonction du fait que vous pouvez très bien avoir plusieurs films différents qui ont le même titre : King-Kong et Dracula sont des exemples de films qui ont été réalisés bien des fois... Essayez