Alors voilà mon problême:
Tout commença par une IHM: un formulaire qui affiche tous les membres d'un groupe et leur participation financière, l'utilisateur peut alors rentrer de nouvelles valeurs pour les participations. Unique pour chaques membres bien entendu. Mon formulaire continu ressemble à ça (grossièrement):
| Nom |Ancienne participation|Nouvelle participation|
| Premier Nom | Valeur 1 | Vide |
|Deuxieme Nom| Valeur 1.1 | Vide |
Et ainsi de suite pour recenser la totalité des membres. Ce formualire s'appelle "f_MAJ_participation"
Or, je voudrais que l'utilisateur puisse rentrer une valeur dans la zone de texte à la place du "Vide" et, une fois que toutes les valeurs sont rentrées (ou non) il clique sur "Valider" en bas de page et tout se sauvegarde dans une table.
Dans l'ordre les champs "zone de texte" sont appelés:
Nom, Ancienne_participation et Nouvelle_participation
Les étiquettes portent les mêmes noms mais avec le suffixe "_etiquette".
Mon problême porte sur le fait que ma requête d'enregistrement:Donc voilà, je cherche à enregistrer les contenus des champs "zone de texte" dans les tables t_participation et t_membres. Mais ça ne marche pas, ça m'update aucune ligne ou alors ça m'affiche dans ma liste un seul changement, généralement, le premier de la liste qui se retrouve répété jusqu'en bas de la liste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 UPDATE t_participation INNER JOIN t_membres ON (t_participation.Nom = t_membres.Nom) SET t_participation.[Nouvelle_participation] = Formulaires!f_MAJ_participation!Nouvelle_participation, t_participation.[Date actuelle] = Date(), t_membres.[participation totale] = Formulaires!f_MAJ_contrib!Nouvelle_participation WHERE (((t_contrib.Nom)=[Formulaires]![f_MAJ_contrib]![Nom]));
Si pour "Premier Nom" je met "Nouvelle Participation" à '100' alors "Deuxième Nom" et tout les suivants auront '100' aussi.
Je comprends pas comment je dois faire pour corriger ce problême.
J'avais pensé faire un formulaire fixe avec autant de ligne que de membres mais le nombre de membres est changeant donc un formulaire continu me semble bien. J'avais pensé faire une sauvegarde point par point en enregistrant le contenu de chaque contrôle nommé "Nouvelle_participation"
Mais ça marche pas non plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each control If (control.Name= "Nouvelle_participation") Then _ DoCMD. RunSQL UPDATE t_participation _ SET t_participation.[Nouvelle_participation] = ' " & Nouvelle_participation.Value & " ' _ WHERE t_participation.Nom= ' " & Nom & " ' ;
Partager