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

Verrouiller un champ après saisie

7 réponses
Avatar
Pierrot
Bonjour,

Comment verrouiller un champ après saisie de manière à ne pas pouvoir
modifier la saisie ?
Dans le même ordre d'idée, comment associer 2 champs dans un formulaire pour
que le champ B se verrouille si on saisie quelque chose dans le champ A ?

Merci d'avance.

Pierrot - Rennes (35)

7 réponses

Avatar
Raymond [mvp]
Bonjour.

sur les événements AfterUpdate de ton champ et Form_Current il faut tester
si ton champ est null ou non.
Private Sub Corr_Nom_AfterUpdate()
Me.AutreControle.SetFocus 'éventuellement
If Not IsNull(Me.Corr_Nom) Then Me.Corr_Nom.Enabled = False
End Sub

Private Sub Form_Current()
If IsNull(Me.Corr_Nom) Then
Me.Corr_Nom.Enabled = True
else
Me.Corr_Nom.Enabled = True
end if
End Sub

pour les champs a et B tu procèdes pareil.

Private Sub ChampA_AfterUpdate()
Bloquer
End Sub

Private Sub Form_Current()
Bloquer
End Sub

Private Sub Bloquer()
If IsNull(Me.ChampA) Or Me.ChampA = "" Then
Me.ChampB.Enabled = True
Else
Me.ChampB.Enabled = False
End If
End Sub

dans tous les cas, si le champ à bloquer a le focus il y aura erreur,
déplacer le focus sur un autre contrôle.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d1c16$0$22882$
Bonjour,

Comment verrouiller un champ après saisie de manière à ne pas pouvoir
modifier la saisie ?
Dans le même ordre d'idée, comment associer 2 champs dans un formulaire
pour

que le champ B se verrouille si on saisie quelque chose dans le champ A ?

Merci d'avance.

Pierrot - Rennes (35)




Avatar
Pierrot
Merci beaucoup pour la réponse rapide ;-))
Je vais tester...
Amicalement

Pierrot - Rennes (35)

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

sur les événements AfterUpdate de ton champ et Form_Current il faut tester
si ton champ est null ou non.
Private Sub Corr_Nom_AfterUpdate()
Me.AutreControle.SetFocus 'éventuellement
If Not IsNull(Me.Corr_Nom) Then Me.Corr_Nom.Enabled = False
End Sub

Private Sub Form_Current()
If IsNull(Me.Corr_Nom) Then
Me.Corr_Nom.Enabled = True
else
Me.Corr_Nom.Enabled = True
end if
End Sub

pour les champs a et B tu procèdes pareil.

Private Sub ChampA_AfterUpdate()
Bloquer
End Sub

Private Sub Form_Current()
Bloquer
End Sub

Private Sub Bloquer()
If IsNull(Me.ChampA) Or Me.ChampA = "" Then
Me.ChampB.Enabled = True
Else
Me.ChampB.Enabled = False
End If
End Sub

dans tous les cas, si le champ à bloquer a le focus il y aura erreur,
déplacer le focus sur un autre contrôle.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d1c16$0$22882$
Bonjour,

Comment verrouiller un champ après saisie de manière à ne pas pouvoir
modifier la saisie ?
Dans le même ordre d'idée, comment associer 2 champs dans un formulaire
pour

que le champ B se verrouille si on saisie quelque chose dans le champ A
?



Merci d'avance.

Pierrot - Rennes (35)








Avatar
Pierrot
Je dois être nul en code (ou pas loin !!!;-))
Sur ta solution, je ne comprends pas l'expressions "Corr_Nom"
Dois-je remplacer cela par le nom de mon champ ?
(J'ai essayé mais résultat non concluant)
Merci d'avance.

En essayant ce code, j'ai une erreur "Membre de méthode ou données
introuvable" sur la ligne Me.AutreControle.SetFocus

Voici le contenu actuels des mes champs

Private Sub Date_Abonnement_AfterUpdate()

End Sub


Private Sub Form_Current()
Me![CodeCartes].SetFocus
'Me![CodeCatalogueRenard].SetFocus
End Sub



"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

sur les événements AfterUpdate de ton champ et Form_Current il faut tester
si ton champ est null ou non.
Private Sub Corr_Nom_AfterUpdate()
Me.AutreControle.SetFocus 'éventuellement
If Not IsNull(Me.Corr_Nom) Then Me.Corr_Nom.Enabled = False
End Sub

Private Sub Form_Current()
If IsNull(Me.Corr_Nom) Then
Me.Corr_Nom.Enabled = True
else
Me.Corr_Nom.Enabled = True
end if
End Sub

pour les champs a et B tu procèdes pareil.

Private Sub ChampA_AfterUpdate()
Bloquer
End Sub

Private Sub Form_Current()
Bloquer
End Sub

Private Sub Bloquer()
If IsNull(Me.ChampA) Or Me.ChampA = "" Then
Me.ChampB.Enabled = True
Else
Me.ChampB.Enabled = False
End If
End Sub

dans tous les cas, si le champ à bloquer a le focus il y aura erreur,
déplacer le focus sur un autre contrôle.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d1c16$0$22882$
Bonjour,

Comment verrouiller un champ après saisie de manière à ne pas pouvoir
modifier la saisie ?
Dans le même ordre d'idée, comment associer 2 champs dans un formulaire
pour

que le champ B se verrouille si on saisie quelque chose dans le champ A
?



Merci d'avance.

Pierrot - Rennes (35)








Avatar
Raymond [mvp]
Corr_Nom doit être remplacé par le vrai nom de ton contrôle à valider ou
non.
AutreControle doit être remplacé par un des tes contrôlkes existants.

ne connaissant pas le nom de tes contrôles il faut bien les appeler par un
nom selon l'imagination du moment.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d84ed$0$17614$
Je dois être nul en code (ou pas loin !!!;-))
Sur ta solution, je ne comprends pas l'expressions "Corr_Nom"
Dois-je remplacer cela par le nom de mon champ ?
(J'ai essayé mais résultat non concluant)
Merci d'avance.

En essayant ce code, j'ai une erreur "Membre de méthode ou données
introuvable" sur la ligne Me.AutreControle.SetFocus

Voici le contenu actuels des mes champs

Private Sub Date_Abonnement_AfterUpdate()

End Sub


Private Sub Form_Current()
Me![CodeCartes].SetFocus
'Me![CodeCatalogueRenard].SetFocus
End Sub


Avatar
Pierrot
J'avais bien précisé que je n'étais pas très fort en code ;-))
Cette fois-ci ça marche.
Merci beaucoup pour la leçon :-)) !!!

"Raymond [mvp]" a écrit dans le message de
news:
Corr_Nom doit être remplacé par le vrai nom de ton contrôle à valider ou
non.
AutreControle doit être remplacé par un des tes contrôlkes existants.

ne connaissant pas le nom de tes contrôles il faut bien les appeler par un
nom selon l'imagination du moment.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d84ed$0$17614$
Je dois être nul en code (ou pas loin !!!;-))
Sur ta solution, je ne comprends pas l'expressions "Corr_Nom"
Dois-je remplacer cela par le nom de mon champ ?
(J'ai essayé mais résultat non concluant)
Merci d'avance.

En essayant ce code, j'ai une erreur "Membre de méthode ou données
introuvable" sur la ligne Me.AutreControle.SetFocus

Voici le contenu actuels des mes champs

Private Sub Date_Abonnement_AfterUpdate()

End Sub


Private Sub Form_Current()
Me![CodeCartes].SetFocus
'Me![CodeCatalogueRenard].SetFocus
End Sub






Avatar
Pierrot
J'avais bien précisé que le code n'était pas mon fort ;-))
Là ça marche après validation du champ.
Par contre, ce n'est pas permanent ???
Lorsque je quitte la fiche et que j'y reviens le champ n'est plus
verrouillé.
Je souhaite que cela soit définitif

Merci d'avance.

"Raymond [mvp]" a écrit dans le message de
news:
Corr_Nom doit être remplacé par le vrai nom de ton contrôle à valider ou
non.
AutreControle doit être remplacé par un des tes contrôlkes existants.

ne connaissant pas le nom de tes contrôles il faut bien les appeler par un
nom selon l'imagination du moment.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d84ed$0$17614$
Je dois être nul en code (ou pas loin !!!;-))
Sur ta solution, je ne comprends pas l'expressions "Corr_Nom"
Dois-je remplacer cela par le nom de mon champ ?
(J'ai essayé mais résultat non concluant)
Merci d'avance.

En essayant ce code, j'ai une erreur "Membre de méthode ou données
introuvable" sur la ligne Me.AutreControle.SetFocus

Voici le contenu actuels des mes champs

Private Sub Date_Abonnement_AfterUpdate()

End Sub


Private Sub Form_Current()
Me![CodeCartes].SetFocus
'Me![CodeCatalogueRenard].SetFocus
End Sub






Avatar
Raymond [mvp]
Bonjour Pierrot.

dans ce cas, c'est la fonction dans l'événement Form_Current qui joue ce
rôle.
l'as-tu bien placée dans ton code ? regarde sur la ligne "sur activation" de
l'onglet événements des propriétés, il doit y avoir "procédure
événementielle". si ce n'est pas indiqué, clique sur le bouton marqué de 3
points et le code correspondant sera affiché, s'il n'y a pas de code, entre
celui que je t'ai donné sur le premier post.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierrot" a écrit dans le message de
news:407d980e$0$17614$
J'avais bien précisé que le code n'était pas mon fort ;-))
Là ça marche après validation du champ.
Par contre, ce n'est pas permanent ???
Lorsque je quitte la fiche et que j'y reviens le champ n'est plus
verrouillé.
Je souhaite que cela soit définitif

Merci d'avance.