Bouton dans un état, visible selon condition
ButteDuLac
Messages postés
534
Statut
Membre
-
ButteDuLac Messages postés 534 Statut Membre -
ButteDuLac Messages postés 534 Statut Membre -
Bonjour,
Dans un état basé sur une requête, listant les formations pour lesquelles j'ai tel suivi à faire, j'ai regroupé les formations selon que l'envoi du formulaire GFRH est « fait » ou « à faire ». Le champ s'appelle Suivi et contient l'expression : « Suivi: VraiFaux(EstNull([Form_gest_RH_envoye_CPT]);"À faire";"Fait") »
L'état est regroupé par « Suivi » (fait; à faire), puis par date d'échéance.
Dans mon état, je veux ajouter, pour chaque enregistrement, un petit bouton me permettant d'ouvrir un formulaire de saisie pour mettre à jour l'information de suivi. Ça c'est fait et ça fonctionne.
Maintenant, j'aimerais que ce bouton n'apparaisse que pour les enregistrements (formations) pour lesquels l'envoi n'est pas encore fait. Je voulais donc que « si le champ [Form_gest_RH_envoye_CPT] est vide, alors le bouton apparait, sinon il n'apparait pas. »
J'ai essayé une simple macro :
Je me suis dit que c'était trop facile... alors après un peu de recherche, j'en suis venue à :
Niet! Le bouton apparait partout... (j'ai changé Report pour Me.CurrentReport, Me.Report, etc., j'ai changé Recordset pour Recordsets...), en fait, je n'ai aucune idée quoi faire.
Je ne rencontre pas de bogue, mais ça ne donne rien...
Merci de m'aider si vous pouvez!
Dans un état basé sur une requête, listant les formations pour lesquelles j'ai tel suivi à faire, j'ai regroupé les formations selon que l'envoi du formulaire GFRH est « fait » ou « à faire ». Le champ s'appelle Suivi et contient l'expression : « Suivi: VraiFaux(EstNull([Form_gest_RH_envoye_CPT]);"À faire";"Fait") »
L'état est regroupé par « Suivi » (fait; à faire), puis par date d'échéance.
Dans mon état, je veux ajouter, pour chaque enregistrement, un petit bouton me permettant d'ouvrir un formulaire de saisie pour mettre à jour l'information de suivi. Ça c'est fait et ça fonctionne.
Maintenant, j'aimerais que ce bouton n'apparaisse que pour les enregistrements (formations) pour lesquels l'envoi n'est pas encore fait. Je voulais donc que « si le champ [Form_gest_RH_envoye_CPT] est vide, alors le bouton apparait, sinon il n'apparait pas. »
J'ai essayé une simple macro :
Private Sub Report_Current()
If Me.Form_gest_RH_envoye_CPT.Value = Null Then
Me.Commande33.Visible = True
Else: Me.Commande33.Visible = False
End If
End Sub
Je me suis dit que c'était trop facile... alors après un peu de recherche, j'en suis venue à :
Private Sub Report_Current()
Dim Rec As Recordset
For Each Rec In Report
If Me.Form_gest_RH_envoye_CPT.Value = Null Then
Me.Commande33.Visible = True
Else: Me.Commande33.Visible = False
End If
Next
End Sub
Niet! Le bouton apparait partout... (j'ai changé Report pour Me.CurrentReport, Me.Report, etc., j'ai changé Recordset pour Recordsets...), en fait, je n'ai aucune idée quoi faire.
Je ne rencontre pas de bogue, mais ça ne donne rien...
Merci de m'aider si vous pouvez!
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir,
si jamais ton "for each" fonctionne, tu devrais utiliser Rec à la place de Me. sinon le "for each" ne sert à rien.
difficile d'être plus précis sans que tu partages ton fichier.-
Je vais anonymiser le fichier et tenter de vous l'envoyer. Ça ira à plus tard ou à demain, je quitte le bureau... merci!
- Beaucoup trop long... Hum!
En fait, non, je n'ai aucune idée si mon "for each" fonctionne, justement...
J'ignore totalement comment le formuler. Je sais que logiquement, ce serait « pour chaque enregistrement dans l'état, vérifie s'il y a une date dans le champ Form_gest_RH_envoye_CPT, si oui, n'affiche pas le bouton, si non, affiche-le ». Ça, c'est ma logique. Mais je cherche comment la traduire en VBA.
J'ai trouvé que je devrais dire :If IsNull(Form_gest_RH_envoye_CPT) Then
plutôt queIf Me.Form_gest_RH_envoye_CPT.Value = Null Then
. C'est déjà un début!!!
-