OVH Cloud OVH Cloud

grouper les controles

4 réponses
Avatar
Arlequin
Bonsoir,

Je suis allé sur les archives et, sauf si j'ai mal vu, je n'ai pas trouve.

Un etat avec des champs.
Je voudrais grouper tous les champs pour éviter de faire avec chaque
controle:

if (me.champ1=0) then
Me.champ1.visible=false
else
Me.champ1.visible=true
End if

J'ai une dizaine de champs a qui je veux faire cette operation et ca
m'ennuie de le faire un par un

Peut-on grouper tous les controles en un?

Merci par avance

4 réponses

Avatar
Raymond [mvp]
Bonjour.

on ne peut pas grouper mais on peut boucler.

Dim Ix As Integer
For Ix = 1 To 10
If Me("champ" & Ix) = 0 Then
Me("champ" & Ix).Visible = False
Else
Me("champ" & Ix).Visible = True
End If
Next

et ce qui est plus élégant:
Dim Ix As Integer
For Ix = 1 To 10
Me("champ" & Ix).Visible = Me("champ" & Ix)
Next


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arlequin" a écrit dans le message de
news:40d9a784$0$19040$
Bonsoir,

Je suis allé sur les archives et, sauf si j'ai mal vu, je n'ai pas trouve.

Un etat avec des champs.
Je voudrais grouper tous les champs pour éviter de faire avec chaque
controle:

if (me.champ1=0) then
Me.champ1.visibleúlse
else
Me.champ1.visible=true
End if

J'ai une dizaine de champs a qui je veux faire cette operation et ca
m'ennuie de le faire un par un

Peut-on grouper tous les controles en un?

Merci par avance







Avatar
Arlequin
Merci tout d'abord de la réponse rapide.
Si j'ai bien compris, je dois compter les controles avant.?
Maintenant ce que je ne comprends pas très bien c'est "champ". Chaque
contrôle de l'etat a un nom different
Enfin ca se présente comme ca:
if (me.eau=0) then
Me.eau.visibleúlse
Else
Me.eau.visible=true

if (me.vin=0) then
Me.vin.visibleúlse
else
Me.vin.visible=true

et j'en ai une dizaine de champs comme ca dans l'etat. Ce que je voudrais
c'est que en le faisant une fois, ca s'applique sur tous les champs (eau,
vin,beurre etc...)

Merci car j'avoue ne pas tres bien comprendre

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

on ne peut pas grouper mais on peut boucler.

Dim Ix As Integer
For Ix = 1 To 10
If Me("champ" & Ix) = 0 Then
Me("champ" & Ix).Visible = False
Else
Me("champ" & Ix).Visible = True
End If
Next

et ce qui est plus élégant:
Dim Ix As Integer
For Ix = 1 To 10
Me("champ" & Ix).Visible = Me("champ" & Ix)
Next


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arlequin" a écrit dans le message de
news:40d9a784$0$19040$
Bonsoir,

Je suis allé sur les archives et, sauf si j'ai mal vu, je n'ai pas
trouve.



Un etat avec des champs.
Je voudrais grouper tous les champs pour éviter de faire avec chaque
controle:

if (me.champ1=0) then
Me.champ1.visibleúlse
else
Me.champ1.visible=true
End if

J'ai une dizaine de champs a qui je veux faire cette operation et ca
m'ennuie de le faire un par un

Peut-on grouper tous les controles en un?

Merci par avance











Avatar
Raymond [mvp]
S'il ne portent pas les mêmes noms ce n'est pas la peine, tu le fais
directement ligne à ligne.
Me!Eau.Visible = Me!Eau
Me!Vin.Visible = Me!Vin
Me!Cognac.Visible = Me!Cognac
Me!Armagnac.Visible = True
et tu places toutes ces lignes dans la section détail , au formatage.
vu que ça prend 1 ligne par champ, ça ne peut pas être plus court.
si le champ a la valeur 0 (correspondance de false) le champ sera mis à
False, si le champ contient une autre valeur, visible sera mis à True.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arlequin" a écrit dans le message de
news:40d9abaf$0$19040$
Merci tout d'abord de la réponse rapide.
Si j'ai bien compris, je dois compter les controles avant.?
Maintenant ce que je ne comprends pas très bien c'est "champ". Chaque
contrôle de l'etat a un nom different
Enfin ca se présente comme ca:
if (me.eau=0) then
Me.eau.visibleúlse
Else
Me.eau.visible=true

if (me.vin=0) then
Me.vin.visibleúlse
else
Me.vin.visible=true

et j'en ai une dizaine de champs comme ca dans l'etat. Ce que je voudrais
c'est que en le faisant une fois, ca s'applique sur tous les champs (eau,
vin,beurre etc...)

Merci car j'avoue ne pas tres bien comprendre


Avatar
Arlequin
Merci, donc je dois bien mettre tous les champs sans la condition if..
Merci encore


"Raymond [mvp]" a écrit dans le message de
news:
S'il ne portent pas les mêmes noms ce n'est pas la peine, tu le fais
directement ligne à ligne.
Me!Eau.Visible = Me!Eau
Me!Vin.Visible = Me!Vin
Me!Cognac.Visible = Me!Cognac
Me!Armagnac.Visible = True
et tu places toutes ces lignes dans la section détail , au formatage.
vu que ça prend 1 ligne par champ, ça ne peut pas être plus court.
si le champ a la valeur 0 (correspondance de false) le champ sera mis à
False, si le champ contient une autre valeur, visible sera mis à True.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arlequin" a écrit dans le message de
news:40d9abaf$0$19040$
Merci tout d'abord de la réponse rapide.
Si j'ai bien compris, je dois compter les controles avant.?
Maintenant ce que je ne comprends pas très bien c'est "champ". Chaque
contrôle de l'etat a un nom different
Enfin ca se présente comme ca:
if (me.eau=0) then
Me.eau.visibleúlse
Else
Me.eau.visible=true

if (me.vin=0) then
Me.vin.visibleúlse
else
Me.vin.visible=true

et j'en ai une dizaine de champs comme ca dans l'etat. Ce que je
voudrais


c'est que en le faisant une fois, ca s'applique sur tous les champs
(eau,


vin,beurre etc...)

Merci car j'avoue ne pas tres bien comprendre