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

Champs bloqués

6 réponses
Avatar
Vincent BD
Bonjour,
Dans un sous-formulaire (Access 2003) en affichage mode continu, je souhaite
bloquer certains champs lorsqu'une condition est réunie. Alors que cela
fonctionne très bien dans un autre formulaire (pas sous-formulaire) lui aussi
en mode continu.
J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée par cet
objet".
Où est l'erreur ?

Private Sub Form_Current()
If (Not IsNull([CodeCR])) Then
If [CodeCR] = "775" Or [CodeCR] = "776" Then
Me!AnMois.Locked = True
Me!Code.Locked = True
Me!Rem.Locked = True
Me!Montant.Locked = True
Else
Me!AnMois.Locked = False
Me!Code.Locked = False
Me!Rem.Locked = False
Me!Montant.Locked = False
End If
End If
End Sub

6 réponses

Avatar
michel chambrillon
Bonjour
Si tes champs sont dans le sous formulaire remplace
Me!AnMois.Locked = True
par
Me![nom du sous form.form!AnMois.Locked = True
etc
@plus
Michel

"Vincent BD" a écrit dans le message
de news:
Bonjour,
Dans un sous-formulaire (Access 2003) en affichage mode continu, je
souhaite
bloquer certains champs lorsqu'une condition est réunie. Alors que cela
fonctionne très bien dans un autre formulaire (pas sous-formulaire) lui
aussi
en mode continu.
J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée par
cet
objet".
Où est l'erreur ?

Private Sub Form_Current()
If (Not IsNull([CodeCR])) Then
If [CodeCR] = "775" Or [CodeCR] = "776" Then
Me!AnMois.Locked = True
Me!Code.Locked = True
Me!Rem.Locked = True
Me!Montant.Locked = True
Else
Me!AnMois.Locked = False
Me!Code.Locked = False
Me!Rem.Locked = False
Me!Montant.Locked = False
End If
End If
End Sub


Avatar
Vincent BD
Désolé Michel, j'ai un message d'erreur "Impossible de trouver le champ
[Frais02]"
Quid ?

"michel chambrillon" a écrit :

Bonjour
Si tes champs sont dans le sous formulaire remplace
Me!AnMois.Locked = True
par
Me![nom du sous form.form!AnMois.Locked = True
etc
@plus
Michel

"Vincent BD" a écrit dans le message
de news:
> Bonjour,
> Dans un sous-formulaire (Access 2003) en affichage mode continu, je
> souhaite
> bloquer certains champs lorsqu'une condition est réunie. Alors que cela
> fonctionne très bien dans un autre formulaire (pas sous-formulaire) lui
> aussi
> en mode continu.
> J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée par
> cet
> objet".
> Où est l'erreur ?
>
> Private Sub Form_Current()
> If (Not IsNull([CodeCR])) Then
> If [CodeCR] = "775" Or [CodeCR] = "776" Then
> Me!AnMois.Locked = True
> Me!Code.Locked = True
> Me!Rem.Locked = True
> Me!Montant.Locked = True
> Else
> Me!AnMois.Locked = False
> Me!Code.Locked = False
> Me!Rem.Locked = False
> Me!Montant.Locked = False
> End If
> End If
> End Sub



Avatar
michel chambrillon
Desolé aussi car il manque un crochet fermant dans ma syntaxe
remplace par
Me![nom du sous form].form!AnMois.Locked = True
Mais je ne vois null part dans code de champ frais02
Precise la position de chacun des champ codecr anMois code Rem est ce sous
form ou form
@plus
Michel


"Vincent BD" a écrit dans le message
de news:
Désolé Michel, j'ai un message d'erreur "Impossible de trouver le champ
[Frais02]"
Quid ?

"michel chambrillon" a écrit :

Bonjour
Si tes champs sont dans le sous formulaire remplace
Me!AnMois.Locked = True
par
Me![nom du sous form.form!AnMois.Locked = True
etc
@plus
Michel

"Vincent BD" a écrit dans le
message
de news:
> Bonjour,
> Dans un sous-formulaire (Access 2003) en affichage mode continu, je
> souhaite
> bloquer certains champs lorsqu'une condition est réunie. Alors que cela
> fonctionne très bien dans un autre formulaire (pas sous-formulaire) lui
> aussi
> en mode continu.
> J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée
> par
> cet
> objet".
> Où est l'erreur ?
>
> Private Sub Form_Current()
> If (Not IsNull([CodeCR])) Then
> If [CodeCR] = "775" Or [CodeCR] = "776" Then
> Me!AnMois.Locked = True
> Me!Code.Locked = True
> Me!Rem.Locked = True
> Me!Montant.Locked = True
> Else
> Me!AnMois.Locked = False
> Me!Code.Locked = False
> Me!Rem.Locked = False
> Me!Montant.Locked = False
> End If
> End If
> End Sub





Avatar
Vincent BD
Ok
Le formulaire principal est "Frais01", le sous-formulaire "Frais02".

Cela donne ceci :
Private Sub Form_Current()
If (Eval("[Forms]![Frais01]![Frais02].[Form]![CodeCR] Is Not Null")) Then
If (Forms!Frais01!Frais02.Form!CodeCR = "776" Or
Forms!Frais01!Frais02.Form!CodeCR = "775") Then
Me![Frais02].Form!AnMois.Locked = True
Me![Frais02].Form!Code.Locked = True
Me![Frais02].Form!Rem.Locked = True
Me![Frais02].Form!Montant.Locked = True
Else
Me![Frais02].Form!AnMois.Locked = False
Me![Frais02].Form!Code.Locked = False
Me![Frais02].Form!Rem.Locked = False
Me![Frais02].Form!Montant.Locked = False
End If
End If
End Sub
Avec la même erreur.

Le code doit-il être dans le formulaire ou le sous-formulaire ?

D'avance merci.

"michel chambrillon" a écrit :

Desolé aussi car il manque un crochet fermant dans ma syntaxe
remplace par
Me![nom du sous form].form!AnMois.Locked = True
Mais je ne vois null part dans code de champ frais02
Precise la position de chacun des champ codecr anMois code Rem est ce sous
form ou form
@plus
Michel


"Vincent BD" a écrit dans le message
de news:
> Désolé Michel, j'ai un message d'erreur "Impossible de trouver le champ
> [Frais02]"
> Quid ?
>
> "michel chambrillon" a écrit :
>
>> Bonjour
>> Si tes champs sont dans le sous formulaire remplace
>> Me!AnMois.Locked = True
>> par
>> Me![nom du sous form.form!AnMois.Locked = True
>> etc
>> @plus
>> Michel
>>
>> "Vincent BD" a écrit dans le
>> message
>> de news:
>> > Bonjour,
>> > Dans un sous-formulaire (Access 2003) en affichage mode continu, je
>> > souhaite
>> > bloquer certains champs lorsqu'une condition est réunie. Alors que cela
>> > fonctionne très bien dans un autre formulaire (pas sous-formulaire) lui
>> > aussi
>> > en mode continu.
>> > J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée
>> > par
>> > cet
>> > objet".
>> > Où est l'erreur ?
>> >
>> > Private Sub Form_Current()
>> > If (Not IsNull([CodeCR])) Then
>> > If [CodeCR] = "775" Or [CodeCR] = "776" Then
>> > Me!AnMois.Locked = True
>> > Me!Code.Locked = True
>> > Me!Rem.Locked = True
>> > Me!Montant.Locked = True
>> > Else
>> > Me!AnMois.Locked = False
>> > Me!Code.Locked = False
>> > Me!Rem.Locked = False
>> > Me!Montant.Locked = False
>> > End If
>> > End If
>> > End Sub
>>



Avatar
michel chambrillon
RE Bonjour
Tous les champs sont donc dans le sous form y compris codeCr il faut donc
verouille ou non les champs lors du deplacement dans les enr du sous form et
non du form. le code devient alors ceci
Private Sub Form_Current()
If Not IsNull(Me![codecr]) Then
If Me!codecr = "776" Or Me!codecr = "775" Then
Me!anmois.Locked = True
Me!code.Locked = True
Me!rem.Locked = True
Me!montant.Locked = True
Else
Me!anmois.Locked = False
Me!code.Locked = False
Me!rem.Locked = False
Me!montant.Locked = False
End If
End If
End Sub
MAIS ATTENTION ceci est a associe a l'evenement sur Activation
(form_current) du SOUS FORM
@ Plus
Michel
"Vincent BD" a écrit dans le message
de news:
Ok
Le formulaire principal est "Frais01", le sous-formulaire "Frais02".

Cela donne ceci :
Private Sub Form_Current()
If (Eval("[Forms]![Frais01]![Frais02].[Form]![CodeCR] Is Not Null")) Then
If (Forms!Frais01!Frais02.Form!CodeCR = "776" Or
Forms!Frais01!Frais02.Form!CodeCR = "775") Then
Me![Frais02].Form!AnMois.Locked = True
Me![Frais02].Form!Code.Locked = True
Me![Frais02].Form!Rem.Locked = True
Me![Frais02].Form!Montant.Locked = True
Else
Me![Frais02].Form!AnMois.Locked = False
Me![Frais02].Form!Code.Locked = False
Me![Frais02].Form!Rem.Locked = False
Me![Frais02].Form!Montant.Locked = False
End If
End If
End Sub
Avec la même erreur.

Le code doit-il être dans le formulaire ou le sous-formulaire ?

D'avance merci.

"michel chambrillon" a écrit :

Desolé aussi car il manque un crochet fermant dans ma syntaxe
remplace par
Me![nom du sous form].form!AnMois.Locked = True
Mais je ne vois null part dans code de champ frais02
Precise la position de chacun des champ codecr anMois code Rem est ce
sous
form ou form
@plus
Michel


"Vincent BD" a écrit dans le
message
de news:
> Désolé Michel, j'ai un message d'erreur "Impossible de trouver le champ
> [Frais02]"
> Quid ?
>
> "michel chambrillon" a écrit :
>
>> Bonjour
>> Si tes champs sont dans le sous formulaire remplace
>> Me!AnMois.Locked = True
>> par
>> Me![nom du sous form.form!AnMois.Locked = True
>> etc
>> @plus
>> Michel
>>
>> "Vincent BD" a écrit dans le
>> message
>> de news:
>> > Bonjour,
>> > Dans un sous-formulaire (Access 2003) en affichage mode continu, je
>> > souhaite
>> > bloquer certains champs lorsqu'une condition est réunie. Alors que
>> > cela
>> > fonctionne très bien dans un autre formulaire (pas sous-formulaire)
>> > lui
>> > aussi
>> > en mode continu.
>> > J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée
>> > par
>> > cet
>> > objet".
>> > Où est l'erreur ?
>> >
>> > Private Sub Form_Current()
>> > If (Not IsNull([CodeCR])) Then
>> > If [CodeCR] = "775" Or [CodeCR] = "776" Then
>> > Me!AnMois.Locked = True
>> > Me!Code.Locked = True
>> > Me!Rem.Locked = True
>> > Me!Montant.Locked = True
>> > Else
>> > Me!AnMois.Locked = False
>> > Me!Code.Locked = False
>> > Me!Rem.Locked = False
>> > Me!Montant.Locked = False
>> > End If
>> > End If
>> > End Sub
>>





Avatar
michel chambrillon
Houps !
Correction sur le test
Avec la version precedente si on est sur un code 775 ou 776 juste avant la
saisie d'un nouvel enr les champs restent bloques
Nouvelle version
Private Sub Form_Current()

If Not (IsNull(Me![codecr])) And (Me!codecr = "776" Or Me!codecr = "775")
Then
Me!anmois.Locked = True
Me!code.Locked = True
Me!rem.Locked = True
Me!montant.Locked = True
Else
Me!anmois.Locked = False
Me!code.Locked = False
Me!rem.Locked = False
Me!montant.Locked = False

End If
End Sub
@plus
Michel
"Vincent BD" a écrit dans le message
de news:
Ok
Le formulaire principal est "Frais01", le sous-formulaire "Frais02".

Cela donne ceci :
Private Sub Form_Current()
If (Eval("[Forms]![Frais01]![Frais02].[Form]![CodeCR] Is Not Null")) Then
If (Forms!Frais01!Frais02.Form!CodeCR = "776" Or
Forms!Frais01!Frais02.Form!CodeCR = "775") Then
Me![Frais02].Form!AnMois.Locked = True
Me![Frais02].Form!Code.Locked = True
Me![Frais02].Form!Rem.Locked = True
Me![Frais02].Form!Montant.Locked = True
Else
Me![Frais02].Form!AnMois.Locked = False
Me![Frais02].Form!Code.Locked = False
Me![Frais02].Form!Rem.Locked = False
Me![Frais02].Form!Montant.Locked = False
End If
End If
End Sub
Avec la même erreur.

Le code doit-il être dans le formulaire ou le sous-formulaire ?

D'avance merci.

"michel chambrillon" a écrit :

Desolé aussi car il manque un crochet fermant dans ma syntaxe
remplace par
Me![nom du sous form].form!AnMois.Locked = True
Mais je ne vois null part dans code de champ frais02
Precise la position de chacun des champ codecr anMois code Rem est ce
sous
form ou form
@plus
Michel


"Vincent BD" a écrit dans le
message
de news:
> Désolé Michel, j'ai un message d'erreur "Impossible de trouver le champ
> [Frais02]"
> Quid ?
>
> "michel chambrillon" a écrit :
>
>> Bonjour
>> Si tes champs sont dans le sous formulaire remplace
>> Me!AnMois.Locked = True
>> par
>> Me![nom du sous form.form!AnMois.Locked = True
>> etc
>> @plus
>> Michel
>>
>> "Vincent BD" a écrit dans le
>> message
>> de news:
>> > Bonjour,
>> > Dans un sous-formulaire (Access 2003) en affichage mode continu, je
>> > souhaite
>> > bloquer certains champs lorsqu'une condition est réunie. Alors que
>> > cela
>> > fonctionne très bien dans un autre formulaire (pas sous-formulaire)
>> > lui
>> > aussi
>> > en mode continu.
>> > J'ai un message d'erreur, code 438, "Propriété ou méthode non gérée
>> > par
>> > cet
>> > objet".
>> > Où est l'erreur ?
>> >
>> > Private Sub Form_Current()
>> > If (Not IsNull([CodeCR])) Then
>> > If [CodeCR] = "775" Or [CodeCR] = "776" Then
>> > Me!AnMois.Locked = True
>> > Me!Code.Locked = True
>> > Me!Rem.Locked = True
>> > Me!Montant.Locked = True
>> > Else
>> > Me!AnMois.Locked = False
>> > Me!Code.Locked = False
>> > Me!Rem.Locked = False
>> > Me!Montant.Locked = False
>> > End If
>> > End If
>> > End Sub
>>