OVH Cloud OVH Cloud

Activer/Désactiver sur mesure

2 réponses
Avatar
atmus
Bonsoir,

Dans un formulaire, j'ai 3 zones textes (ZONE1, ZONE2 et=20
ZONE3) et un bouton "Suivant".

Je NE voudrais activer (gris=E9) le bouton "Suivant" que ces=20
les 3 zones textes sont renseign=E9es. Sinon (m=EAme une seule=20
zone) est vide, alors laisser le bouton gris=E9.

J'ai mis un code =E0 l'ouverture du formulaire qui s'ouvre=20
en mode ajout (dc, les 3 zones sont vides):

Private Sub Form_Open(Cancel As Integer)
Commande5.Enabled =3D False
End Sub

et sur l'=E9v=E9nement apr=E8s mise-=E0-jour de la ZONE3:

Private Sub ZONE3_AfterUpdate()
If ZONE1> 0 And ZONE2> 0 And ZONE3 > 0 Then
Commande5.Enabled =3D True
Else
Commande5.Enabled =3D False
End If
End Sub

Je remplie zone par zone et lorsque je remplie ZONE3,=20
effectivement, le bouton s'active.

Mais, lorsque je supprime ce qui j'ai =E9crit en ZONE2 par=20
exemple (pour tester), le bouton reste activ=E9!!!!! Alors=20
qu'il faudrait se d=E9sactiver

Qqn pourrait'il me donner un coup de main

Merci

2 réponses

Avatar
Raymond
Bonsoir.
Tu exécutes 3 fois le test sur chacune des zones, mais pour ne pas répéter
tu les appelles par leur nom sur chaque bouton. Tu peux aussi placer la
fonction MAJ dans un module, la définir public au lieu de private et faire
appel à elle directement sur l'événement après maj de chaque zone.

Private Sub ZONE1_AfterUpdate()
MAJ
End Sub
Private Sub ZONE2_AfterUpdate()
MAJ
End Sub
Private Sub ZONE3_AfterUpdate()
MAJ
End Sub

Private Function MAJ()
If ZONE1> 0 And ZONE2> 0 And ZONE3 > 0 Then
Commande5.Enabled = True
Else
Commande5.Enabled = False
End If
End Function

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"atmus" a écrit dans le message de
news:013b01c34af7$81079080$
Bonsoir,

Dans un formulaire, j'ai 3 zones textes (ZONE1, ZONE2 et
ZONE3) et un bouton "Suivant".

Je NE voudrais activer (grisé) le bouton "Suivant" que ces
les 3 zones textes sont renseignées. Sinon (même une seule
zone) est vide, alors laisser le bouton grisé.

J'ai mis un code à l'ouverture du formulaire qui s'ouvre
en mode ajout (dc, les 3 zones sont vides):

Private Sub Form_Open(Cancel As Integer)
Commande5.Enabled = False
End Sub

et sur l'événement après mise-à-jour de la ZONE3:

Private Sub ZONE3_AfterUpdate()
If ZONE1> 0 And ZONE2> 0 And ZONE3 > 0 Then
Commande5.Enabled = True
Else
Commande5.Enabled = False
End If
End Sub

Je remplie zone par zone et lorsque je remplie ZONE3,
effectivement, le bouton s'active.

Mais, lorsque je supprime ce qui j'ai écrit en ZONE2 par
exemple (pour tester), le bouton reste activé!!!!! Alors
qu'il faudrait se désactiver

Qqn pourrait'il me donner un coup de main

Merci
Avatar
Raymond
.../...
je complète,
si tu passes par un module tu ne peux pas passer par le contrôle directement
pour le tester mais tu dois passer par Screen.ActiveControl
je t'ai presque généré une erreur.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.