OVH Cloud OVH Cloud

fomulaire et sous_formulaire mise a jour d'un champs

7 réponses
Avatar
URIANE
Re bonjour,
entre deux bouchées de chocolat, j'ai donc un formulaire et dans la partie
"entête" de mon formulaire j'ai des champs, dont un lié avec le sous
formulaire qui se trouve dans la partie "détail" de mon formulaire c'est le
champs "matricule".
Dans l'entête j'ai un champs text "catégorie" sur 1 caractère qui
obligatoirement est soit A, B, ou C qui va rester fixe un certain nb
d'années donc dans la partie sous formulaire j'ai ce même champs qui au fur
et mesure de mes enregistrements soit une ligne par année va rester fixe, la
question est la suivante, je souhaiterais quand je saisie une nouvelle
année dans la partie sous-formulaire que ce champs catégorie se mette tout
seul en fonction de la ligne précédente donc si en 2005 c'était "C" je
voudrais que lors de ma saisie 2006 dès que je rentre l'année ce champs se
mette à jour et prenne référence sur l'année 2005.........................
SAUF ! SI dans mon entête de formulaire je modifie la zone "cat" alors dans
ces conditions le champs "catégorie" de mon sous-formulaire de l'année
nouvelle que je vais saisir soit l'année "2006" prendra le changement sans
pour autant changer celui de la ligne du dessus donc 2005 ( si en 2005
cette zone était "C" elle reste "C" si en 2006 l'agent passe en catégorie
"B" alors la ligne 2006 sera "B" )c'est simple dans mon esprit mais suis-je
bien explicite et la cerise sur le gâteau serait que dans le champs année au
clic de ma souris l'année en cours se mette toute seule .....!
Bref voilà
Merci bien

7 réponses

Avatar
ze Titi
Re bonjour URIANE

Tu nous as gâtés, là ! ;o)
Ton sous-formulaire est alimenté par une table (ou une requête) et je
suppose qu'il doit être en mode "Ajout de donnée".
Dans l'évènement "Sur entrée" du champ Année, mets le code

Année.Value=Year(Date())

Ensuite, dans l'évènement "Après mise à jour", mets le code suivant (à
adapter, bien entendu)

catégorie.Value=IIf(Isnull(Me.parent!cat),DLast("Catégorie","taTable","Année="
& Année-1),Me.Parent!cat)

Avec ça, on doit approcher du comportement voulu. A tester, bien
entendu...


Dans ton message <Oz$i$ du jeudi
Re bonjour,
entre deux bouchées de chocolat, j'ai donc un formulaire et dans la partie
"entête" de mon formulaire j'ai des champs, dont un lié avec le sous
formulaire qui se trouve dans la partie "détail" de mon formulaire c'est le
champs "matricule".
Dans l'entête j'ai un champs text "catégorie" sur 1 caractère qui
obligatoirement est soit A, B, ou C qui va rester fixe un certain nb
d'années donc dans la partie sous formulaire j'ai ce même champs qui au fur
et mesure de mes enregistrements soit une ligne par année va rester fixe, la
question est la suivante, je souhaiterais quand je saisie une nouvelle année
dans la partie sous-formulaire que ce champs catégorie se mette tout seul en
fonction de la ligne précédente donc si en 2005 c'était "C" je voudrais que
lors de ma saisie 2006 dès que je rentre l'année ce champs se mette à jour et
prenne référence sur l'année 2005......................... SAUF ! SI dans mon
entête de formulaire je modifie la zone "cat" alors dans ces conditions le
champs "catégorie" de mon sous-formulaire de l'année nouvelle que je vais
saisir soit l'année "2006" prendra le changement sans pour autant changer
celui de la ligne du dessus donc 2005 ( si en 2005 cette zone était "C" elle
reste "C" si en 2006 l'agent passe en catégorie "B" alors la ligne 2006 sera
"B" )c'est simple dans mon esprit mais suis-je bien explicite et la cerise
sur le gâteau serait que dans le champs année au clic de ma souris l'année en
cours se mette toute seule .....!
Bref voilà
Merci bien


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
ze Titi
Rectification de mon code, après relecture, il manque des choses...

catégorie.Value=IIf(Isnull(Me.parent!cat),DLookup("Catégorie","taTable","Année="
& Année-1 & " AND matricule=" & matricule),Me.Parent!cat)

Dans ton message <Oz$i$ du jeudi
Re bonjour,
entre deux bouchées de chocolat, j'ai donc un formulaire et dans la partie
"entête" de mon formulaire j'ai des champs, dont un lié avec le sous
formulaire qui se trouve dans la partie "détail" de mon formulaire c'est le
champs "matricule".
Dans l'entête j'ai un champs text "catégorie" sur 1 caractère qui
obligatoirement est soit A, B, ou C qui va rester fixe un certain nb
d'années donc dans la partie sous formulaire j'ai ce même champs qui au fur
et mesure de mes enregistrements soit une ligne par année va rester fixe, la
question est la suivante, je souhaiterais quand je saisie une nouvelle année
dans la partie sous-formulaire que ce champs catégorie se mette tout seul en
fonction de la ligne précédente donc si en 2005 c'était "C" je voudrais que
lors de ma saisie 2006 dès que je rentre l'année ce champs se mette à jour et
prenne référence sur l'année 2005......................... SAUF ! SI dans mon
entête de formulaire je modifie la zone "cat" alors dans ces conditions le
champs "catégorie" de mon sous-formulaire de l'année nouvelle que je vais
saisir soit l'année "2006" prendra le changement sans pour autant changer
celui de la ligne du dessus donc 2005 ( si en 2005 cette zone était "C" elle
reste "C" si en 2006 l'agent passe en catégorie "B" alors la ligne 2006 sera
"B" )c'est simple dans mon esprit mais suis-je bien explicite et la cerise
sur le gâteau serait que dans le champs année au clic de ma souris l'année en
cours se mette toute seule .....!
Bref voilà
Merci bien


--
Voilou !
Cordialement,

Ze Titi

Avatar
URIANE
Bonjour "ze Titi"
Je viens de lire ta réponse à ma gentille question, je vais essayer
d'appliquer et je te dis quoi, en tout cas merci pour le cassement de tête.
A tout de suite
Avatar
URIANE
Année.Value=Year(Date())


Lorsque sur mon champs "Année" dans l'évènement "sur entrée" du champs
j'essaie de mettre le code ci-dessus, ça ne va pas Anné.value=Year(Date)
voila ce que cela donne, le système refuse de prendre (Date()) les deux
parenthèses qui se trouvent tout de suite après Date son supprimées
d'office???? reste la formule écrite : Année.Value = Year(Date())
Merci
Avatar
URIANE
Désolée, mais si je ne mets pas l'évènement dans le bon sous-formulaire il
est évident que cela ne peux pas fonctionner, pour 2007 j'arrête le chocolat
finalement trop de magnésium nuit au cerveau....
Je passe à la deuxième partie de ma question et promis avant de revenir de
dire ce qu'il en est je vérifie les "vérifications"........de mes
modifications
Merci encore
Avatar
URIANE
Re bonjour,
J'ai essayé, mais cela ne fonctionne pas, avant de revenir j'ai bien tout
contrôlé, mais peut être que je cafouille qq part alors je vais te donner le
nom de mes champs tels qu'ils sont enregistrés afin de bien faire les
choses...
Dans mon formulaire d'entête issu de la table "notation_abc", mon champs se
nomme
"Catégorie"
dans mon sous-formulaire issu de la table "notation_corps" mon champs se
nomme
"cat"
Pourrais tu SVP me réécrire ton événement, car voici ce que j'ai fais sur
la mise à jour de mon champs "Année"

catégorie.Value = IIf(IsNull(Me.Parent!CAT), DLookup("catégorie",
"notation_entete_abc", "Année=" & Année = -1 & " And matricule = " &
Matricule), Me.Parent!CAT)
donc lorsque mon champs se met à jour je devrais dans mon champs "cat"
récupérer la même chose que sur l'année antérieur et rien ne se passe, même
pas une alerte d'erreur, donc je pense avoir fais une bêtise mais j'ignore à
quel moment...
Merci
Avatar
URIANE
Bonjour,
Après avoir réécris l'événement tranquillement enfin cela fonctionne, j'ai
un peu mélangé les champs (entre celui de l'entête "Catégorie" et celui du
sous-formulaire "cat" donc c'est bon en partie, si je change celui de
l'entête, celui du sous-formulaire sur touche entrée de mon année va bien
faire sa mise à jour. Mais par contre je souhaitais que si je ne changeais
rien dans l'entête, ce champs "cat" prenne en compte le "cat" de l'année
précédente ? comment puis-je faire ?
Merci