Cacher un champ dans un état Access qd celui-ci est vide
orobert01
Messages postés7Date d'inscriptionmardi 28 mars 2006StatutMembreDernière intervention21 avril 2006
-
20 avril 2006 à 11:09
Malardrie
Messages postés1Date d'inscriptionmardi 19 mars 2013StatutMembreDernière intervention20 juin 2008
-
20 juin 2008 à 15:13
Bonjour,
en fait je veux afficher un champ uniquement quand celui-ci est vide sur mon état. Je suppose que pour faire cela, il faut utiliser un code en VBA mais je ne m'y connais pas vraiment donc ...
J'aimerais également attaché à ce champ un espace. Cela signifie que lorsque mon champ a du texte la partie "Détail" de mon état doit être plus grande que qd mon champ est vide. Par contre je ne sais pas si ce 2ème point est réalisable
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 21 avril 2006 à 09:54
rien de plus simple pour le masquage des champs.
Un petit bout de code dans l'événement "Private Sub Report_Activate()" de ton état
If Not IsNull(Me.Controls("NomduContrôle").value) Then
Me.Controls("NomduContrôle").Visible = True
Me.Controls("Étiquette_Contrôle").Visible = True
End If
Pour le second point, il faut que ton champ est la propriété "Auto extensible" et "Auto réductible" avec la valeur oui. La taille de la zone détail est elle de toute façon toujours auto extensible, en fonction des données. Le seul problème à ma connaissance est sur les zones texte qui s'étende en largeurs mais pas en hauteur. Il te faudra certainement modifier par code la hauteur de ta zone en fonction du nombre de caractères qu'elle contient.
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 21 avril 2006 à 10:24
J'ai oublier de préciser que par defaut ton champ doit être invisible. sinon tu peux rajouter au code que je t'ai fourni un Else pour prendre en compte les cas ou le champ est null
If Not IsNull(Me.Controls("NomduContrôle").value) Then
Me.Controls("NomduContrôle").Visible = True
Me.Controls("Étiquette_Contrôle").Visible = True
Else:
Me.Controls("NomduContrôle").Visible = False
Me.Controls("Étiquette_Contrôle").Visible = False
End If
Vous n’avez pas trouvé la réponse que vous recherchez ?
Malardrie
Messages postés1Date d'inscriptionmardi 19 mars 2013StatutMembreDernière intervention20 juin 2008 20 juin 2008 à 15:13
Merci pour ton code.
Comment faire pour que l etest se fasse sur tous les enregistrements de la table (ou requête) liée, avec ton code il fait le test sur le premier Controle mais pas sur les suivants.
PS : je suis débutant en VBA mais ne demande qu'à apprendre.