OVH Cloud OVH Cloud

désactiver contrôles par procédure

16 réponses
Avatar
Alain V
Bonjour à tous,

Sous Access 2000, je voudrais désactiver les contrôles d'un formulaire par
une procédure du genre :

For Each Ctrl In Me.Controls
Ctrl.Enabled = False
Next Ctrl

Mais je ne trouve pas la syntaxe (Si cela est possible évidemment)

merci pour votre aide

Alain

10 réponses

1 2
Avatar
3stone
Salut,

"Alain V"
| Sous Access 2000, je voudrais désactiver les contrôles d'un formulaire par
| une procédure du genre :
|
| For Each Ctrl In Me.Controls
| Ctrl.Enabled = False
| Next Ctrl
|
| Mais je ne trouve pas la syntaxe (Si cela est possible évidemment)


Tu as essayé ce que tu as écrit ?

il suffit d'ajouter la déclaration: Dim Ctrl As Control
et de ne pas tenter de désactiver le control qui à le focus.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Eric
Bonjour Alain

En complément de la réponse de Pierre, je rajouterai un
On Error Resume Next
car certains contrôles comme les Etiquettes n'ont pas la propriété Enabled

A+
Eric

Bonjour à tous,

Sous Access 2000, je voudrais désactiver les contrôles d'un formulaire par
une procédure du genre :

For Each Ctrl In Me.Controls
Ctrl.Enabled = False
Next Ctrl

Mais je ne trouve pas la syntaxe (Si cela est possible évidemment)

merci pour votre aide

Alain




Avatar
Alain V
Merci à Pierre et Eric

Il me manquait juste le "on error resume next"
Donc cela fonctionne à peu près comme je le souhaite.
En fait, comme il y a beaucoup de contrôles dans mon formulaire, je voulais
les désactiver tous, puis réactiver les 2 ou 3 qui me sont utiles dans ce
cas.
Le problème c'est que le seul que j'arrive à réactiver c'est un contrôle du
type CommandButton et pas tous les contrôles que je voulais.
Avez vous une idée?

A+

Alain

"Eric" a écrit dans le message de news:

Bonjour Alain

En complément de la réponse de Pierre, je rajouterai un
On Error Resume Next
car certains contrôles comme les Etiquettes n'ont pas la propriété Enabled

A+
Eric

Bonjour à tous,

Sous Access 2000, je voudrais désactiver les contrôles d'un formulaire
par une procédure du genre :

For Each Ctrl In Me.Controls
Ctrl.Enabled = False
Next Ctrl

Mais je ne trouve pas la syntaxe (Si cela est possible évidemment)

merci pour votre aide

Alain





Avatar
Alain V
Re,

Suite à mon précédent message, les contrôles que je peux réactiver se
trouvent en entète et en pied de formulaire.

Merci

Alain


"Alain V" a écrit dans le message de news:

Merci à Pierre et Eric

Il me manquait juste le "on error resume next"
Donc cela fonctionne à peu près comme je le souhaite.
En fait, comme il y a beaucoup de contrôles dans mon formulaire, je
voulais les désactiver tous, puis réactiver les 2 ou 3 qui me sont utiles
dans ce cas.
Le problème c'est que le seul que j'arrive à réactiver c'est un contrôle
du type CommandButton et pas tous les contrôles que je voulais.
Avez vous une idée?

A+

Alain

"Eric" a écrit dans le message de news:

Bonjour Alain

En complément de la réponse de Pierre, je rajouterai un
On Error Resume Next
car certains contrôles comme les Etiquettes n'ont pas la propriété
Enabled

A+
Eric

Bonjour à tous,

Sous Access 2000, je voudrais désactiver les contrôles d'un formulaire
par une procédure du genre :

For Each Ctrl In Me.Controls
Ctrl.Enabled = False
Next Ctrl

Mais je ne trouve pas la syntaxe (Si cela est possible évidemment)

merci pour votre aide

Alain








Avatar
3stone
Salut,

"Alain V"
|
| Suite à mon précédent message, les contrôles que je peux réactiver se
| trouvent en entète et en pied de formulaire.



Pour une partie des contrôles, il y a ceci (très élégant ;)

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#Tag


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Alain V
Bonjour,

Je reviens enfin...
Merci Pierre pour ton info. J'ai trouvé des idées à creuser.
Je vais utiliser la propriété "Tag" pour mon application.
Mais n'as tu pas de réponse à mon problème de contrôles que je ne peux pas
réactiver?

Merci et A+

Alain

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

"Alain V"
|
| Suite à mon précédent message, les contrôles que je peux réactiver se
| trouvent en entète et en pied de formulaire.



Pour une partie des contrôles, il y a ceci (très élégant ;)

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#Tag


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
3stone
Salut,

"Alain V"
| Mais n'as tu pas de réponse à mon problème de contrôles que je ne peux pas
| réactiver?


Pourquoi pas ? Quel est le problème ?

Ils font parties de la collection "Controls" comme les autres...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Alain V
OK, voilà mon Pb

Private Sub Form_Current()

For Each Ctrl In Me.Controls
On Error Resume Next
Ctrl.Enabled = False
Next Ctrl
On Error GoTo 0
CdeEntCode.Enabled = True
Fermer.Enabled = True
Recherche.Enabled = True
...

"Recherche" se trouve dans l'entète du formulaire
"Fermer" se trouve dans le pied du formulaire
"CdeEntCode" se trouve dans la section détail

Recherche et Fermer se réactivent normalement, CdeEntCode ne se réactive
pas.
J'ai aussi essayé de réactiver les onglets présents dans le formulaire, mais
cela ne fonctionne pas...
Je dois oublier de réactiver quelque chose et je ne vois vraiment pas quoi.
Si tu as une idée.

Merci

Alain

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

"Alain V"
| Mais n'as tu pas de réponse à mon problème de contrôles que je ne peux pas
| réactiver?


Pourquoi pas ? Quel est le problème ?

Ils font parties de la collection "Controls" comme les autres...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Eric
Bonjour Alain

Même disposition que toi et je n'ai aucun problème. Par contre le On
Eror Resume Next, il faut le mettre avant la boucle, juste au dessous de
Private Sub Form_Current et au dessus de Dim c as Control

Le On Error Goto 0 ne sert à rien

A mon avis, le CdeEntCode ne doit pas être le bon nom du contôle ou
alors il s'agit d'un contrôle qui ne possède pas la Propriété Enabled.

Voila mon code:
Private Sub Form_Current()
On Error Resume Next
Dim c As Control
For Each c In Me.Controls
c.Enabled = False
Next c
CdeEntCode.Enabled = True
Recherche.Enabled = True
Fermer.Enabled = True
End Sub

où Recherche est un bouton de commande en entête
Fermer en pied de formulaire (bouton de commande)
et CdeEntCode une zone de texte dans le détail.

A+
Eric


OK, voilà mon Pb

Private Sub Form_Current()

For Each Ctrl In Me.Controls
On Error Resume Next
Ctrl.Enabled = False
Next Ctrl
On Error GoTo 0
CdeEntCode.Enabled = True
Fermer.Enabled = True
Recherche.Enabled = True
...

"Recherche" se trouve dans l'entète du formulaire
"Fermer" se trouve dans le pied du formulaire
"CdeEntCode" se trouve dans la section détail

Recherche et Fermer se réactivent normalement, CdeEntCode ne se réactive
pas.
J'ai aussi essayé de réactiver les onglets présents dans le formulaire, mais
cela ne fonctionne pas...
Je dois oublier de réactiver quelque chose et je ne vois vraiment pas quoi.
Si tu as une idée.

Merci

Alain

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

"Alain V"
| Mais n'as tu pas de réponse à mon problème de contrôles que je ne peux pas
| réactiver?


Pourquoi pas ? Quel est le problème ?

Ils font parties de la collection "Controls" comme les autres...




Avatar
Eric
.../...
grrr...
je n'avais pas vu les lignes relatives aux onglets.
Ne tiens pas compte de ma réponse.

Eric

Bonjour Alain

Même disposition que toi et je n'ai aucun problème. Par contre le On
Eror Resume Next, il faut le mettre avant la boucle, juste au dessous de
Private Sub Form_Current et au dessus de Dim c as Control

Le On Error Goto 0 ne sert à rien

A mon avis, le CdeEntCode ne doit pas être le bon nom du contôle ou
alors il s'agit d'un contrôle qui ne possède pas la Propriété Enabled.

Voila mon code:
Private Sub Form_Current()
On Error Resume Next
Dim c As Control
For Each c In Me.Controls
c.Enabled = False
Next c
CdeEntCode.Enabled = True
Recherche.Enabled = True
Fermer.Enabled = True
End Sub

où Recherche est un bouton de commande en entête
Fermer en pied de formulaire (bouton de commande)
et CdeEntCode une zone de texte dans le détail.

A+
Eric



OK, voilà mon Pb

Private Sub Form_Current()

For Each Ctrl In Me.Controls
On Error Resume Next
Ctrl.Enabled = False
Next Ctrl
On Error GoTo 0
CdeEntCode.Enabled = True
Fermer.Enabled = True
Recherche.Enabled = True
...

"Recherche" se trouve dans l'entète du formulaire
"Fermer" se trouve dans le pied du formulaire
"CdeEntCode" se trouve dans la section détail

Recherche et Fermer se réactivent normalement, CdeEntCode ne se
réactive pas.
J'ai aussi essayé de réactiver les onglets présents dans le
formulaire, mais cela ne fonctionne pas...
Je dois oublier de réactiver quelque chose et je ne vois vraiment pas
quoi.
Si tu as une idée.

Merci

Alain

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

"Alain V"
| Mais n'as tu pas de réponse à mon problème de contrôles que je ne
peux pas
| réactiver?


Pourquoi pas ? Quel est le problème ?

Ils font parties de la collection "Controls" comme les autres...






1 2