Pb d'ajout d'enregistrements au formulaire

lili20 -  
 lili20 -
Bonjour à tous,

j'ai crée un formulaire avec l'assistant Access à partir de 3 tables:

Patient(Num_de_dossier, Nom, Prénom, date_de_naissance,...,#id_prog(clé étrangère provenant de la table Programme),#id_service(clé étrangère provenant de la table Service))
Programme(Id_prog, Nom_Prog)
Service(Id_service, Type_service)

Ce formulaire est caractérisé par les champs suivants: Num_de_dossier, Nom, Prénom, date_de_naissance,...,Id_prog,Nom_prog, Id_service, Type_service.

Mon problème est que j'arrive pas à entrer les enregistrements au formulaire(mode formulaire).
J'ai eu comme message:" Impossible d'ajouter des enregistrements. La clé de jointure de la table «tblPatient» n'apparait pas dans l'ensemble d'enregistrements".
J'ai essayé de créer une requête qui me renseigne sur les champs désirés et ainsi d'utiliser l'assistant pour créer le formulaire mais j'ai eu le même problème au moment de la saisie des enregistrements.

S'il vous plait, est-ce que quelqu'un peut m'aider ?
Merci d'avance.

Lili

65 réponses

Résumé de la discussion

Le problème porte sur un formulaire Access lié à trois tables (Patient, Programme, Service) où l’entrée d’enregistrements échoue avec l’erreur « La clé de jointure n’apparaît pas dans l’ensemble d’enregistrements ». Des essais avec une requête et l’assistant de formulaire renvoient le même blocage; l’origine évoquée est une formule de total des heures pouvant échouer lorsque Deb et Fin sont vides, avec une correction qui ajoute le calcul de l’âge sur le formulaire. Le débat s’oriente ensuite sur l’utilité d’une requête d’ajout et sur le schéma du formulaire, notamment l’emploi de sous-formulaires et de relations un-à-plusieurs, autour d’une table Période et des éléments du formulaire. Des conseils soulignent l’importance d’aligner les sous-formulaires et les requêtes liées à tblPeriode, et d’intégrer les heures nuit/jour/soir dans la requête de base. La discussion évolue vers des besoins plus avancés, visant le calcul de durées et d’indicateurs par période pour chaque mesure, ce qui implique une architecture de base plus claire et des calculs statistiques.

Généré automatiquement par IA
sur la base des meilleures réponses
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonsoir lili20,
Je veux simplement dire : un schéma de votre base avec sa structure des diverses tables nécessaires selon la liste des données à traiter...etc..
Car j'ai l'impression que vous allez coups par coups ....?
0
lili20
 
Bonsoir Pingou,


Ma base de données contiendra juste les 2 tables que [tblUsager] et [tblDate].

Par la suite, je vais générer des rapports contenant les données extraites à partir de requêtes et faire des calculs de pourentage sur certains champs.

Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Merci lili20.
0
lili20
 
Bonjour Pingou,

je me demande pourquoi quand j'ajoute un nouvel enregistrement au formulaire [F_usager_Date], le remplissage des valeurs de 4 durées ne se fait pas dans la table [tblUsager].

De plus, j'ai ajouté un nouvel champ Âge dans la table [tblUsager] et j'ai ajouté une fonction pour le calcul d'age
mais le calcul ne se fait pas dans la zone texte du formulaire ni dans la table [tblUsager].

je vous joins ma nouvelle base https://www.cjoint.com/?hnqfjAeU8w

Svp, comment arranger ca.

Merci bcp
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Concernant les nouveaus enregistrements, tout fonctionne correctement, je vous joint encore une fois l'application. https://www.cjoint.com/?hosXwEDqU2

Pour le champ [Age] je vais regarder mercredi ou jeudi.
0
lili20
 
Merci
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
En rapport avec l’âge, il est correct d’avoir la date de naissance dans la table.
Concernant son âge on le calculera chaque fois qu’il est nécessaire, directement sur le formulaire, mais il n’a rien à faire dans une table puisqu’il varie en fonction du temps.
Merci de m’indiquer ou vous avez ajouté une fonction pour le calcul d'âge ?
0
lili20
 
Reslt Pingou,


Si j'ai bien compris, les champs calculés ne se stockent pas dans la base,ils seront juste présents au niveau du formulaire.

Cela impliquera alrs que je vais supprimer les 4 champs de durées de la table[tblDate] et le champ [Age] de la table [tblUsager] ?

c'est bien ca?


Merci bien
Lili20
0

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

Posez votre question
lili20
 
Bonjour Pingou,

J'ai réussi à régler la requête pour l'âge [rqt_Age_Usager].

Mais j'ai tjrs un problème au niveau de la mise à jr des tables.
J'ai rajouté le champ [Durée totale] à la table [tblDate], et le champ [Age]à la table [tbUsager] .

J'ai également rajouté à ta requête [R_Repart_heure], un champ [Totale] pour le calcul de la durée totale
Au niveau de la requête tout fonctionne, mais au niveau de la table non.
J'ai même ajouté du code vba.

Voici le nouveau lien: https://www.cjoint.com/?hovxVSaWdO

Svp, expliquez moi le problème pour la mise à jr des champs au niveau des tables.

Merci Pingou
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,

Je n'ai rien précisé au niveau des 4 champs de durées de la table [tblDate], dans se cas il peut être intéressent d'enregistrer les valeurs pour usage ultérieur ... !

Par contre l'âge n'a rien à faire dans la table puisqu’il varie en fonction du temps.

Votre réponse a ce qui suit : Merci de m’indiquer ou vous avez ajouté une fonction pour le calcul d'âge ?
Vous voulez l'âge en [Année], en [Année et Mois] ........?
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,

Fonctionnement mise à jour des champs de partage des heures de la table [tblDate].

Dans le sous formulaire [SF_Usager_Date] la propriété [Source contrôle] de chaque champ doit correspondre au nom des champs de la table [tblDate]. Ce qui mettra à jour la table à chaque modification souhaitée.
Les modifications sont calculées dans la requête [R_Repart_heure]. Elles sont déclenchées par l’événement [Après MAJ] qui déclenche la procédure événementielle [Private Sub Heure_de_cession_AfterUpdate()] respectivement [Private Sub Heure_de_début_AfterUpdate()] qui à son tour déclenche la procédure de mise à jour [Sub miseajour() ] ce qui renseigne directement les champs du [SF_Usager_Date].

Et voilà, le tour est joué.
0
lili20
 
Bonjour Pingou,

j'ai compris l'explication, mais j'ai pas pu arranger le pb de mise à jour au niveau du formulaire ainsi qu'au niveau de la table[tblDate] du champ [Durée Totale].

En fait, j'ai rajouté une zone texte [Durée Totale] dans le [SF_Usager_Date] dont la source de controle correspond au champ [Durée Totale] de la table [tblDate].
Et au niveau du code du sous formulaire [SF_Usager_Date] de la procédure [miseajour()], j'ai rajouté la ligne suivante:
Me.[Durée Totale].Value = Me.[Totale]

comme indiqué dans le lien précédent.
Est ce ma compréhension est bonne ?

Je comprend pas pourquoi ca marche pas.

Merci
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
Est bien, vous avez introduit une formule pour le total des heures dans la requête [R_Repart_heure] sans tenir compte que les champs de référence ("Deb" et "Fin") peuvent être vide; ce qui génère une erreur.

Version corrigée y compris Âge sur formulaire [F_Usager_Date] : https://www.cjoint.com/?hpo6boH6Ur
0
lili20
 
Je vous remercie Pingou pour votre aide, je me suis pas rendu compte de votre réponse.
0
lili20
 
Bonjour Pingou,

Si j'ai bien compris, pour que le calcul de durée se fasse, il faut que les champs de début et de fin soient non vides. Est ce bien cela? le code vba n'est resté le même?

Merci
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Boujour,
Dans la requête [R_Repart_heure] calcul du total sur les champs qui ne sont jamais vide en l'occurence: Total = [24hà8h]+[8hà16h]+[16hà24h]. Pour la macro de mise à jour [Sub miseajour()] il suffit de rajouter la ligne : Me.[Durée Totale].Value = Me.[Totale]
Et voila.
0
lili20
 
Bonjour Pingou,

j'ai crée un formulaire [frmUsagerPeriode] ac un sous formulaire attaché [sfrmUsagerPeriode] à partir de la table [tblPériode].

Je voudrais qu'en remplissant la date de début et la date de fin de ce formulaire remplir les zones textes suivantes: [Mesure de controle], [Nombre total d'application] et les durrées.

Pour ce la, j'ai crée une procédure appelée traitement associée au sous formulaire [sfrmUsagerPeriode]. Je sais pas pourquoi elle fonctionne pas. SVP, pouvez vous regardez ca.

voici le lien: https://www.cjoint.com/?hwwQxDlnO5

Merci
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
Désolé mais je n'arrive pas à comprendre se que vous voulez comme résultat.
En plus impossible de chercher sur votre procédure [traitement] car une partie des références sont fausses et provoquent des messages d'erreur.... d'ou impossible de me faire une idée.
Ne dite pas j'ai fait ceci et cela mais plutôt expliquer se que vous désirez obtenir comme résultats ... sur la base de quoi ... !
En marge: qu'elles sont les mesures de contrôle citées dans la table [tblPeriode] ... ?
0
lili20
 
Merci Pingou,

En fait,En indiquant la date de début de période et la date de fin de période, je veux afficher toutes les mesures de controle utilisées qui proviennent de la table [tblDate] qui peuvent être les champs suivants: [Isolement], [Contention au lit], [Contention au fauteuil], [Maitrise physique], [Équipement retiré] et [Autres modlités], le test se sur la [date d'appliction de la mesure] càd on affiche le nom de la mesure si la [date d'appliction de la mesure] est comprise entre [date de début de période] et [date de fin de période].

Je veux également afficher le nombre de fois ou on a appliqué une mesure et les durées totales Nuit/jour /soir/ total

exp:

tblDate
date1 contention au lit h1
date1 contention au lit h2
date2 isolement h3

Résultat
Mesure de controle nombre total dapplication durée
contention au lit 2 h1+h2
isolement 1 h3

Merci
Lilii20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467 > lili20
 
Bonjour,
Merci pour l'explication.
Question, est ce que cela s'applique à un dossier (patient) ou à l'ensemble des données ?
Et pourquoi cette table [tblPeriode].... qu'elle est son rôle ... ?
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Alors se n'ai pas se que j'ai cru comprendre , voir [F_Usager_PeriodeDate]
https://www.cjoint.com/?hxwILdUMUd
Bien fait pour moi je devais attendre les renseignements.

A quoi vous sert la table [tblperiode]....! là je ne comprends plus....
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Est-ce dans le bon sens ?
Voir formulaire [F_Usa_DatePeriodeNB]
0
lili20
 
Bonsoir Pingou;

je m'excuse pour ce retard;
ta réponse correspond bien a ma demande mais juste que le résultat de la Maitrise physique n'est pas correct; je voulais en plus de ça les durées de nuit;jour; soir et totale pour une période donnée pour chaque mesure utilisée
cad pour l'isolement; la contention au lit; la contention au fauteuil; Équipement retiré et Autre.
La table Période va me servir dans la génération des requêtes et pou le calcul des indicateurs;
En fait, Cela s'applique a tous les dossiers patients pour des fins de statistique;


Merci infiniment;
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
Merci pour l’information.
Vous ne précisez pas quelles réponses correspondent à vos besoins !

Par contre j’ai supposée qu’il s’agissait d’une recherche statistique sur l’ensemble des données et j’ai préparé un formulaire dans se sens ou vous choisissez la période (la table [tblPeriode] n’est pas utilisé dans se cas) : voir [F_MesureControl] / voir aussi modification de [F_Usa_DatePeriodeNB] .

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

Il faut encore savoir se que vous faites avec le résultat ?
0
lili20
 
Bonjour Pingou,


Le sous formulaire [SF_Usa_DatePeriodeNB] correspond bien a mes besoins, je voulais en plus les durées Nuit, Jour et soir et durree totale durant la periode pour chaque mesure.Le formulaire [F_MesureControl] correspond aussi;

C.est vrai que la table peroode est inutile;


Merci becoup Pingou
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
Attention, le sous formulaire [F_Usa_DatePeriodeNB] utilise 2 sous formulaires [SF_Usa_DatePeriodeNB] et [SF_Usa_DatePeriodeDet] dont les requêtes sont encore basées sur votre table [tblPeriode].
Si la table n'est plus utilisée il faut modifier le formulaire et prendre le même principe que [F_MesureControl].... est-ce que vous le réalisez : Oui ou Non ?

Pour les heures nuit, jour et soir il suffit de l'introduire dans la requête de base du sous formulaire.
Voulez-vous le faire vous même : Oui ou Non ?
0
lili20
 
Parfait Pingou,

Merci bcp
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Merci llili20,
Est-ce que vous réalisez les modifications OUI ou NON ?
0
lili20
 
Bonjour Pingou,

J'étais malade toute cette période, je tenterai de faire les modifications aujourdhui.

Merci
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Merci lili20. bon rétablissement.
0
lili20
 
Bonjour Pingou,


J'ai calculé le nombre total d'heure pr le jour/soir/nuit/ total ainsi que la moyenne dans [R_Date_Période_nb].
Dans ce calcul la, on trouve qu'on calculé 2 fois le nombre d'heure pour une autre mesure à la même date et heure par exemple. je voudrais qu'il ne recalcule pas deux fois la même durée. SVP, comment réaliser cela.

J'ai aussi remarqué que dans le calcul de [compte maitrise physique] est faux, je voudrais que le nombre correspond au nombre de fois ou la case maitrise physyque est coché. SVP, comment réaliser cela.

Ci dessous le lien des ajouts apportés
https://www.cjoint.com/?inqV61lxsM

Merci
Lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour lili20,
Oui je vais regarder se qu'il est possible de faire.
Pouvez-vous me dire se que vous avez modifié par rapport à mon fichier, se qui m'évitera de tout re contrôler pour trouver les modifications !

Pouvez-vous donner l'exemple du problème cité ?
D'avance merci.
0
lili20
 
Bonjour Pingou,


Dans la requête [R_Date_Periode_nb], j'ai ajouté [SommeDuree Jour8h/16h], [SommeDuree soir16h/24h], [SommeDuree nuit 24h/8h], [SommeDuree totale] et [MoyenneDuree totale].


Merci
lili20
0
lili20
 
Date d'application 14-07-2009
Isolement
Heure de début 10h
Heure de cession 12h
Durée totale 2h

Date d'application 14-07-2009
contention au lit
Heure de début 11h
Heure de cession 12h
Durée totale 1h

Pour une même date, j'aimerai avoir dans durée totale des deux mesures 2h et non pas 3h car pour contention au lit la durée de 11h à 12h à été déjà calculé dans durée d'Isolement

Merci
lili20
0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Merci, je viens de trouver la modification.

Pouvez-vous donner l'exemple du problème cité pour le nombre d'heure ? ..réponse ..

Dans qu'elle formulaire doit apparaitre ses calcules .... ? réponse ...

Pour : dans le calcul de [compte maitrise physique] est faux .... c'est OK c'est bon.

0
lili20
 
Pouvez-vous donner l'exemple du problème cité pour le nombre d'heure ? ..réponse ..
pour les compte de Somme durées jour/ nuit/ soir, les calculs sont corrects. Juste pour la durée totale on devrait avoir 2h et non 3h pour l'exemple précédant.

Dans qu'elle formulaire doit apparaitre ses calcules .... ? réponse ...
Ils devraient apparaitre dans le 1er sous formulaire du formulaire[F_Usa_DatePeriodeNB]

Merci
Lili20
0