N'arrive pas à mettre de clé primaire

Fermé
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013 - 14 mars 2012 à 15:39
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 - 14 mars 2012 à 19:54
Bonjour,

Je suis en train de créer une base de données. J'ai pour l'instant 2 tables composées respectivement de 6 et 3 champs. Le problème est que je n'arrive pas à mettre de clé primaire. Vous pouvez m'aider ?

Voici la table et le champ en question:

Table : CLIENT
Champ 1 => nom_client
Champ 2 => prenom_client
Champ 3 => adresse_client
Champ 4 => telephone_client
Champ 5 => mail_client

Je voudrais mettre la clé primaire sur le champ 1 (nom_client) mais je n'y arrive pas et un message s'affiche quand je veux enregistrer: "Un index ou une clé principale ne doit pas contenir de valeur Null". Que dois-je faire pour arriver à mettre ma clé primaire sur ce champ ??


A voir également:

12 réponses

loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
14 mars 2012 à 15:55
Bonjour,

as-tu déjà des données dans ta table ?
Si oui, est-ce que le champ 1 est vide parfois ?

Cordialement.
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 16:05
Non, je n'ai pas de données dans ma table. Pour mon devoir, je dois simplement la base de données avec table/champs sans y mettre de données.
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
14 mars 2012 à 16:19
de qu'elle type est le champ ? Tu es sous qu'elle SGBD ?
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
Modifié par Flo13400 le 14/03/2012 à 16:26
Je suis sous Access 2007.

Si c'est ce que je crois, le type c'est le type de données non ? Si c'est ça c'est "Texte"...
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
14 mars 2012 à 16:27
Système de Gestion de Base de Données. oracle, mysql, etc.

Par contre, si tu mets ton champs nom en clé primaire et que deux personnes ont le même nom, il se passe quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
14 mars 2012 à 16:28
type = entier, réel, décimal, texte,...
SGBD = Système de Gestion de Base de Données. (le "logiciel" que tu utilise pour créer ta base).
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 16:29
Type = Texte
SGBD = Access 2007
0
f894009 Messages postés 17213 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 25 décembre 2024 1 711
14 mars 2012 à 18:39
Bonjour,

Ou en etes-vous??
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 18:46
C'est bon j'ai réussi à mettre une clé primaire. Je n'avais pas entrer de données dans le champ, voilà pourquoi je n'y arrivais pas !!

Par contre comment mettre une clé étrangère ??
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
14 mars 2012 à 18:56
Sous acess, je ne sais pas. Mais je remet ma remarque ci dessus :


Par contre, si tu mets ton champs nom en clé primaire et que deux personnes ont le même nom, il se passe quoi ?
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 19:05
Oui j'ai pensé à ça ^^ mais je peux pas mettre genre un numéro de sécu ou quelque chose dans le genre vu que les "clients" font juste appel à une petite association de quartier.. Donc l'asso en question ne demande pas d'info de ce genre.. Je verrai plus tard si j'attribue un numéro client..

Par contre je bute un peu sur autre chose..

J'explique en gros. 5 jeunes ont crée une asso pour faciliter la garde d'enfant dans leur ville. Ils créent une base de données pour répertorier les clients, les demandes plus facilement.
- J'ai une table Client contenant des infos comme le nom_client, prenom_client, adresse_client...
- J'ai une table Demande contenant les champs nom_client (que je voudrais mettre en clé étrangère), date_demande, heure_demande.

J'ai crée ces 2 tables, mais maintenant je dois en créer une 3ème. Je pense qu'elle doit contenir le nom des 5 membres de l'asso. Mais je ne sais pas trop quoi mettre comme champs. Je voudrais mettre en relation la table Demande et cette table, pour ainsi mettre en relation les demandes et la disponibilité des membres.

Je sais pas si j'ai été assez clair, c'est pas facile à expliquer..
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
14 mars 2012 à 19:27
Oui j'ai pensé à ça ^^ mais je peux pas mettre genre un numéro de sécu ou quelque chose dans le genre vu que les "clients" font juste appel à une petite association de quartier.. Donc l'asso en question ne demande pas d'info de ce genre.. Je verrai plus tard si j'attribue un numéro client..

Dans ce cas la, tu rajout un champ clé primaire numérique en auto incrémentation, sinon ta base sera "fausse" selon les règles de gestion d'une base. Il faut que la clé primaire sois un identifiant UNIQUE, ce qui n'est pas le cas du nom.

Ou tu peut faire une clé primaire multiple, avec nom, prénom et numéro de téléphone, par exemple, c'est lourd et sale.

Pour ton autre question, à tu fait un modèle relationnel avant de créer tes tables ?
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
14 mars 2012 à 19:42
Je te conseil aussi vivement et fortement de créer un champ (nommé par exemple id client) clé primaire en auto incrémentation.

Pour ton autre question, je te conseil d'arrêter la base pour l'instant et de réfléchir sur papier à ton modèle relationnel qui te permettra d'y voir plus clair dans la création de ton projet. Tu verra qu'ensuite, la création de la base sera juste un copie colle de ton modèle.
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 19:44
Oui, c'est ce que j'ai fait, j'ai rajouté l'id_client merci ;)

Justement, c'est le modèle relationnel dont je ne trouve pas l'idée. Je n'arrive pas à "lier" les demandes des clients avec la disponibilité des membres.
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 19:45
En gros, je ne sais pas quel champs écrire..
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
14 mars 2012 à 19:46
Avec ces seuls informations, on ne peut pas t'aider, le sujet doit donner d'autres info, non ?
0
f894009 Messages postés 17213 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 25 décembre 2024 1 711
14 mars 2012 à 19:14
Re,


site tres utile

https://mhubiche.developpez.com/Access/tutoJointures/


extrais:
2.1. Les Relations


ACCESS est un logiciel qui fait partie de la famille des SGBDR, c'est-à-dire des systèmes de gestion de bases de données relationnelles. La notion de relations est donc essentielle. Bien qu'il existe plusieurs types de relations, ACCESS ne gère que les relations de un à un, et les relations de un à plusieurs.

Pour créer une relation de un à un, il faut impérativement lier des champs ayant leur propriété "indexé" à "oui-sans doublon".

Pour créer une relation de un à plusieurs, il suffit de lier les champs entre eux.

D'habitude, la relation se fait d'une clé primaire vers une clé étrangère.

La clé primaire est le champ de la table qui sert d'identifiant à un enregistrement. Il s'agit d'un champ indexé sans doublon.

La clé étrangère est le champ de la table qui servira à matérialiser la relation avec la clé primaire. Il doit être de même taille et de même type de données que la clé primaire à laquelle il est lié.

Pour creer une cle etrangere il faut faire des relations entre deux tables.

Pour votre cle primaire, comme le precise Pierrecastor, il ne faut pas prendre un champ qui pourra contenir un doublon ( deux valeurs identiques). Vous devriez ajouter un champ supplementaire appele Id_Client et de type Numeroauto et en faire votre cle primaire.

Bon courage
0
Flo13400 Messages postés 19 Date d'inscription mercredi 14 mars 2012 Statut Membre Dernière intervention 17 août 2013
14 mars 2012 à 19:24
Oui, ça d'accord, ça va m'aider pour après, merci ^^


Mais ce que je veux maintenant, c'est créer une 3ème table.. mais je ne sais pas quoi donner comme nom à cette table, ni à ces champs..

j'ai ma 2ème table, la table DEMANDE avec comme champs:
- nom_client (avec 8 noms de clients)
- date_demande
- heure_demande

ma 3ème table que je suis en train de créer (sans nom pour l'instant) dans laquelle j'ai mis comme champ:
- membres (avec le nom des 5 membres de l'asso)

Et je ne sais pas quels champs je dois rajouter pour faire que les demandes s'attribuent à tel ou tel membre, tel ou tel jour...
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
14 mars 2012 à 19:44
Je le redit encore, je te conseil vivement de faire un modèle relationnelle ce qui te permettra je pense d'y voir plus clair et de te renseigner sur le net sur la structure de base de données. (les régles de gestions, les régles de création d'un modèle relationnel...)

Cordialement.
0