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

comment activer/désactiver controles dans un form

7 réponses
Avatar
david
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en fonction d'une
condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails doivent
être disabled
si la case est décoché : tous les controles de la section détails doivent
être enabled

Dans mon formulaire j'ai des champs texte et un champ liste déroulante.

L'idéal serait d'avoir cette activation/désactivation lorsque l'on clique au
choix soit sur n'importe quel controle de la section détail, soit sur le
sélecteur d'enregistrement.

Merci D'avance.

7 réponses

Avatar
Rv
Bonjour,

Voici un bout de code à placer sur l'événement click d'une case à cocher
nommée "cochActive":

Private Sub cochActive_Click()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or objControl.ControlType acListBox Or objControl.ControlType = acComboBox Or objControl.ControlType acCheckBox Then
objControl.Enabled = Me.cochActive
End If
Next
End Sub

A+

Rv


"david" a écrit dans le message de
news:
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en fonction
d'une

condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails doivent
être disabled
si la case est décoché : tous les controles de la section détails doivent
être enabled

Dans mon formulaire j'ai des champs texte et un champ liste déroulante.

L'idéal serait d'avoir cette activation/désactivation lorsque l'on clique
au

choix soit sur n'importe quel controle de la section détail, soit sur le
sélecteur d'enregistrement.

Merci D'avance.



Avatar
david
en fait, quand on accède au form la case à cocher est déjà à jour ;
l'utilisateur ne peut pas y toucher.
c'est en fonction de sa valeur que les controles doivent être activés ou non
quand on clique sur la ligne de l'enregistrement. Il faut que
l'activation/désactivation fonctionne lorsque l'utilisateur clique sur
n'importe quel controle de ligne représentant l'occurence active OU sur le
sélecteur d'enregistrement.



Bonjour,

Voici un bout de code à placer sur l'événement click d'une case à cocher
nommée "cochActive":

Private Sub cochActive_Click()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or objControl.ControlType > acListBox Or objControl.ControlType = acComboBox Or objControl.ControlType > acCheckBox Then
objControl.Enabled = Me.cochActive
End If
Next
End Sub

A+

Rv


"david" a écrit dans le message de
news:
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en fonction
d'une

condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails doivent
être disabled
si la case est décoché : tous les controles de la section détails doivent
être enabled

Dans mon formulaire j'ai des champs texte et un champ liste déroulante.

L'idéal serait d'avoir cette activation/désactivation lorsque l'on clique
au

choix soit sur n'importe quel controle de la section détail, soit sur le
sélecteur d'enregistrement.

Merci D'avance.








Avatar
Rv
La case à cocher est elle commune à tous les enregistrements de la section
détail ou bien sa valeur est fonction de l'enregistrement sur lequel on se
trouve?
Si la valeur est commune à tous les enregistrements pourquoi ne pas
appliquer l'activation/désactivation à l'ouverture du formulaire ou lors
d'une autre action plutôt que lors du clic dans un élément de la section
détail?

A+

Rv

"david" a écrit dans le message de
news:
en fait, quand on accède au form la case à cocher est déjà à jour ;
l'utilisateur ne peut pas y toucher.
c'est en fonction de sa valeur que les controles doivent être activés ou
non

quand on clique sur la ligne de l'enregistrement. Il faut que
l'activation/désactivation fonctionne lorsque l'utilisateur clique sur
n'importe quel controle de ligne représentant l'occurence active OU sur le
sélecteur d'enregistrement.



Bonjour,

Voici un bout de code à placer sur l'événement click d'une case à
cocher


nommée "cochActive":

Private Sub cochActive_Click()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or objControl.ControlType
acListBox Or objControl.ControlType = acComboBox Or
objControl.ControlType > > acCheckBox Then


objControl.Enabled = Me.cochActive
End If
Next
End Sub

A+

Rv


"david" a écrit dans le message de
news:
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en fonction
d'une

condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails
doivent



être disabled
si la case est décoché : tous les controles de la section détails
doivent



être enabled

Dans mon formulaire j'ai des champs texte et un champ liste
déroulante.




L'idéal serait d'avoir cette activation/désactivation lorsque l'on
clique



au
choix soit sur n'importe quel controle de la section détail, soit sur
le



sélecteur d'enregistrement.

Merci D'avance.










Avatar
david
justement c'est la difficulté : la case à cocher est fonction de
l'enregistrement
Donc.....


La case à cocher est elle commune à tous les enregistrements de la section
détail ou bien sa valeur est fonction de l'enregistrement sur lequel on se
trouve?
Si la valeur est commune à tous les enregistrements pourquoi ne pas
appliquer l'activation/désactivation à l'ouverture du formulaire ou lors
d'une autre action plutôt que lors du clic dans un élément de la section
détail?

A+

Rv

"david" a écrit dans le message de
news:
en fait, quand on accède au form la case à cocher est déjà à jour ;
l'utilisateur ne peut pas y toucher.
c'est en fonction de sa valeur que les controles doivent être activés ou
non

quand on clique sur la ligne de l'enregistrement. Il faut que
l'activation/désactivation fonctionne lorsque l'utilisateur clique sur
n'importe quel controle de ligne représentant l'occurence active OU sur le
sélecteur d'enregistrement.



Bonjour,

Voici un bout de code à placer sur l'événement click d'une case à
cocher


nommée "cochActive":

Private Sub cochActive_Click()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or objControl.ControlType
acListBox Or objControl.ControlType = acComboBox Or
objControl.ControlType > > > acCheckBox Then



objControl.Enabled = Me.cochActive
End If
Next
End Sub

A+

Rv


"david" a écrit dans le message de
news:
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en fonction
d'une

condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails
doivent



être disabled
si la case est décoché : tous les controles de la section détails
doivent



être enabled

Dans mon formulaire j'ai des champs texte et un champ liste
déroulante.




L'idéal serait d'avoir cette activation/désactivation lorsque l'on
clique



au
choix soit sur n'importe quel controle de la section détail, soit sur
le



sélecteur d'enregistrement.

Merci D'avance.















Avatar
Rv
En supposant que la case à cocher s'appelle "Act" et est contenue dans la
zone détail du formulaire alors en utilisant l'événement sur activation on
peut écrire
Private Sub Form_Current()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or objControl.ControlType acListBox Or objControl.ControlType = acComboBox Or objControl.ControlType acCheckBox Then
objControl.Enabled = Me.act
End If
Next
End Sub

Ce n'est pas trés beau car l'activation/désactivation affecte tous les
enregistrements et non pas seulement celui sur lequel on se trouve. Et là,
si on utilise le mode continu pour l'affichage du formulaire, je pense que
l'on ne peut faire mieux. En mode formulaire unique c'est mieux!

A+

Rv

"david" a écrit dans le message de
news:
justement c'est la difficulté : la case à cocher est fonction de
l'enregistrement
Donc.....


La case à cocher est elle commune à tous les enregistrements de la
section


détail ou bien sa valeur est fonction de l'enregistrement sur lequel on
se


trouve?
Si la valeur est commune à tous les enregistrements pourquoi ne pas
appliquer l'activation/désactivation à l'ouverture du formulaire ou lors
d'une autre action plutôt que lors du clic dans un élément de la section
détail?

A+

Rv

"david" a écrit dans le message de
news:
en fait, quand on accède au form la case à cocher est déjà à jour ;
l'utilisateur ne peut pas y toucher.
c'est en fonction de sa valeur que les controles doivent être activés
ou



non
quand on clique sur la ligne de l'enregistrement. Il faut que
l'activation/désactivation fonctionne lorsque l'utilisateur clique sur
n'importe quel controle de ligne représentant l'occurence active OU
sur le



sélecteur d'enregistrement.



Bonjour,

Voici un bout de code à placer sur l'événement click d'une case
à




cocher
nommée "cochActive":

Private Sub cochActive_Click()
Dim objControl As Control

For Each objControl In Me.Section("Détail").Controls
If objControl.ControlType = acTextBox Or
objControl.ControlType




acListBox Or objControl.ControlType = acComboBox Or
objControl.ControlType > > > > acCheckBox Then




objControl.Enabled = Me.cochActive
End If
Next
End Sub

A+

Rv


"david" a écrit dans le message de
news:
salut à tous,
voici mon prob :

je souhaiterai activer/désactiver les controles d'un form en
fonction





d'une
condition dans ce meme form (une case à cocher en fait).

Si la case est cochée : tous les controles de la section détails
doivent



être disabled
si la case est décoché : tous les controles de la section détails
doivent



être enabled

Dans mon formulaire j'ai des champs texte et un champ liste
déroulante.




L'idéal serait d'avoir cette activation/désactivation lorsque l'on
clique



au
choix soit sur n'importe quel controle de la section détail, soit
sur





le
sélecteur d'enregistrement.

Merci D'avance.


















Avatar
3stone
Salut,

"Rv"
| En supposant que la case à cocher s'appelle "Act" et est contenue dans la
| zone détail du formulaire alors en utilisant l'événement sur activation on
| peut écrire
| Private Sub Form_Current()
| Dim objControl As Control
|
| For Each objControl In Me.Section("Détail").Controls
| If objControl.ControlType = acTextBox Or objControl.ControlType | acListBox Or objControl.ControlType = acComboBox Or objControl.ControlType | acCheckBox Then
| objControl.Enabled = Me.act
| End If
| Next
| End Sub
|
| Ce n'est pas trés beau car l'activation/désactivation affecte tous les
| enregistrements et non pas seulement celui sur lequel on se trouve. Et là,
| si on utilise le mode continu pour l'affichage du formulaire, je pense que
| l'on ne peut faire mieux. En mode formulaire unique c'est mieux!


En mode continu, il pourrait utiliser le mise en forme conditionnelle...

Pour chaque zone de texte ou liste, la sélectionner et ensuite,
dans le menu Format, Mise en forme conditionnelle...

Avec l'exemple ci-dessus:


Condition 1 : Expression
dans la zone à coté : Cat
dans le choix du format : désactiver le dernier bouton



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Rv
Bonjour,

Et oui, et merci d'éclairer le fil. Au moment ou j'écrivais "je pense
que l'on ne peut faire mieux", je me disais bien que je m'avançais un peu
vite. J'oublie trop facilement la mise en forme conditionnelle. Enfin cela
aura eu le mérite de faire avancer le pb!

A+

Rv


"3stone" a écrit dans le message de
news:
Salut,

"Rv"
| En supposant que la case à cocher s'appelle "Act" et est contenue dans
la

| zone détail du formulaire alors en utilisant l'événement sur activation
on

| peut écrire
| Private Sub Form_Current()
| Dim objControl As Control
|
| For Each objControl In Me.Section("Détail").Controls
| If objControl.ControlType = acTextBox Or objControl.ControlType > | acListBox Or objControl.ControlType = acComboBox Or
objControl.ControlType > | acCheckBox Then

| objControl.Enabled = Me.act
| End If
| Next
| End Sub
|
| Ce n'est pas trés beau car l'activation/désactivation affecte tous les
| enregistrements et non pas seulement celui sur lequel on se trouve. Et
là,

| si on utilise le mode continu pour l'affichage du formulaire, je pense
que

| l'on ne peut faire mieux. En mode formulaire unique c'est mieux!


En mode continu, il pourrait utiliser le mise en forme conditionnelle...

Pour chaque zone de texte ou liste, la sélectionner et ensuite,
dans le menu Format, Mise en forme conditionnelle...

Avec l'exemple ci-dessus:


Condition 1 : Expression
dans la zone à coté : Cat
dans le choix du format : désactiver le dernier bouton



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/