[Access 2003] index unique introuvable

[Fermé]
Signaler
-
 INeedHelp -
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

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123
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 ?
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
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)
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123
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 ?
"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 ;)
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123 > INeedHelp
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...
>
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

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
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123
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...)
>
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

han tu révolutionnes ma vie, j'ignorais qu'on pouvait mettre les 2 champs dans la relation (je sais tu me dis de le faire depuis le début, mais je viens juste de comprendre en voyant ta copie écran que et comment c'était possible... j'avais prévenu que j'étais pas une flèche en langage informatique :-o )

Ceci dit :
http://cjoint.com/data/clomyHs212.htm
chez moi ça marche toujours poooooooooooooooooooooooo :-(
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123 > INeedHelp
j'ignorais qu'on pouvait mettre les 2 champs dans la relation
Si la clé primaire est composée de deux champs, ils doivent être tous les deux présents lors d'une relation de type 1-n.

chez moi ça marche toujours poooooooooooooooooooooooo :-(
Arrête de vouloir relier avec N° structure (ça ne fait pas partie de la clé), fais la liaison avec structure !
>
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

bon sang mais c'est bien sûr (gomette qui se tape la tête) !!!


ça marche !!!!!!!!!!


Merci maître yoda, grace à toi du coté obscur de la force je ne suis pas tombée !!!
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 123 > INeedHelp
J'en parlais quand même dès mon message <6>...
>
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

oui je sais :-o mais j'avions point compris (à ma décharge je ne savais même pas que c'était possible) ...