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

desactiver certains champs sur un meme enregistrement

8 réponses
Avatar
Valérie
Bonjour à tous,
J'ai un formulaire qui m'affiche 7 lignes d'enregistrements. Sur chaque
enregistrement j'ai 12 cases correspondants aux mois de l'annee (champs
nommés mois1, mois2 etc ...) et pour chacun de ces mois j'ai un champ "type
du mois 2", "type du mois 3" etc .... Quand j'ouvre mon formulaire je
voudrais desactiver et rendre verrouilles certains champs en fonction de
leur type, et ceci bien sur sur chaque ligne d'enregistrement.
1ere ligne : si type mois 2 =X, je verrouille sinon je peux modifier, si
type mois 3 =X je verrouille sinon je peux modifier etc
Idem 2eme ligne ....
Merci pour vos suggestions

8 réponses

Avatar
3stone
Salut,

"Valérie"
J'ai un formulaire qui m'affiche 7 lignes d'enregistrements. Sur chaque
enregistrement j'ai 12 cases correspondants aux mois de l'annee (champs
nommés mois1, mois2 etc ...) et pour chacun de ces mois j'ai un champ "type
du mois 2", "type du mois 3" etc .... Quand j'ouvre mon formulaire je
voudrais desactiver et rendre verrouilles certains champs en fonction de
leur type, et ceci bien sur sur chaque ligne d'enregistrement.
1ere ligne : si type mois 2 =X, je verrouille sinon je peux modifier, si
type mois 3 =X je verrouille sinon je peux modifier etc
Idem 2eme ligne ....




Dans un formulaire continu, tu ne pourra pas...

et, d'avoir les 12 mois sur une ligne est suspect
quant à l'organisation de tes données.


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

Avatar
Xavier HUE
Bonjour Valérie,

Faire ce que tu souhaites n'est pas possible.
Dans un formulaire en mode continu, les contrôles de
chaque ligne adoptent le même comportement.
Tu peux jouer éventuellment avec la mise en forme
conditionnelle.

Une solution de contournement:

Dans l'évènement GetFocus de chacun de tes contrôles, tu
effectues tes tests pour savoir si le contrôle doit être
accessible. Dans la négative, il te suffit d'envoyer un
message à l'utilisateur, puis de positionner le curseur
dans un controle normalement accessible
(Me.TonControleAutorise.SetFocus)

Cordialement.

-----Message d'origine-----
Bonjour à tous,
J'ai un formulaire qui m'affiche 7 lignes
d'enregistrements. Sur chaque

enregistrement j'ai 12 cases correspondants aux mois de
l'annee (champs

nommés mois1, mois2 etc ...) et pour chacun de ces mois
j'ai un champ "type

du mois 2", "type du mois 3" etc .... Quand j'ouvre mon
formulaire je

voudrais desactiver et rendre verrouilles certains champs
en fonction de

leur type, et ceci bien sur sur chaque ligne
d'enregistrement.

1ere ligne : si type mois 2 =X, je verrouille sinon je
peux modifier, si

type mois 3 =X je verrouille sinon je peux modifier etc
Idem 2eme ligne ....
Merci pour vos suggestions


.



Avatar
Raymond [mvp]
Bonjour.

il faut placer une procédure sur l'événement Form_Current pour pouvoir
l'exécuter à chaque changement d'enregistrement, sinon à l'ouverture
l'exécution ne se réalisera qu'une seule fois.
si tes champs portent le même nom avec un indice correspondant au mois tu
peux boucler:
Dim I As Integer
For I = 1 To 12
If Me("typemois" & I) = "certaine valeur" Then
Me("champ" & I).Locked = True
Else
Me("champ" & I).Locked = False
End If
Next I


--
@+
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


"Valérie" a écrit dans le message de
news:cfv53t$qmq$
Bonjour à tous,
J'ai un formulaire qui m'affiche 7 lignes d'enregistrements. Sur chaque
enregistrement j'ai 12 cases correspondants aux mois de l'annee (champs
nommés mois1, mois2 etc ...) et pour chacun de ces mois j'ai un champ
"type

du mois 2", "type du mois 3" etc .... Quand j'ouvre mon formulaire je
voudrais desactiver et rendre verrouilles certains champs en fonction de
leur type, et ceci bien sur sur chaque ligne d'enregistrement.
1ere ligne : si type mois 2 =X, je verrouille sinon je peux modifier, si
type mois 3 =X je verrouille sinon je peux modifier etc
Idem 2eme ligne ....
Merci pour vos suggestions




Avatar
Raymond [mvp]
Bonjour Xavier.

ce n'est pas parce que le comportement est le même que ça ne marche pas ?
les contrôles verrouillés ne se distinguent pas des autres ?

--
@+
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


"Xavier HUE" a écrit dans le message de
news:108d01c48518$76357260$
Bonjour Valérie,

Faire ce que tu souhaites n'est pas possible.
Dans un formulaire en mode continu, les contrôles de
chaque ligne adoptent le même comportement.
Tu peux jouer éventuellment avec la mise en forme
conditionnelle.

Une solution de contournement:

Dans l'évènement GetFocus de chacun de tes contrôles, tu
effectues tes tests pour savoir si le contrôle doit être
accessible. Dans la négative, il te suffit d'envoyer un
message à l'utilisateur, puis de positionner le curseur
dans un controle normalement accessible
(Me.TonControleAutorise.SetFocus)

Cordialement.
Avatar
Valérie
Merci pour ton conseil mais il me faut imperativement une presentation sous
forme tableau avec mes 7 categories et pour chacune l'affichage de mes 12
mois sachant que sur chaque categorie je dois pouvoir modifier les mois qui
correspondent à certains criteres (notamment type de mois = x ou y). As tu
une solution plus viable pour aboutir à la présentation souhaitée ?
Avatar
Valérie
Merci beaucoup !
Avatar
Xavier HUE
Bonjour Raymond,

Je me suis sans doute mal exprimé.
Ce que je voulais dire, c'est que si l'on désactive un
controle sur un enregistrement, dans un formulaire en mode
continu, ledit controle se trouve désactivé sur tous les
enregistrements affichés. Sur ça, on est d'accord?

D'où ma réponse à Valérie, et ma proposition
pour "contourner".

Mais, la solution que tu proposes est bien évidemment LA
solution à mettre en oeuvre.

Suis un brin à côté de mes pompes moé...
Vais retourner me couché moé ;-)

Cordialement.
Avatar
Raymond [mvp]
RE.

oui, oui, d'accord, ça prétait à confusion ( pour moi).

--
@+
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


"Xavier HUE" a écrit dans le message de
news:873201c48524$8b9967e0$
Bonjour Raymond,

Je me suis sans doute mal exprimé.
Ce que je voulais dire, c'est que si l'on désactive un
controle sur un enregistrement, dans un formulaire en mode
continu, ledit controle se trouve désactivé sur tous les
enregistrements affichés. Sur ça, on est d'accord?

D'où ma réponse à Valérie, et ma proposition
pour "contourner".

Mais, la solution que tu proposes est bien évidemment LA
solution à mettre en oeuvre.

Suis un brin à côté de mes pompes moé...
Vais retourner me couché moé ;-)

Cordialement.