OVH Cloud OVH Cloud

Arret boucle

2 réponses
Avatar
Jacky
Bonjour,
J'ai créer un bouton qui mets a jour ou annul les modifications de stocks au
dernier moment avant d'imprimer une facture.
Malheureusement il doit y avoir une erreur dans la fin de boucle qui
continue de tournée. Merci, au bonnes volontées.....

Private Sub Commande290_Click()
On Error GoTo Err_Commande290_Click
'couleur blanc = stock non modifié
'couleur vert = stock validé
'Forms("Commandes")![Sous formulaire Commandes].SetFocus
'Forms("Commandes")![Sous formulaire Commandes].Form![Unités en
stock].SetFocus
DoCmd.GoToRecord , , acFirst
Do
'si fond blanc enlève la quantité commandée sinon opération inverse rétablir
les stocks
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") - Forms("Commandes")("Sous formulaire
Commandes")("Quantité") Else Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") + Forms("Commandes")("Sous formulaire
Commandes")("Quantité")
DoCmd.GoToRecord , , acNext
Loop Until IsNull(Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock")) = True
Err_Commande290_Click:
'Si fond blanc passe au fond vert qui veut dire que le stock est modifié
Else retour au blanc
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock").BackColor = 16777158 Else
Forms("Commandes")("Sous formulaire Commandes")("Unités en stock").BackColor
= 16777215

End Sub

2 réponses

Avatar
Bonjour

En tentant de rendre le code plus compréhensible (tu n'as pas de EndIf dans ta syntaxe ??)

ça donnerait :

Private Sub Commande290_Click()
On Error GoTo Err_Commande290_Click
DoCmd.GoToRecord , , acFirst
Do
If b.BackColor = 16777215 Then
b = c - d
Else
b = c + d
DoCmd.GoToRecord , , acNext
End If
Loop Until IsNull(b) = True

Err_Commande290_Click:

If b.BackColor = 16777215 Then
c.BackColor = 16777158
Else
c.BackColor = 16777215
End If

End Sub


Conclusion, si ton code ne s'arrête pas, c'est parce que b n'a jamais la valeur Null
ps : b c'est Forms("Commandes")("Sous formulaire Commandes")("Unités en stock")


--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------


"Jacky" a écrit dans le message de news:
Bonjour,
J'ai créer un bouton qui mets a jour ou annul les modifications de stocks au
dernier moment avant d'imprimer une facture.
Malheureusement il doit y avoir une erreur dans la fin de boucle qui
continue de tournée. Merci, au bonnes volontées.....

Private Sub Commande290_Click()
On Error GoTo Err_Commande290_Click
'couleur blanc = stock non modifié
'couleur vert = stock validé
'Forms("Commandes")![Sous formulaire Commandes].SetFocus
'Forms("Commandes")![Sous formulaire Commandes].Form![Unités en
stock].SetFocus
DoCmd.GoToRecord , , acFirst
Do
'si fond blanc enlève la quantité commandée sinon opération inverse rétablir
les stocks
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") - Forms("Commandes")("Sous formulaire
Commandes")("Quantité") Else Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") + Forms("Commandes")("Sous formulaire
Commandes")("Quantité")
DoCmd.GoToRecord , , acNext
Loop Until IsNull(Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock")) = True
Err_Commande290_Click:
'Si fond blanc passe au fond vert qui veut dire que le stock est modifié
Else retour au blanc
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock").BackColor = 16777158 Else
Forms("Commandes")("Sous formulaire Commandes")("Unités en stock").BackColor
= 16777215

End Sub


Avatar
Jacky
Salut Arnaud.
Après test End If ne fonctionne pas, réponse Block End sans If
Je n'ai absolument rien changé par rapport à hier, seulement la mise en page
j'ai décalé les boucles et MIRACLE, tout est OK.... (Bizarrerie informatique)

Private Sub Commande290_Click()
On Error GoTo Err_Commande290_Click
'couleur blanc = stock non modifié
'couleur vert = stock validé
Forms("Commandes")![Sous formulaire Commandes].SetFocus
Forms("Commandes")![Sous formulaire Commandes].Form![Unités en stock].SetFocus
DoCmd.GoToRecord , , acFirst
Do
'si fond blanc enlève la quantité commandée sinon opération inverse
rétablir les stocks
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") - Forms("Commandes")("Sous formulaire
Commandes")("Quantité") Else: Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") = Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock") + Forms("Commandes")("Sous formulaire
Commandes")("Quantité")
DoCmd.GoToRecord , , acNext
Loop Until IsNull(Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock")) = True
Err_Commande290_Click:
'Si fond blanc passe au fond vert qui veut dire que le stock est modifié
Else retour au blanc
If Forms("Commandes")("Sous formulaire Commandes")("Unités en
stock").BackColor = 16777215 Then Forms("Commandes")("Sous formulaire
Commandes")("Unités en stock").BackColor = 16777158 Else:
Forms("Commandes")("Sous formulaire Commandes")("Unités en stock").BackColor
= 16777215
End Sub