Cacher un champ dans un état Access qd celui-ci est vide

Signaler
Messages postés
7
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
21 avril 2006
-
Messages postés
1
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
20 juin 2008
-
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

Merci d'avance
Olivier

5 réponses

Messages postés
7
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
21 avril 2006

Juste un petit correctif, je veux afficher le champ que lorqu'il n'est pas vide... (j'avais oublier la négation!!

Olivier
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
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.

Bon courage!
Messages postés
7
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
21 avril 2006

Ok merci pour ton aide, je vais tester cela dans la matinée...

Olivier
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
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
Messages postés
1
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
20 juin 2008

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.