Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cacher une étiquette dans un état quand le champ est vide

7 réponses
Avatar
jace2009
Bonjour,

je suis sur le point de créer un état étiquette pour pouvoir effectuer un répertoire de membre.
Dans ce répertoire, je dois inscrire le courriel et le site internet de ceux-ci. Par contre, lorsque je n'ai pas de courriel ou de site internet, j'aimerais que l'étiquette ne s'affiche pas.

J'ai essayer ceci:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)

If isnull(me.courriel) then
Me.étiquette10.visible=false
Else
Me.étiquette10.visible=true
End if

If isnull(me.internet) then
me.étiquette11.visible=false
else
me.étiquette11.visible=true
End if

End sub

je croyais que ça pouvait fonctionner....mais mes étiquettes courriel et site internet sont toujours affiché.

Est-ce que je dois faire quoi que ce soit au niveau des paramètres de mon Access???

Je ne comprends pas pourquoi ça ne fonctionne pas...

Merci de m'aider S.V.P. !!!

7 réponses

Avatar
3stone
Salut,

jace2009 wrote:
Bonjour,

je suis sur le point de créer un état étiquette pour pouvoir
effectuer un répertoire de membre.
Dans ce répertoire, je dois inscrire le courriel et le site internet
de ceux-ci. Par contre, lorsque je n'ai pas de courriel ou de site
internet, j'aimerais que l'étiquette ne s'affiche pas.

J'ai essayer ceci:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)

If isnull(me.courriel) then
Me.étiquette10.visibleúlse
Else
Me.étiquette10.visible=true
End if

If isnull(me.internet) then
me.étiquette11.visibleúlse
else
me.étiquette11.visible=true
End if

End sub

je croyais que ça pouvait fonctionner....mais mes étiquettes
courriel et site internet sont toujours affiché.






Cela devrait fonctionner, à condition que "courriel" soit bien Null
et ne contienne pas une chaîne vide, par exemple.


Ceci dit, il ne faut pas garder les noms par défaut !
étiquette10 ou éticuette11 ne veut absolument rien dire
et dans pas longtemps, il faudra que tu regardes toutes
les étiquettes de ton état ou formulaire pour trouver le
nom de tes étiquettes!!!
Lorsque l'on pose une zone de texte sur un formulaire ou
sur un état, la première chose à faire est de leur donner
un nom parlant.

Pour un champ NomClient, on aura alors une zone de texte
txtNomClient et une étiquette(label) lblNomClient.
Avec cela, même dix ans après tu sais de quoi il s'agit...


On peut également abréger l'écriture :

Me.lblNomClient.Visible = Not (IsNull(Me.txtNomClient))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Gloops
3stone a écrit, le 18/01/2011 17:40 :
Cela devrait fonctionner, à condition que "courriel" soit bien Null
et ne contienne pas une chaîne vide, par exemple.




Absolument. Pour synthétiser les deux tests :

If Nz(courriel, "") <> "" Then ...

Au demeurant on peut carrément écrire une fonction pour vérifier si on a
affaire à une adresse mail valide, mais ça, c'est un autre sujet.
D'ailleurs là on voit qu'on a plusieurs niveaux de validation :
- pas nul
- pas nul ni chaîne vide
- contient une chaîne de caractères avec une arrobase et un point, de s
caractères valides avant, entre les deux et après (ce n'est pas
nécessairement les mêmes dans les trois cas)
- contient une adresse mail valide, et qui répond sous 48 heures quand
on lui écrit (et de préférence autre chose que "z'avez pas aut'chos e à
fout' qu'emmerder les gens ?") ;)





Ceci dit, il ne faut pas garder les noms par défaut !
étiquette10 ou éticuette11 ne veut absolument rien dire
et dans pas longtemps, il faudra que tu regardes toutes
les étiquettes de ton état ou formulaire pour trouver le
nom de tes étiquettes!!!
Lorsque l'on pose une zone de texte sur un formulaire ou
sur un état, la première chose à faire est de leur donner
un nom parlant.

Pour un champ NomClient, on aura alors une zone de texte
txtNomClient et une étiquette(label) lblNomClient.
Avec cela, même dix ans après tu sais de quoi il s'agit...



Pendant que je passe par là j'en profite pour enfoncer aussi le clou.
Quelquefois on a à passer derrière d'autres, la carrière entière dans la
même boîte c'est un peu du passé, et là effectivement label18, qu 'est-ce
que je me mets dedans, ben ... je n'en sais rien, moi.

Effectivement, des noms de contrôles qui commencent par txt ou lbl selo n
qu'il s'agisse de zones de texte ou d'étiquettes, ça me parle.
Et comme le nom, derrière dit de quoi il retourne ...

Ah oui on a vu mettre txtNom, et retrouver txtNom dans un autre
formulaire, et dans un cas c'était le client, dans l'autre le
technicien. Voui voui, txtNomClient, ça inspire bien confiance.
Avatar
gendronj
3stone a écrit le 18/01/2011 à 17h40 :
Salut,

jace2009 wrote:
Bonjour,

je suis sur le point de créer un état étiquette pour
pouvoir
effectuer un répertoire de membre.
Dans ce répertoire, je dois inscrire le courriel et le site internet
de ceux-ci. Par contre, lorsque je n'ai pas de courriel ou de site
internet, j'aimerais que l'étiquette ne s'affiche pas.

J'ai essayer ceci:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)

If isnull(me.courriel) then
Me.étiquette10.visibleúlse
Else
Me.étiquette10.visible=true
End if

If isnull(me.internet) then
me.étiquette11.visibleúlse
else
me.étiquette11.visible=true
End if

End sub

je croyais que ça pouvait fonctionner....mais mes étiquettes
courriel et site internet sont toujours affiché.








Cela devrait fonctionner, à condition que "courriel" soit bien
Null
et ne contienne pas une chaîne vide, par exemple.


Ceci dit, il ne faut pas garder les noms par défaut !
étiquette10 ou éticuette11 ne veut absolument rien dire
et dans pas longtemps, il faudra que tu regardes toutes
les étiquettes de ton état ou formulaire pour trouver le
nom de tes étiquettes!!!
Lorsque l'on pose une zone de texte sur un formulaire ou
sur un état, la première chose à faire est de leur donner
un nom parlant.

Pour un champ NomClient, on aura alors une zone de texte
txtNomClient et une étiquette(label) lblNomClient.
Avec cela, même dix ans après tu sais de quoi il s'agit...


On peut également abréger l'écriture :

Me.lblNomClient.Visible = Not (IsNull(Me.txtNomClient))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


Bonjour 3stone,

vous dites "Cela devrait fonctionner, à condition que "courriel" soit bien Null". Je comprends mal ce que vous voulez dire par Null.... Pourriez-vous m'éclaircir à ce sujet :S ???

De plus, j'ai essayé l'écriture abréger donc vous m'avez fait part lors du dernier message. Le code que j'ai inscrit est le suivant:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Me.lblmembrecourriel.Visible = Not (IsNull(Me.COURRIEL))

End if
End sub

Ça ne fonctionne pas. Pourtant, j'ai bien changé le nom de l'étiquette par un nom parlant...Peut-être que c'est relié à la condition Null....??
Avatar
Gloops
gendronj a écrit, le 20/01/2011 18:46 :
3stone a écrit le 18/01/2011 à 17h40 :
Salut,

jace2009 wrote:
Bonjour,

je suis sur le point de créer un état étiquette pour
pouvoir
effectuer un répertoire de membre.
Dans ce répertoire, je dois inscrire le courriel et le site intern et
de ceux-ci. Par contre, lorsque je n'ai pas de courriel ou de site
internet, j'aimerais que l'étiquette ne s'affiche pas.

J'ai essayer ceci:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Intege r)

If isnull(me.courriel) then
Me.étiquette10.visibleúlse
Else
Me.étiquette10.visible=true
End if

If isnull(me.internet) then
me.étiquette11.visibleúlse
else
me.étiquette11.visible=true
End if

End sub

je croyais que ça pouvait fonctionner....mais mes étiquettes
courriel et site internet sont toujours affiché.








Cela devrait fonctionner, à condition que "courriel" soit bien
Null
et ne contienne pas une chaîne vide, par exemple.


Ceci dit, il ne faut pas garder les noms par défaut !
étiquette10 ou éticuette11 ne veut absolument rien dire
et dans pas longtemps, il faudra que tu regardes toutes
les étiquettes de ton état ou formulaire pour trouver le
nom de tes étiquettes!!!
Lorsque l'on pose une zone de texte sur un formulaire ou
sur un état, la première chose à faire est de leur donner
un nom parlant.

Pour un champ NomClient, on aura alors une zone de texte
txtNomClient et une étiquette(label) lblNomClient.
Avec cela, même dix ans après tu sais de quoi il s'agit...


On peut également abréger l'écriture :

Me.lblNomClient.Visible = Not (IsNull(Me.txtNomClient))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


Bonjour 3stone,

vous dites "Cela devrait fonctionner, à condition que "courriel" soit bien
Null". Je comprends mal ce que vous voulez dire par Null.... Pourriez-v ous
m'éclaircir à ce sujet :S ???

De plus, j'ai essayé l'écriture abréger donc vous m'avez fait par t lors du
dernier message. Le code que j'ai inscrit est le suivant:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Me.lblmembrecourriel.Visible = Not (IsNull(Me.COURRIEL))

End if
End sub

Ça ne fonctionne pas. Pourtant, j'ai bien changé le nom de l'étiq uette par un
nom parlant...Peut-être que c'est relié à la condition Null....??



Quand un champ n'a pas de contenu, on dit qu'il est nul.
C'est différent de 0 pour un champ numérique, ou chaîne vide, pour un
champ alphanumérique.
Dans les propriétés d'un champ d'une table, il y en a une qui dit si ce
champ peut être nul.

Pour éviter des retards à l'exécution, il faut penser à tester ce cas.

If IsNull(champ) Then
'gérer le cas où le champ est nul
Else
'effectuer le traitement avec une valeur dans le champ
End IF

ou encore

If Nz(champ, "") <> "" Then
'Dans le champ, il y a une chaîne vide, ou rien (nul)
End If
Avatar
gendronj
Gloops a écrit le 21/01/2011 à 06h53 :
gendronj a écrit, le 20/01/2011 18:46 :
3stone a écrit le 18/01/2011 à 17h40 :
Salut,

jace2009 wrote:
Bonjour,

je suis sur le point de créer un état étiquette pour
pouvoir
effectuer un répertoire de membre.
Dans ce répertoire, je dois inscrire le courriel et le site intern
et
de ceux-ci. Par contre, lorsque je n'ai pas de courriel ou de site
internet, j'aimerais que l'étiquette ne s'affiche pas.

J'ai essayer ceci:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Intege
r)

If isnull(me.courriel) then
Me.étiquette10.visibleúlse
Else
Me.étiquette10.visible=true
End if

If isnull(me.internet) then
me.étiquette11.visibleúlse
else
me.étiquette11.visible=true
End if

End sub

je croyais que ça pouvait fonctionner....mais mes étiquettes
courriel et site internet sont toujours affiché.










Cela devrait fonctionner, à condition que "courriel" soit
bien
Null
et ne contienne pas une chaîne vide, par exemple.


Ceci dit, il ne faut pas garder les noms par défaut !
étiquette10 ou éticuette11 ne veut absolument rien dire
et dans pas longtemps, il faudra que tu regardes toutes
les étiquettes de ton état ou formulaire pour trouver le
nom de tes étiquettes!!!
Lorsque l'on pose une zone de texte sur un formulaire ou
sur un état, la première chose à faire est de leur
donner
un nom parlant.

Pour un champ NomClient, on aura alors une zone de texte
txtNomClient et une étiquette(label) lblNomClient.
Avec cela, même dix ans après tu sais de quoi il s'agit...


On peut également abréger l'écriture :

Me.lblNomClient.Visible = Not (IsNull(Me.txtNomClient))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Bonjour 3stone,

vous dites "Cela devrait fonctionner, à condition que
"courriel" soit bien
Null". Je comprends mal ce que vous voulez dire par Null.... Pourriez-v
ous
m'éclaircir à ce sujet :S ???

De plus, j'ai essayé l'écriture abréger donc vous m'avez
fait par t lors du
dernier message. Le code que j'ai inscrit est le suivant:

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Me.lblmembrecourriel.Visible = Not (IsNull(Me.COURRIEL))

End if
End sub

Ça ne fonctionne pas. Pourtant, j'ai bien changé le nom de
l'étiq uette par un
nom parlant...Peut-être que c'est relié à la condition
Null....??




Quand un champ n'a pas de contenu, on dit qu'il est nul.
C'est différent de 0 pour un champ numérique, ou chaîne
vide, pour un
champ alphanumérique.
Dans les propriétés d'un champ d'une table, il y en a une qui dit
si ce
champ peut être nul.

Pour éviter des retards à l'exécution, il faut penser
à tester ce cas.

If IsNull(champ) Then
'gérer le cas où le champ est nul
Else
'effectuer le traitement avec une valeur dans le champ
End IF

ou encore

If Nz(champ, "") <> "" Then
'Dans le champ, il y a une chaîne vide, ou rien (nul)
End If


Bonjour,

merci beaucoup, mais ça ne fonctionne toujours pas.

Je ne comprend pas pourquoi ça ne fonctionne pas. J'ai déjà été capable de cacher l'étiquette d'un champ vide dans un état....Par contre, la journée d'après, lorsque j'ai ouvert ma base de données, mes étiquettes sont apparues au endroit où j'avais mis un code pour ne pas qu'elles s'affichent.

Quel code exactement dois-je utiliser pour être en mesure de pouvoir cacher une étiquette d'un champ vide ?

À partir de ce code, suis-je en mesure de pouvoir faire quoi que ce soit ?

Dois-je paramétrer quoi que ce soit dans mon Microsoft Access...ou dans ma base de données...??

Private Sub Détail_Format(Cancel As Integer, FormatCount As Intege
r)

If isnull(me.courriel) then
Me.lblmembrecourriel.visibleúlse
Else
Me.lblmembrecourriel.visible=true
End if

If isnull(me.internet) then
me.lblmembreinternet.visibleúlse
else
me.lblmembreinternet.visible=true
End if

End sub



Merci pour votre aide :) !!!!
Avatar
3stone
Salut,

gendronj wrote:
Dois-je paramétrer quoi que ce soit dans mon Microsoft Access...ou
dans ma base de données...??






Non, sauf qu'il faut autoriser les macros, bien sûr !!!




Private Sub Détail_Format(Cancel As Integer, FormatCount As Intege
r)

If isnull(me.courriel) then
Me.lblmembrecourriel.visibleúlse
Else
Me.lblmembrecourriel.visible=true
End if






essaies de cette façon :

If IsNull(Me.Courriel) Or (Trim(Me.Courriel = "")) Then
lblMembreCourriel.Visible = False
Else
lblMembreCourriel.Visible = True
End If


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Gloops
Bonjour,

3stone a écrit, le 22/01/2011 14:33 :
If IsNull(Me.Courriel) Or

(Trim(Me.Courriel = "")) Then



ça passe, ça, si Courriel est nul ?
Ou on a une erreur "usage incorrect de la valeur nulle" ?

lblMembreCourriel.Visible = False
Else
lblMembreCourriel.Visible = True
End If