J'ai un groupe d'option ind=E9pendant de 3 valeurs et en=20
fonction de la valeur choisie, elle affecte une valeur =E0=20
un champ du formulaire (ce dernier stockant la valeur=20
dans une table) :
Select Case Me.groupe_option.Value
Case 1
Me.activity_steps.Value =3D "Valeur1"
Case 2
Me.activity_steps.Value =3D "Valeur2"
Case 3
Me.activity_steps.Value =3D "Valeur3"
Case Else
Me.activity_steps.Value =3D Null
End Select
End If
Jusque l=E0 aucun probl=E8me. Dans ce formulaire, lorsque la=20
valeur 3 a =E9t=E9 d=E9finie, il n'est plus possible de choisir=20
une autre option (le groupe d'options ne doit plus =EAtre=20
modifiable).
J'ai donc mis le code suivant l'=E9v=E9nement BeforeUpdate du=20
cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As=20
Integer) =20
If Me.activity_steps =3D "Valeur3" Then
MsgBox "Modification impossible.", vbCritical
Me.groupe_option.Undo
Cancel =3D True
Exit Sub
End If
End Sub
Si la valeur 3 est d=E9finie dans le groupe d'options et=20
que je clique sur une autre option (par exemple la=20
deuxi=E8me), le message s'affiche et la valeur n'est pas=20
modifi=E9e dans le champ activity_steps, mais le groupe=20
d'option affiche quand m=EAme la deuxi=E8me option comme=20
activ=E9e. Je souhaiterais que le groupe d'options reste=20
sur la valeur avant la modification (sinon =E7a pourrait=20
pr=EAter =E0 confusier). Je pensais que le Cancel =3D True=20
revenait =E0 l'=E9tat initial du groupe d'options, mais de=20
toute =E9vidence pas tout le temps.
Est-ce que quelqu'un =E0 une id=E9e pour garder l'option=20
activ=E9e avant modification ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hubert Canevet
Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur ne peut pas modifier le groupe d'options. En revanche, si le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.
-----Message d'origine----- Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en fonction de la valeur choisie, elle affecte une valeur à un champ du formulaire (ce dernier stockant la valeur dans une table) :
Select Case Me.groupe_option.Value Case 1 Me.activity_steps.Value = "Valeur1" Case 2 Me.activity_steps.Value = "Valeur2" Case 3 Me.activity_steps.Value = "Valeur3" Case Else Me.activity_steps.Value = Null End Select End If
Jusque là aucun problème. Dans ce formulaire, lorsque la valeur 3 a été définie, il n'est plus possible de choisir une autre option (le groupe d'options ne doit plus être modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As Integer) If Me.activity_steps = "Valeur3" Then MsgBox "Modification impossible.", vbCritical Me.groupe_option.Undo Cancel = True Exit Sub End If End Sub
Si la valeur 3 est définie dans le groupe d'options et que je clique sur une autre option (par exemple la deuxième), le message s'affiche et la valeur n'est pas modifiée dans le champ activity_steps, mais le groupe d'option affiche quand même la deuxième option comme activée. Je souhaiterais que le groupe d'options reste sur la valeur avant la modification (sinon ça pourrait prêter à confusier). Je pensais que le Cancel = True revenait à l'état initial du groupe d'options, mais de toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option activée avant modification ?
Merci de votre aide Salutations à tous Julien
.
Bon, alors pour dire à quel point je suis frais, j'ai eu
le temps de taper tout un laïus pour dire que je n'avais
pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça
signifie "statut définitif", et on n'a plus le droit de
revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests,
mais voilà ce que je tenterais : à l'arrivée sur un
enregistrement (Form_Current, si je ne m'abuse),
Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce
qui a pour effet que si le champ activity_steps
vaut "Valeur3", il n'y a rien à programmer, l'utilisateur
ne peut pas modifier le groupe d'options. En revanche, si
le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus()
If Groupe_Option.Locked then
MsgBox "Cet enregistrement a déjà reçu une validation
définitive. Modification impossible."
Endif
End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien
entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe
d'options par la touche tabulation, et qu'il est
verrouillé, alors on aura le message. Si ce n'est que
cela, on peut mettre Groupe_Option.TabStop = Not
(Groupe_Option.Locked), juste après avoir modifié Locked
donc dans Form_Current. Pour faire cela il n'est pas
impossible qu'on doive d'abord sélectionner un autre
contrôle à l'aide de la méthode SetFocus.
-----Message d'origine-----
Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en
fonction de la valeur choisie, elle affecte une valeur à
un champ du formulaire (ce dernier stockant la valeur
dans une table) :
Select Case Me.groupe_option.Value
Case 1
Me.activity_steps.Value = "Valeur1"
Case 2
Me.activity_steps.Value = "Valeur2"
Case 3
Me.activity_steps.Value = "Valeur3"
Case Else
Me.activity_steps.Value = Null
End Select
End If
Jusque là aucun problème. Dans ce formulaire, lorsque la
valeur 3 a été définie, il n'est plus possible de choisir
une autre option (le groupe d'options ne doit plus être
modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du
cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As
Integer)
If Me.activity_steps = "Valeur3" Then
MsgBox "Modification impossible.", vbCritical
Me.groupe_option.Undo
Cancel = True
Exit Sub
End If
End Sub
Si la valeur 3 est définie dans le groupe d'options et
que je clique sur une autre option (par exemple la
deuxième), le message s'affiche et la valeur n'est pas
modifiée dans le champ activity_steps, mais le groupe
d'option affiche quand même la deuxième option comme
activée. Je souhaiterais que le groupe d'options reste
sur la valeur avant la modification (sinon ça pourrait
prêter à confusier). Je pensais que le Cancel = True
revenait à l'état initial du groupe d'options, mais de
toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option
activée avant modification ?
Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur ne peut pas modifier le groupe d'options. En revanche, si le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.
-----Message d'origine----- Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en fonction de la valeur choisie, elle affecte une valeur à un champ du formulaire (ce dernier stockant la valeur dans une table) :
Select Case Me.groupe_option.Value Case 1 Me.activity_steps.Value = "Valeur1" Case 2 Me.activity_steps.Value = "Valeur2" Case 3 Me.activity_steps.Value = "Valeur3" Case Else Me.activity_steps.Value = Null End Select End If
Jusque là aucun problème. Dans ce formulaire, lorsque la valeur 3 a été définie, il n'est plus possible de choisir une autre option (le groupe d'options ne doit plus être modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As Integer) If Me.activity_steps = "Valeur3" Then MsgBox "Modification impossible.", vbCritical Me.groupe_option.Undo Cancel = True Exit Sub End If End Sub
Si la valeur 3 est définie dans le groupe d'options et que je clique sur une autre option (par exemple la deuxième), le message s'affiche et la valeur n'est pas modifiée dans le champ activity_steps, mais le groupe d'option affiche quand même la deuxième option comme activée. Je souhaiterais que le groupe d'options reste sur la valeur avant la modification (sinon ça pourrait prêter à confusier). Je pensais que le Cancel = True revenait à l'état initial du groupe d'options, mais de toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option activée avant modification ?
Merci de votre aide Salutations à tous Julien
.
Hubert Canevet
Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur ne peut pas modifier le groupe d'options. En revanche, si le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.
-----Message d'origine----- Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en fonction de la valeur choisie, elle affecte une valeur à un champ du formulaire (ce dernier stockant la valeur dans une table) :
Select Case Me.groupe_option.Value Case 1 Me.activity_steps.Value = "Valeur1" Case 2 Me.activity_steps.Value = "Valeur2" Case 3 Me.activity_steps.Value = "Valeur3" Case Else Me.activity_steps.Value = Null End Select End If
Jusque là aucun problème. Dans ce formulaire, lorsque la valeur 3 a été définie, il n'est plus possible de choisir une autre option (le groupe d'options ne doit plus être modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As Integer) If Me.activity_steps = "Valeur3" Then MsgBox "Modification impossible.", vbCritical Me.groupe_option.Undo Cancel = True Exit Sub End If End Sub
Si la valeur 3 est définie dans le groupe d'options et que je clique sur une autre option (par exemple la deuxième), le message s'affiche et la valeur n'est pas modifiée dans le champ activity_steps, mais le groupe d'option affiche quand même la deuxième option comme activée. Je souhaiterais que le groupe d'options reste sur la valeur avant la modification (sinon ça pourrait prêter à confusier). Je pensais que le Cancel = True revenait à l'état initial du groupe d'options, mais de toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option activée avant modification ?
Merci de votre aide Salutations à tous Julien
.
Bon, alors pour dire à quel point je suis frais, j'ai eu
le temps de taper tout un laïus pour dire que je n'avais
pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça
signifie "statut définitif", et on n'a plus le droit de
revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests,
mais voilà ce que je tenterais : à l'arrivée sur un
enregistrement (Form_Current, si je ne m'abuse),
Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce
qui a pour effet que si le champ activity_steps
vaut "Valeur3", il n'y a rien à programmer, l'utilisateur
ne peut pas modifier le groupe d'options. En revanche, si
le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus()
If Groupe_Option.Locked then
MsgBox "Cet enregistrement a déjà reçu une validation
définitive. Modification impossible."
Endif
End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien
entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe
d'options par la touche tabulation, et qu'il est
verrouillé, alors on aura le message. Si ce n'est que
cela, on peut mettre Groupe_Option.TabStop = Not
(Groupe_Option.Locked), juste après avoir modifié Locked
donc dans Form_Current. Pour faire cela il n'est pas
impossible qu'on doive d'abord sélectionner un autre
contrôle à l'aide de la méthode SetFocus.
-----Message d'origine-----
Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en
fonction de la valeur choisie, elle affecte une valeur à
un champ du formulaire (ce dernier stockant la valeur
dans une table) :
Select Case Me.groupe_option.Value
Case 1
Me.activity_steps.Value = "Valeur1"
Case 2
Me.activity_steps.Value = "Valeur2"
Case 3
Me.activity_steps.Value = "Valeur3"
Case Else
Me.activity_steps.Value = Null
End Select
End If
Jusque là aucun problème. Dans ce formulaire, lorsque la
valeur 3 a été définie, il n'est plus possible de choisir
une autre option (le groupe d'options ne doit plus être
modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du
cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As
Integer)
If Me.activity_steps = "Valeur3" Then
MsgBox "Modification impossible.", vbCritical
Me.groupe_option.Undo
Cancel = True
Exit Sub
End If
End Sub
Si la valeur 3 est définie dans le groupe d'options et
que je clique sur une autre option (par exemple la
deuxième), le message s'affiche et la valeur n'est pas
modifiée dans le champ activity_steps, mais le groupe
d'option affiche quand même la deuxième option comme
activée. Je souhaiterais que le groupe d'options reste
sur la valeur avant la modification (sinon ça pourrait
prêter à confusier). Je pensais que le Cancel = True
revenait à l'état initial du groupe d'options, mais de
toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option
activée avant modification ?
Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur ne peut pas modifier le groupe d'options. En revanche, si le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.
-----Message d'origine----- Bonjour,
J'ai un groupe d'option indépendant de 3 valeurs et en fonction de la valeur choisie, elle affecte une valeur à un champ du formulaire (ce dernier stockant la valeur dans une table) :
Select Case Me.groupe_option.Value Case 1 Me.activity_steps.Value = "Valeur1" Case 2 Me.activity_steps.Value = "Valeur2" Case 3 Me.activity_steps.Value = "Valeur3" Case Else Me.activity_steps.Value = Null End Select End If
Jusque là aucun problème. Dans ce formulaire, lorsque la valeur 3 a été définie, il n'est plus possible de choisir une autre option (le groupe d'options ne doit plus être modifiable).
J'ai donc mis le code suivant l'événement BeforeUpdate du cadre groupe_option :
Private Sub groupe_option_BeforeUpdate(Cancel As Integer) If Me.activity_steps = "Valeur3" Then MsgBox "Modification impossible.", vbCritical Me.groupe_option.Undo Cancel = True Exit Sub End If End Sub
Si la valeur 3 est définie dans le groupe d'options et que je clique sur une autre option (par exemple la deuxième), le message s'affiche et la valeur n'est pas modifiée dans le champ activity_steps, mais le groupe d'option affiche quand même la deuxième option comme activée. Je souhaiterais que le groupe d'options reste sur la valeur avant la modification (sinon ça pourrait prêter à confusier). Je pensais que le Cancel = True revenait à l'état initial du groupe d'options, mais de toute évidence pas tout le temps.
Est-ce que quelqu'un à une idée pour garder l'option activée avant modification ?
Merci de votre aide Salutations à tous Julien
.
Julien
Merci Hubert de ta réponse,
Elle a résolu mon problème en partie, mais j'ai toujours un petit hic avec ce groupe d'options (j'ai oublié de te dire que je travaille avec Access 2000).
Lorsque l'utilisateur active l'option 3 du groupe d'options, j'ai mis un msgbox demandant de confirmer si oui ou non, il souhaite activer cette option (comme tu l'as justement dit c'est un statut définitif).
Et si il clique sur non, j'aimerais que le groupe d'options revienne à la valeur précédente (1 ou 2 ou Null). Et malheureusement, si l'utilisateur clique sur Non dans la msgbox, le groupe d'option ne revient pas à son état initial.
J'ai pourtant utilisé Cancel = True de l'événement BeforeUpdate, j'ai également utilisé l'option Me.groupe_option.Undo, mais rien n'y fait.
Je sèche... Si tu as une autre idée
En tout cas merci de ton aide et j'espère te relire
Julien
-----Message d'origine----- Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur
ne peut pas modifier le groupe d'options. En revanche, si
le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien
entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.
Merci Hubert de ta réponse,
Elle a résolu mon problème en partie, mais j'ai toujours
un petit hic avec ce groupe d'options (j'ai oublié de te
dire que je travaille avec Access 2000).
Lorsque l'utilisateur active l'option 3 du groupe
d'options, j'ai mis un msgbox demandant de confirmer si
oui ou non, il souhaite activer cette option (comme tu
l'as justement dit c'est un statut définitif).
Et si il clique sur non, j'aimerais que le groupe
d'options revienne à la valeur précédente (1 ou 2 ou
Null). Et malheureusement, si l'utilisateur clique sur
Non dans la msgbox, le groupe d'option ne revient pas à
son état initial.
J'ai pourtant utilisé Cancel = True de l'événement
BeforeUpdate, j'ai également utilisé l'option
Me.groupe_option.Undo, mais rien n'y fait.
Je sèche... Si tu as une autre idée
En tout cas merci de ton aide et j'espère te relire
Julien
-----Message d'origine-----
Bon, alors pour dire à quel point je suis frais, j'ai eu
le temps de taper tout un laïus pour dire que je n'avais
pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça
signifie "statut définitif", et on n'a plus le droit de
revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests,
mais voilà ce que je tenterais : à l'arrivée sur un
enregistrement (Form_Current, si je ne m'abuse),
Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce
qui a pour effet que si le champ activity_steps
vaut "Valeur3", il n'y a rien à programmer,
l'utilisateur
ne peut pas modifier le groupe d'options. En revanche,
si
le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas
compris.
Sub Groupe_Option_GotFocus()
If Groupe_Option.Locked then
MsgBox "Cet enregistrement a déjà reçu une validation
définitive. Modification impossible."
Endif
End Sub
Remplacer le mot enregistrement par ce qu'il désigne,
bien
entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe
d'options par la touche tabulation, et qu'il est
verrouillé, alors on aura le message. Si ce n'est que
cela, on peut mettre Groupe_Option.TabStop = Not
(Groupe_Option.Locked), juste après avoir modifié Locked
donc dans Form_Current. Pour faire cela il n'est pas
impossible qu'on doive d'abord sélectionner un autre
contrôle à l'aide de la méthode SetFocus.
Elle a résolu mon problème en partie, mais j'ai toujours un petit hic avec ce groupe d'options (j'ai oublié de te dire que je travaille avec Access 2000).
Lorsque l'utilisateur active l'option 3 du groupe d'options, j'ai mis un msgbox demandant de confirmer si oui ou non, il souhaite activer cette option (comme tu l'as justement dit c'est un statut définitif).
Et si il clique sur non, j'aimerais que le groupe d'options revienne à la valeur précédente (1 ou 2 ou Null). Et malheureusement, si l'utilisateur clique sur Non dans la msgbox, le groupe d'option ne revient pas à son état initial.
J'ai pourtant utilisé Cancel = True de l'événement BeforeUpdate, j'ai également utilisé l'option Me.groupe_option.Undo, mais rien n'y fait.
Je sèche... Si tu as une autre idée
En tout cas merci de ton aide et j'espère te relire
Julien
-----Message d'origine----- Bon, alors pour dire à quel point je suis frais, j'ai eu le temps de taper tout un laïus pour dire que je n'avais pas compris, avant de comprendre.
Donc, une fois qu'on a choisi l'option 3, ça signifie "statut définitif", et on n'a plus le droit de revenir en arrière.
J'avoue d'entrée que j'ai la flemme de faire des tests, mais voilà ce que je tenterais : à l'arrivée sur un enregistrement (Form_Current, si je ne m'abuse), Groupe_Option.Locked = (activity_steps = "Valeur3"). Ce qui a pour effet que si le champ activity_steps vaut "Valeur3", il n'y a rien à programmer, l'utilisateur
ne peut pas modifier le groupe d'options. En revanche, si
le champ contient autre chose, on peut.
Il reste à informer l'utilisateur qui n'aurait pas compris.
Sub Groupe_Option_GotFocus() If Groupe_Option.Locked then MsgBox "Cet enregistrement a déjà reçu une validation définitive. Modification impossible." Endif End Sub
Remplacer le mot enregistrement par ce qu'il désigne, bien
entendu. Un dossier, un colis, un étudiant ...
On peut trouver à critiquer : si on arrive sur le groupe d'options par la touche tabulation, et qu'il est verrouillé, alors on aura le message. Si ce n'est que cela, on peut mettre Groupe_Option.TabStop = Not (Groupe_Option.Locked), juste après avoir modifié Locked donc dans Form_Current. Pour faire cela il n'est pas impossible qu'on doive d'abord sélectionner un autre contrôle à l'aide de la méthode SetFocus.