Additions dans un sous-for

Le
URIANE
Bonjour,
Dans mon sous-form de saisie j'ai une liste déroulante, puis deux champs
numériques, 1 - jour(s), 1 - heure(s) (ces champs sont visibles), derrière
ces champs il existe plusieurs champs qui eux ne sont pas visibles, et mon
souhait serait le suivant :
Si dans ma liste déroulante mon choix est : CDc ou CDf ou CDg ; je souhaite
que le chiffre qui se trouve dans mon champs "jour(s)" après mise à jour de
ce dernier vienne s'ajouter à ce qui se trouve déjà ou pas dans mes champs
"CDc" ou "CDf" ou "CDg" qui sont invisibles, et idem pour le choix de "Hsp";
ou "Hso" qui sont des heures et se trouveront dans mon champs "heure(s) et
iront s'additionner dans l'un de mes champs ci-dessus mentionnés qui se
trouve derrière le champs heure(s) et qui sont invisibles.
au final c'est pour savoir dans l'année le cumul en jours ou heure utilisés
pour ces rubriques..
Merci
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6293011
Bonjour URIANE

Tu peux mettre, dans l'évènement "Sur clic" de ta liste déroulante:

Select Case taListe.Value
Case "CDc"
CDc=Nz(CDc,0)+[1 - jour(s)]
Case "CDf"
CDf=Nz(CDf,0)+[1 - jour(s)]
Case "CDg"
CDg=Nz(CDg,0)+[1 - jour(s)]
Case "Hsp"
Hsp=Nz(Hsp,0)+[1 - heure(s)]
Case "Hso"
Hso=Nz(Hso,0)+[1 - heure(s)]
End Select

Ou alors j'ai pô compris...

Dans ton message
Bonjour,
Dans mon sous-form de saisie j'ai une liste déroulante, puis deux champs
numériques, 1 - jour(s), 1 - heure(s) (ces champs sont visibles), derrière
ces champs il existe plusieurs champs qui eux ne sont pas visibles, et mon
souhait serait le suivant :
Si dans ma liste déroulante mon choix est : CDc ou CDf ou CDg ; je souhaite
que le chiffre qui se trouve dans mon champs "jour(s)" après mise à jour de
ce dernier vienne s'ajouter à ce qui se trouve déjà ou pas dans mes champs
"CDc" ou "CDf" ou "CDg" qui sont invisibles, et idem pour le choix de "Hsp";
ou "Hso" qui sont des heures et se trouveront dans mon champs "heure(s) et
iront s'additionner dans l'un de mes champs ci-dessus mentionnés qui se
trouve derrière le champs heure(s) et qui sont invisibles....
au final c'est pour savoir dans l'année le cumul en jours ou heure utilisés
pour ces rubriques.....
Merci


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

URIANE
Le #6292971
Bonjour "titi",
Je pense que tu as compris, mais moi par contre j'ai du mal à comprendre....
Lorsque je sélect dans ma liste déroulante ma rubrique donc on va prendre
"CDc", mon curseur ira dans le chps "jour", car j'ai déjà établi que
certaines de mes rubriques sont à saisir en jours et d'autres en heures, je
rentre le nb de jour on va dire 5, après mise à jour de ce champ jour, je
souhaite que mon chp "CDc" cumul le chiffre entré avec celui qu'il a déjà on
va dire qu'il y avait déjà 10 jours dans mon champs "CDc" donc je devrais
après mise à jour et un petit "recalcule" s'il le faut obtenir 15 dans mon
champs "CDc" en fait les champs "jour" et "heure" ne sont la que pour entrer
le chiffre du moment de la saisie, ce sont des intermédiaires qui dès
ouverture de mon sous-formulaire sont à zéro, mais comme j'ai une liste
d'environ 100 rubriques de choix différentes dans ma liste déroulante, c'est
pour ça que je me complique les neurones, je ne sais pas si je me suis bien
expliquée....
Thierry (ze Titi)
Le #6292961
Ca change beaucoup de choses...
Dans ce cas, le code suggéré est à mettre plutôt dans l'évènement "Après mise à jour" des deux champs, en séparant les deux types de données.

Dans l'évènement "Sur clic de ta liste déroulante", tu auras:

If Left(taListe,1)="C" then
[1 - jour(s)].SetFocus
Else
[1 - heure(s)].SetFocus
End If

dans ton champs [1 - jour(s)], dans l'évènement "Après mise à jour", tu vas avoir:

Me.Controls(taListe.value)=Nz(Me.Controls(taListe.value),0)+[1 - jour(s)]

Le principe est le même pour ton champ [1 - heure(s)].
Attention, c'est valable uniquement si l'orthographe du nom des champs est la même que celle entrée dans la liste déroulante.

A tester...

En ce jour mémorable du mardi 10/07/2007, tu as entrepris la lourde tâche de taper sur ton clavier :
Bonjour "titi",
Je pense que tu as compris, mais moi par contre j'ai du mal à comprendre....
Lorsque je sélect dans ma liste déroulante ma rubrique donc on va prendre
"CDc", mon curseur ira dans le chps "jour", car j'ai déjà établi que
certaines de mes rubriques sont à saisir en jours et d'autres en heures, je
rentre le nb de jour on va dire 5, après mise à jour de ce champ jour, je
souhaite que mon chp "CDc" cumul le chiffre entré avec celui qu'il a déjà on
va dire qu'il y avait déjà 10 jours dans mon champs "CDc" donc je devrais
après mise à jour et un petit "recalcule" s'il le faut obtenir 15 dans mon
champs "CDc" en fait les champs "jour" et "heure" ne sont la que pour entrer
le chiffre du moment de la saisie, ce sont des intermédiaires qui dès
ouverture de mon sous-formulaire sont à zéro, mais comme j'ai une liste
d'environ 100 rubriques de choix différentes dans ma liste déroulante, c'est
pour ça que je me complique les neurones, je ne sais pas si je me suis bien
expliquée....


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

URIANE
Le #6292921
Pour la liste déroulante le problème est réglé j'utilise le système
me.jour.locked est true ou false selon si je désire rentrer des heures ou
des jours, la ça marche......
Bon j'ai testé ta solution comme suit : derrière mon champs "jour" j'ai mis
l'évennement ci-dessous :
pour la partie cumul des jours ou heures selon mes choix dans ma liste
déroulante :Me.Controls(md_type.Value) = Nz(Me.Controls(md_type.Value), 0) +
[jour]
Le problème est le suivant, si je fais deux lignes de saisies avec le même
choix dans ma liste déroulante donc " CDc" , mon champs "CDc" va bien
faire le cumul, si dans ma troisième ligne de saisie je prends "CDf", idem,
mais si dans ma quatrième ligne je reprends "CDc" le champs va prendre le
chiffre de ma quatrième ligne sans cumuler les deux premières, donc si au
départ mon agent avait pris le 15/02/07 2 jours "CDc", le 25/03/07 3 jours
"CDc", le 26/03/07 4 jours "CDf" le 01/07/07 10 Jours "CDc", au final
j'aurais 10 jours "CDc" et 3 jours "CDf" mais à condition que j'aille sur la
ligne de la date concernée et que je clique dans mon champs "jour" sinon en
bas dans mes champs j'ai zero.....
Dur.... dur !
Thierry (ze Titi)
Le #6292791
Bonjour URIANE

Mon post précédent n'étant pas très clair au début, je précise:
Le code de mon premier post est à oublier, seul celui du second est à
prendre en compte.

Dans ton message
Pour la liste déroulante le problème est réglé j'utilise le système
me.jour.locked est true ou false selon si je désire rentrer des heures ou des
jours, la ça marche......
Bon j'ai testé ta solution comme suit : derrière mon champs "jour" j'ai mis
l'évennement ci-dessous :
pour la partie cumul des jours ou heures selon mes choix dans ma liste
déroulante :Me.Controls(md_type.Value) = Nz(Me.Controls(md_type.Value), 0) +
[jour]
Le problème est le suivant, si je fais deux lignes de saisies avec le même
choix dans ma liste déroulante donc " CDc" , mon champs "CDc" va bien faire
le cumul, si dans ma troisième ligne de saisie je prends "CDf", idem, mais si
dans ma quatrième ligne je reprends "CDc" le champs va prendre le chiffre de
ma quatrième ligne sans cumuler les deux premières, donc si au départ mon
agent avait pris le 15/02/07 2 jours "CDc", le 25/03/07 3 jours "CDc", le
26/03/07 4 jours "CDf" le 01/07/07 10 Jours "CDc", au final j'aurais 10 jours
"CDc" et 3 jours "CDf" mais à condition que j'aille sur la ligne de la date
concernée et que je clique dans mon champs "jour" sinon en bas dans mes
champs j'ai zero.....
Dur.... dur !


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Publicité
Poster une réponse
Anonyme