Bouton dans un état, visible selon condition

Fermé
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 31 janv. 2017 à 21:36
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 3 févr. 2017 à 03:01
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 :

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 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
31 janv. 2017 à 21:43
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.
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40
31 janv. 2017 à 22:08
Je vais anonymiser le fichier et tenter de vous l'envoyer. Ça ira à plus tard ou à demain, je quitte le bureau... merci!
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40 > ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020
3 févr. 2017 à 02:59
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 que
If Me.Form_gest_RH_envoye_CPT.Value = Null Then
. C'est déjà un début!!!
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40 > ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020
3 févr. 2017 à 03:01
C'est toujours à la ligne « For Each » que ça bogue...
0