OVH Cloud OVH Cloud

Comment affecter un résultat avec "case"

7 réponses
Avatar
Txl
Bonjour,

J'ai pas mal avancé dans mon problème de sousform (merci 3stone) et je
suis maintenant bloqué sur une affectation de valeur en focntion d'une
case à cocher et du résultat d'une msgbox.

Voila mon bout de code et je vous explique ce que je voudrais en faire...

Private Sub succes_AfterUpdate()
If succes = True Then
MsgBox "Offre pourvue par la ML ?", vbYesNo
Select Case toto
Case vbYes: etat = 3
Case vbNo: etat = 4
DoCmd.Requery
End Select
End If
End Sub

Dans le sousform j'ai une case à cocher "succes", si je la coche ensuite
j'ai la boite de dialogue qui me demande si l'offre à été pourvue par la
ML ? avec une réponse oui/non.

Si c'est oui je voudrais mettre la valeur 3 dans le controle "etat" et si
c'est non mettre la valeur 4 toujours dans le controle "etat" et pour
finir faire un requery du formulaire (pas seulement du souform) ou le
controle "etat" est présent sous forme de boite de bouton radio, le champ
"etat" est présent dans le form et dans le sousform dans les requetes de
choix pour pouvoir y accéder donc mon problème ne vient pas de la (enfin
je crois...)

Je n'ai pas compris pourquoi mettre un nom "toto" a la suite de select
case mais il veut absolument un truc sinon ca ne marche pas.

Merci de votre aide



--
Email contact

7 réponses

Avatar
Eric
Bonjour,

En VBA si tu ne mets que Select Case que l'on pourrait traduire par
"Selon le cas" ou "Selon la valeur", le système ne comprend pas donc il
veut savoir le "de quoi", d'où l'obligation de préciser le nom de la
variable.
Dans ton code, il ne connait pas toto donc il ne fait rien, sauf si tu
as défini toto comme une variable globale, ce que je ne pense pas.
Toi, tu veux récupérer la valeur du bouton (OUI ou NON ) qu'a cliqué
l'utilisateur, donc tu dois mettre (à adapter si nécessaire) :

Private Sub succes_AfterUpdate()
Dim toto as integer
If succes = True Then
toto=MsgBox("Offre pourvue par la ML ?", vbYesNo)
Select Case toto
Case vbYes: me!etat = 3:me.Parent!etat=3
Case vbNo: me!etat = 4:me.Parent!etat=4
' peut-être que Refresh serait mieux que Requery
' à vérifier
DoCmd.Requery
End Select
End If
End Sub

Bonjour,

J'ai pas mal avancé dans mon problème de sousform (merci 3stone) et je
suis maintenant bloqué sur une affectation de valeur en focntion d'une
case à cocher et du résultat d'une msgbox.

Voila mon bout de code et je vous explique ce que je voudrais en faire...

Private Sub succes_AfterUpdate()
If succes = True Then
MsgBox "Offre pourvue par la ML ?", vbYesNo
Select Case toto
Case vbYes: etat = 3
Case vbNo: etat = 4
DoCmd.Requery
End Select
End If
End Sub

Dans le sousform j'ai une case à cocher "succes", si je la coche
ensuite j'ai la boite de dialogue qui me demande si l'offre à été
pourvue par la ML ? avec une réponse oui/non.

Si c'est oui je voudrais mettre la valeur 3 dans le controle "etat" et
si c'est non mettre la valeur 4 toujours dans le controle "etat" et
pour finir faire un requery du formulaire (pas seulement du souform) ou
le controle "etat" est présent sous forme de boite de bouton radio, le
champ "etat" est présent dans le form et dans le sousform dans les
requetes de choix pour pouvoir y accéder donc mon problème ne vient pas
de la (enfin je crois...)

Je n'ai pas compris pourquoi mettre un nom "toto" a la suite de select
case mais il veut absolument un truc sinon ca ne marche pas.

Merci de votre aide





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Txl
Bonsoir,

Merci beaucoup pour la correction du code, en fait je me doutais bien
qu'il n'allait pas comprendre ou je voulais affecter le résultat du msgbox
mais je ne pensais pas pouvoir faire un toto=msgbox...

Le code marche nickel mais il n'affiche pas la modification dans le form
avec requery ou avec refresh, si je sors du form et que j'y rerentre la
modif est prise en compte mais comment forcer la réactualisation du form,
je précise que le control en questiuon est une boite de bouton radio.

Merci d'avance

Bonjour,

En VBA si tu ne mets que Select Case que l'on pourrait traduire par
"Selon le cas" ou "Selon la valeur", le système ne comprend pas donc il
veut savoir le "de quoi", d'où l'obligation de préciser le nom de la
variable.
Dans ton code, il ne connait pas toto donc il ne fait rien, sauf si tu
as défini toto comme une variable globale, ce que je ne pense pas.
Toi, tu veux récupérer la valeur du bouton (OUI ou NON ) qu'a cliqué
l'utilisateur, donc tu dois mettre (à adapter si nécessaire) :

Private Sub succes_AfterUpdate()
Dim toto as integer
If succes = True Then
toto=MsgBox("Offre pourvue par la ML ?", vbYesNo)
Select Case toto
Case vbYes: me!etat = 3:me.Parent!etat=3
Case vbNo: me!etat = 4:me.Parent!etat=4
' peut-être que Refresh serait mieux que Requery
' à vérifier
DoCmd.Requery
End Select
End If
End Sub

Bonjour,
J'ai pas mal avancé dans mon problème de sousform (merci 3stone) et
je suis maintenant bloqué sur une affectation de valeur en focntion
d'une case à cocher et du résultat d'une msgbox.
Voila mon bout de code et je vous explique ce que je voudrais en
faire...
Private Sub succes_AfterUpdate()
If succes = True Then
MsgBox "Offre pourvue par la ML ?", vbYesNo
Select Case toto
Case vbYes: etat = 3
Case vbNo: etat = 4
DoCmd.Requery
End Select
End If
End Sub
Dans le sousform j'ai une case à cocher "succes", si je la coche
ensuite j'ai la boite de dialogue qui me demande si l'offre à été
pourvue par la ML ? avec une réponse oui/non.
Si c'est oui je voudrais mettre la valeur 3 dans le controle "etat" et
si c'est non mettre la valeur 4 toujours dans le controle "etat" et
pour finir faire un requery du formulaire (pas seulement du souform)
ou le controle "etat" est présent sous forme de boite de bouton radio,
le champ "etat" est présent dans le form et dans le sousform dans les
requetes de choix pour pouvoir y accéder donc mon problème ne vient
pas de la (enfin je crois...)
Je n'ai pas compris pourquoi mettre un nom "toto" a la suite de
select case mais il veut absolument un truc sinon ca ne marche pas.
Merci de votre aide







--
Email contact


Avatar
Eric
re,

Dans le formulaire ton bouton radio (bascule)pour le champ etat est
indépendant ? Si oui, alors tu dois mettre Me.Parent!etat = True. Un
bouton bascule ne prend que 2 valeurs True ou False. S'il est dans un
groupe d'options avec d'autres alors c'est le groupe d'options qu'il
faut mettre à jour en passant le rang du bouton dans le groupe
Je comprends pas trop comment fonctionne ton formulaire et sous-formulaire.
Tu ne pourrais pas mettre une copie d'écran sur www.cjoint.com (<500ko,
si plus zippes-le) et poster ensuite le lien?

Bonsoir,

Merci beaucoup pour la correction du code, en fait je me doutais bien
qu'il n'allait pas comprendre ou je voulais affecter le résultat du
msgbox mais je ne pensais pas pouvoir faire un toto=msgbox...

Le code marche nickel mais il n'affiche pas la modification dans le
form avec requery ou avec refresh, si je sors du form et que j'y
rerentre la modif est prise en compte mais comment forcer la
réactualisation du form, je précise que le control en questiuon est une
boite de bouton radio.

Merci d'avance



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Txl
Bonsoir (ou bonjour ca dépend...)

Mon controle dans le form n'est pas de type indépendant, en fait c'est
meme pas un bouton radio (je me suis trompé) mais un bouton bascule (je ne
sais pas si ca change quelque chose).

J'ai un champ "etat" qui a des valeurs de 1 à 5 et le controle affiche ces
valeurs sous forme de bouton bascule

J'ai fait une copie d'écran sur cjoint comme tu me l'as demandé avec les
propriétés du controle en question.

Encore merci pour ton aide

http://cjoint.com/?lugmXU0a6Y




re,

Dans le formulaire ton bouton radio (bascule)pour le champ etat est
indépendant ? Si oui, alors tu dois mettre Me.Parent!etat = True. Un
bouton bascule ne prend que 2 valeurs True ou False. S'il est dans un
groupe d'options avec d'autres alors c'est le groupe d'options qu'il
faut mettre à jour en passant le rang du bouton dans le groupe
Je comprends pas trop comment fonctionne ton formulaire et
sous-formulaire.
Tu ne pourrais pas mettre une copie d'écran sur www.cjoint.com (<500ko,
si plus zippes-le) et poster ensuite le lien?

Bonsoir,
Merci beaucoup pour la correction du code, en fait je me doutais bien
qu'il n'allait pas comprendre ou je voulais affecter le résultat du
msgbox mais je ne pensais pas pouvoir faire un toto=msgbox...
Le code marche nickel mais il n'affiche pas la modification dans le
form avec requery ou avec refresh, si je sors du form et que j'y
rerentre la modif est prise en compte mais comment forcer la
réactualisation du form, je précise que le control en questiuon est
une boite de bouton radio.
Merci d'avance







--
Email contact


Avatar
Eric
Bonjour,

Tes boutons-radio (ou bascule, c'est pareil) étant dans un groupe
d'options, c'est le groupe d'options qui doit se voir attribué la valeur
3 ou 4 quand tu coches etat dans le sousform. Donc mettre :
Case vbYes: me!etat = 3:me.Parent!cadreetat=3
Case vbNo: me!etat = 4:me.Parent!cadreetat=4


Bonsoir (ou bonjour ca dépend...)

Mon controle dans le form n'est pas de type indépendant, en fait c'est
meme pas un bouton radio (je me suis trompé) mais un bouton bascule (je
ne sais pas si ca change quelque chose).

J'ai un champ "etat" qui a des valeurs de 1 à 5 et le controle affiche
ces valeurs sous forme de bouton bascule

J'ai fait une copie d'écran sur cjoint comme tu me l'as demandé avec
les propriétés du controle en question.

Encore merci pour ton aide

http://cjoint.com/?lugmXU0a6Y




re,

Dans le formulaire ton bouton radio (bascule)pour le champ etat est
indépendant ? Si oui, alors tu dois mettre Me.Parent!etat = True. Un
bouton bascule ne prend que 2 valeurs True ou False. S'il est dans un
groupe d'options avec d'autres alors c'est le groupe d'options qu'il
faut mettre à jour en passant le rang du bouton dans le groupe
Je comprends pas trop comment fonctionne ton formulaire et
sous-formulaire.
Tu ne pourrais pas mettre une copie d'écran sur www.cjoint.com
(<500ko, si plus zippes-le) et poster ensuite le lien?


Bonsoir,
Merci beaucoup pour la correction du code, en fait je me doutais
bien qu'il n'allait pas comprendre ou je voulais affecter le
résultat du msgbox mais je ne pensais pas pouvoir faire un
toto=msgbox...
Le code marche nickel mais il n'affiche pas la modification dans le
form avec requery ou avec refresh, si je sors du form et que j'y
rerentre la modif est prise en compte mais comment forcer la
réactualisation du form, je précise que le control en questiuon est
une boite de bouton radio.
Merci d'avance









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,
parti trop vite
Lire quand tu coches succes et non etat



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Txl
Le Sun, 20 Nov 2005 09:42:50 +0100, Eric a écrit:

Bonjour,

Tes boutons-radio (ou bascule, c'est pareil) étant dans un groupe
d'options, c'est le groupe d'options qui doit se voir attribué la valeur
3 ou 4 quand tu coches etat dans le sousform. Donc mettre :
Case vbYes: me!etat = 3:me.Parent!cadreetat=3
Case vbNo: me!etat = 4:me.Parent!cadreetat=4


Ok, super ca marche, je croyais (betement) que comme je modifiais la
valeur du champ et que je faisais un requery il allait s'y retrouver tout
seul mais non.

mille mercis...





Bonsoir (ou bonjour ca dépend...)
Mon controle dans le form n'est pas de type indépendant, en fait
c'est meme pas un bouton radio (je me suis trompé) mais un bouton
bascule (je ne sais pas si ca change quelque chose).
J'ai un champ "etat" qui a des valeurs de 1 à 5 et le controle affiche
ces valeurs sous forme de bouton bascule
J'ai fait une copie d'écran sur cjoint comme tu me l'as demandé avec
les propriétés du controle en question.
Encore merci pour ton aide
http://cjoint.com/?lugmXU0a6Y

re,

Dans le formulaire ton bouton radio (bascule)pour le champ etat est
indépendant ? Si oui, alors tu dois mettre Me.Parent!etat = True. Un
bouton bascule ne prend que 2 valeurs True ou False. S'il est dans un
groupe d'options avec d'autres alors c'est le groupe d'options qu'il
faut mettre à jour en passant le rang du bouton dans le groupe
Je comprends pas trop comment fonctionne ton formulaire et
sous-formulaire.
Tu ne pourrais pas mettre une copie d'écran sur www.cjoint.com
(<500ko, si plus zippes-le) et poster ensuite le lien?


Bonsoir,
Merci beaucoup pour la correction du code, en fait je me doutais
bien qu'il n'allait pas comprendre ou je voulais affecter le
résultat du msgbox mais je ne pensais pas pouvoir faire un
toto=msgbox...
Le code marche nickel mais il n'affiche pas la modification dans le
form avec requery ou avec refresh, si je sors du form et que j'y
rerentre la modif est prise en compte mais comment forcer la
réactualisation du form, je précise que le control en questiuon est
une boite de bouton radio.
Merci d'avance











--
Email contact