[Access 2003] index unique introuvable

Fermé
INeedHelp - 8 févr. 2010 à 17:09
 INeedHelp - 11 févr. 2010 à 14:45
Bonjour,

Je suis en pleine création de la base de donnée de notre association qui propose des réunions de professionnels de l'aide aux toxicomanes (médecin, hôpital, sociaux, etc.).

J'ai (entre autres) une table "participant" (qui référence toutes les informations relatives au participants de ces réunions : nom, prénom, coordonnées personnelles, etc.) et une table "structure" (qui référence, quand il y en a les structures qui salarient ces personnes. Le problème, je pense c'est qu'un médecin généraliste n'a pas de structure)

La table structure a, un ° aléatoire puis, en clé le nom de la structure et son code postal (2 clés donc), il y a aussi bien sûr tout le reste des coordonnées de la structure. Les null ne sont pas autorisés
La table participant à un champ N° de structure avec une liste de choix issue de la table structure (proposant donc une structure et une ville), le null est autorisé (puisqu'un médecin n'a pas de structure)

Un participant peut avoir Une et une seule structure. Une structure peu avoir 1 à N participants

La relation existe bien MAIS je n'arrive pas à faire l'intégrité relationnelle : ça me dit index unique introuvable pour le champ référencé d'une table principale

J'ai déjà vérifié qu'il n'y avait pas de champ non renseignés dans ma table structure, pas de vide
J'ai déjà essayé de créer une structure "aucune" avec un code postal 00001 mais ça ne change rien...

Bref je suis coincée :-(

Si quelqu'un sait comment m'aider (attention je ne suis pas informaticienne donc je ne comprends pas toujours le jargon des informaticiens :-o , donc si vous pouviez m'expliquer avec des mots simples ;-) )...
Merci

4 réponses

blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
8 févr. 2010 à 18:18
Salut,

peux-tu faire une copie écran de tes relations et nous dessiner là où ça coince, puis mettre l'image sur www.cjoint.com ?
0
AH merci Blux, justement je me demandais comment insérer des copies d'écran...

Voici mes tables avec mon message d'erreur:
http://cjoint.com/data/cjjnF1jDfG.htm

Voici ma table "participant"
https://www.cjoint.com/?cjjE3pxCYa

et ma table "structure"
https://www.cjoint.com/?cjjG7P5Y6V
0
ah et voici en mode création l'un des formulaire où j'utilise les deux tables

https://www.cjoint.com/?cjjJQRoANm

quand c'est une personne sans structure (un médecin) son adresse s'inscrit dans la partie haute. Quand c'est une personne avec structure (un pharmacien ou un assistant social par exemple) rien ne s'inscrit dans la partie haute (sauf si j'ai son adresse perso ;) ) mais la structure s'affiche en bas...


Du fait, je pense de l'absence d'intégrité relation si j'ai plusieurs structures de type identique (par exemple des "pharmacie de la gare" ben ça me donne ça
https://www.cjoint.com/?cjjNs3Zyo5 (ce qui est totalement inutilisable, alors que j'ai bien crée cette personne comme étant de la pharmacie du centre de cambrai, en sélectionnant bien ce numéro là dans la liste de choix).

(au passage on notera que j'ai un problème de concordance de forme entre ce que j'ai prévu en mode création et ce qui s'affiche en mode affichage :-s... Mais ça c'est un problème très mineur ;-) et au delà duquel je peux passer)
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
9 févr. 2010 à 09:44
Ah ben là, ça va pas du tout ! :-)

La clé primaire de la table structure doit être N°structure et pas Structure+Code postal structure...

Et pourquoi as-tu mis code postal structure en clé primaire ?
0
"Et pourquoi as-tu mis code postal structure en clé primaire ? "

Lol parce que c'est la formatrice qui est sensée m'aider qui m'a dit de faire comme ça (car plusieurs structures ont le même nom mais a des adresses différentes. Par Exemple A.B.C.D. Calais et A.B.C.D. Roubaix) pour éviter qu'il n'y ait un problème de doublon reconnus qui n'en sont pas...

Je fais l'essais et je reviens te dire si ça marche ;)
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289 > INeedHelp
9 févr. 2010 à 10:51
Une clé primaire doit être unique, mais elle peut être la concaténation de plusieurs champs.

Si tu cherches un critère discriminant pour identifier une structure et que c'est le code postal, c'est parfait... mais dans ce cas, ce champ doit aussi être créé dans la table 'participants' et il fera partie de la relation 1-n qui sera créée...
0
INeedHelp > blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024
9 févr. 2010 à 11:25
Si tu cherches un critère discriminant pour identifier une structure et que c'est le code postal, c'est parfait... mais dans ce cas, ce champ doit aussi être créé dans la table 'participants' et il fera partie de la relation 1-n qui sera créée...

Effectivement je cherche un critère discriminant... Donc je garde bien la double clé...

Il est sensé déjà faire parti de ma relation, puisque dans la liste de choix (faite à partir de l'assistant, on a sélectionné "n° auto" (masqué dans la liste déroulante proposée) + "nom structure" + "code postal" (masqué) + "ville" ... Faut-il que je le rajoute dans la table structure ? Mais je suppose qu'il faut que je crée un lien aussi (quand même pas une autre liste de choix ? ça serait ingérable, non ?)...
Je ne peux pas faire 2 relations (une sur la structure, une sur le code postal) entre deux tables, non ?

Désolée, je suis vraiment nulle de la comprenite pour le coup :-o
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
9 févr. 2010 à 13:30
Il est sensé déjà faire parti de ma relation, puisque dans la liste de choix (faite à partir de l'assistant, on a sélectionné "n° auto" (masqué dans la liste déroulante proposée) + "nom structure" + "code postal" (masqué) + "ville" ...
Ne confonds pas liste de choix dans un formulaire avec relations entre les tables. Les relations entre tables peuvent permettre de récupérer des infos dans une autre table avec un critère commun.

Dans ton cas, si ta clé primaire de la table 'structure' est composée de deux champs, alors ceux-ci devront obligatoirement apparaître dans toutes les autres tables en liaison avec 'structure' (si la liaison est faite à partir de la clé primaire de 'structure', s'entend...)
0
Excuse moi, Blux, j'étais absente mercredi et n'ai pu te répondre...

J'ai ajouté un champ code postal_Structure dans ma table participant identique à celui de la table structure...
MAIS je n'ai toujours pas possibilité d'effectuer l'intégrité référencielle :-(


Ce qui ne m'étonne en fait pas vraiment car, comme tu pourras le constater ici : http://cjoint.com/data/cljkOyTf6Q.htm , j'ai pas mal de tables avec une double clé (cf. l'exemple de la table adhésion dont je t'ai collé un détail) pour lesquelles je n'ai pas ce problème d'impossibilité d'intégrité avec la table participant, bien que le champs sur lequel est posé la clé ne figure pas dans la table participant...

Merci de ta patience en tout cas ;-)
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289 > INeedHelp
11 févr. 2010 à 09:18
Mon message <4> tu regarderas, l'illumination tu auras...
0
INeedHelp > blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024
11 févr. 2010 à 10:36
ok maitre Yoda...

J'essaye ça...
Mais : http://cjoint.com/data/clkdPZYB4Y.htm (lié au fait, je pense, que j'ai des structures avec un nom identique dans des villes différentes, raison pour laquelle on avait mis la double clé)

J'essaye encore, en bon petit padawan, que la force de la base de donnée soit avec moi...
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289 > INeedHelp
11 févr. 2010 à 10:43
Si la clé doit être 'structure' + 'code postal' et dans la table structure, alors il faut retrouver ces deux champs dans la table 'participants', or actuellement, il n'y a que code postal et N° structure (et non structure)...

Le problème vient de là (pas du blues)...
0
INeedHelp > blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024
11 févr. 2010 à 11:21
"Si la clé doit être 'structure' + 'code postal' et dans la table structure, alors il faut retrouver ces deux champs dans la table 'participants', or actuellement, il n'y a que code postal et N° structure (et non structure)...

Le problème vient de là (pas du blues)...
"


Je ne sais pas d'où il vient mais il me le colle (le blues)...

J'ai rajouté les deux champs à la table mais ça ne marche toujours point (ouiiiiiiiiiiiiiiiiiiiiiin)
http://cjoint.com/data/clluomDcyb.htm (pleins de commentaires directement sur l'image, ça m'est apparu plus simple)
0