Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème pour remplir un formulaire (erreur classique de débutant ?)

4 réponses
Avatar
tipitipi
Bonjour,

je suis nouveau sur Access et je suis confront=E9 =E0 un probl=E8me pour
remplir un formulaire.
Ma base comprend plusieurs tables li=E9es avec l'int=E9grit=E9
r=E9f=E9rentielle activ=E9e.
J'ai un formulaire bas=E9 sur une table dont j'ai effac=E9 les contr=F4les
relatifs aux cl=E9s =E9trang=E8res, et dans lequel j'ai rajout=E9 des
listes d=E9roulantes pour remplir certains champs par des donn=E9es
appartenant =E0 d'autres tables.
Je ne parviens =E0 cr=E9er d'enregistrement =E0 partir de ce formulaire
avec l message d'erreur suivant : "vous ne pouvez pas ajouter ou
modifier un enregistrement car l'enregistrement associ=E9 est requis
dans la table 'XXX'".

Par exemple, je ne peux pas cr=E9er un enregistrement de la table
"consultation" car cela pose probl=E8me avec les tables "m=E9decin" ou
"patient" dans une gestion de cabinet m=E9dical.

J'esp=E8re avoir =E9t=E9 clair et que vous pourrez m'apporter un peu
d'aide.
Tipitipi

4 réponses

Avatar
Dan
"tipitipi" a écrit dans le message de news:

Bonjour,

je suis nouveau sur Access et je suis confronté à un problème pour
remplir un formulaire.
Ma base comprend plusieurs tables liées avec l'intégrité
référentielle activée.
J'ai un formulaire basé sur une table dont j'ai effacé les contrôles
relatifs aux clés étrangères, et dans lequel j'ai rajouté des
listes déroulantes pour remplir certains champs par des données
appartenant à d'autres tables.
Je ne parviens à créer d'enregistrement à partir de ce formulaire
avec l message d'erreur suivant : "vous ne pouvez pas ajouter ou
modifier un enregistrement car l'enregistrement associé est requis
dans la table 'XXX'".

Par exemple, je ne peux pas créer un enregistrement de la table
"consultation" car cela pose problème avec les tables "médecin" ou
"patient" dans une gestion de cabinet médical.

J'espère avoir été clair et que vous pourrez m'apporter un peu
d'aide.
Tipitipi

Salut Tipitipi,
Le message signifie que la liste déroulante Médecins, qui sert à renseigner
le code médecin d'une consultation, ne remplit pas ce rôle correctement...
- soit sa propriété "source contrôle" n'est pas définie sur le code médecin
de la table consultations;
- soit elle n'a pas la bonne colonne liée;

Commence peut-être par vérifier ces 2 points pour tes 2 listes ?

A+ DAn
Avatar
tipitipi
Dan wrote:
"tipitipi" a écrit dans le message de news:


Salut Tipitipi,
Le message signifie que la liste déroulante Médecins, qui sert à re nseigner
le code médecin d'une consultation, ne remplit pas ce rôle correcteme nt...
- soit sa propriété "source contrôle" n'est pas définie sur le co de médecin
de la table consultations;
- soit elle n'a pas la bonne colonne liée;

Commence peut-être par vérifier ces 2 points pour tes 2 listes ?

A+ DAn


Salut Dan,
Merci pour ta réponse. Effectivement, il y avait un souci du côté de
la propriété "source contrôle". Je suppose que je dois prendre soin
d'y mettre le contrôle correspondant à l'identifiant de la table
correspondante.
Par contre, je comprends mal (euh... pas du tout en fait !) la notion
de colonne liée.
Je précise que ma liste déroulante est basée sur une requête avec
une concaténation 'nom & prénom', j'ignore si ça change quelque
chose...

Avatar
Dan
Salut !

Une liste déroulante possède un certain nombre de propriétés auxquelles il
faut s'intéresser dans ce cas précis.
Si on prend l'exemple de la liste des médecins du form consultations :
- la source contrôle : elle devra contenir le champ CodeMédecin de la table
Consultations;
- l'origine source : Table/requête;
- le contenu : une requête présentant 2 colonnes (au moins), basée sur la
table Médecins : Identité (Nom&" "&Prénom du médecin, tri croissant), et
CodeMédecin (la clé de la table Médecins);
- le nombre de colonnes : ici, 2
- la largeur des colonnes : ici, 8cm, 0 cm (on ne verra que l'identité, et
pas le code);
- la colonne liée : la 2.

De cette manière, Access récupèrera le CodeMédecin de la table Médecins dans
le contrôle CodeMédecin du form Consultations...

A+ DAn
Avatar
tipitipi
OK, j'ai compris 2 choses :
1 - la clause SELECT de la requête SQL doit contenir l'identifiant (ce
qui me manquait),
2 - "colonne liée" correspond à la position de cet identifiant dans
la requête (ce qui s'explique quand on a compris le 1 ci-dessus)
Effectivement, cela fonctionne.

Bon, j'en profite pour me raconter un peu : j'essaie de passer un BTS
d'informatique de gestion par le CNED en plus de mon boulot, c'est dur
dur et là, sur ce coup, je me suis senti assez isolé. Mes dernières
années de fac sont loin derrière moi, mon cerveau doit être un peu
rouillé...
Je pensais avoir bien compris le cours Access, mais au devoir final, je
me suis retrouvé bloqué dès le départ... La difficulté est venue
du fait que pendant le cours, les listes déroulantes ont été
étudiées avec la création des formulaires, et que pour ce devoir,
tout devait être préparé dès la définition des tables et que tout
devait se faire automatiquement par formulaires instantanés...

En tous cas, je te remercie énormément car tes explications ont été
très claires. Je vais tenter de poursuivre mon devoir(même si c'est
trop tard pour le rendre) et j'aurai sûrement d'autres questions de
débutant à poster ici-même !
@+
Tipitipi