Verrouiller un champ après saisie

Le
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)
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5034641
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" 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)




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

Pierrot - Rennes (35)

"Raymond [mvp]" 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" 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)








Pierrot
Le #5034121
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]" 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" 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)








Raymond [mvp]
Le #5034041
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" 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


Pierrot
Le #5033981
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]" 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" 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






Pierrot
Le #5033971
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]" 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" 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






Raymond [mvp]
Le #5033691
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" 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.


Publicité
Poster une réponse
Anonyme