OVH Cloud OVH Cloud

Verrouiller un champ après saisie

2 réponses
Avatar
Patoche
Bonjour à tous

Dans un sous formulaire, j'ai 3 Champs

Nom (liste de valeurs)
Date
Libellé

Je voudrais que, lorsque la ligne est saisie (les 3 champs), le champs
"nom" soit définitivement verrouillé (pas les autres).

Pouvez-vous m'aider ?

Merci d'avance

Patoche

2 réponses

Avatar
Patoche
Merci pour ces conseils, mais je n'ai pas tout compris....

Apparemment la fonction "verrouiller_nom()" ne fonctionne pas ....

peux-tu m'apporter un plus d'éléments ?

Patoche (cerveau lent...)


"joyeux atchoum" a écrit dans le message de
news:
s'lt

Dans un sous formulaire, j'ai 3 Champs

Nom (liste de valeurs)
Date
Libellé


sur l'evenement after update de chacun de tes controles tu fais appel a
la fonction verrouiller_nom()

sub verrouiller_nom ()

if isnull(Me.TxtNom) or isnull(Me.txtdate) or isnull(Me.txtlibelle)
then
Me.txtnom.enabled = true
else
Me.txtnom.enabled = false
end if

end sub

Au passage je te fais remarquer que l'utilisation de nom, date,.... est
fortement deconseillé dans le nommage (pas vraiment français ça ) de
tes controles.
Tout nom de controle doit etre clairemenet identifié et distinct des
fonctions,propriétés propre à Access/VBA tel que date()


ja;)
qui avait du temps à perdre
qui devrait penser à faire du copier/coller à la Raymond



Avatar
joyeux atchoum
S'lt

Merci pour ces conseils, mais je n'ai pas tout compris....
pas grave

je vais essayer de faire mieux ;)

Apparemment la fonction "verrouiller_nom()" ne fonctionne pas ....
attends j'ai du te faire une faute de frappe ;)


peux-tu m'apporter un plus d'éléments ?
euh ...


Donc l'idée du truc bidule-chouette c'est de faire appel à la meme
fonction pour chacun des controles
vu que sur chaque controle doit faire le meme test

donc on travaille directement dans le formulaire qui contient les zone
de texte à tester

sur l'evenement after update de chacun de tes controles tu fais appel a
la fonction verrouiller_nom()



par exemple si tu as le controle zdtNom

sub zdtNom_afterupdate()
verrouiller_nom
'// idem : call verrouiller_nom()
end sub

et tu ecrit dans le module du form

sub verrouiller_nom ()
if isnull(Me.zdtNom) or isnull(Me.zdtDate) or isnull(Me.zdtLibelle)
then '//teste l'etat de chacune des zone de texte
'//au moins une des zone de texte est vide
Me.zdtdate.setfocus '//donne le focus au zdt de date
Me.zdtnom.enabled = true '//autorise l'acces à zdtnom
else
'//toute les zone de textes sont vide
Me.zdtdate.setfocus '//donne le focus au zdt de date
Me.zdtnom.enabled = false '//verrouille zdtnom
end if
end sub

donc dans mon cas
j'ai pris zdtnom, zdtdate, zdtlibelle comme nom des controles
j'ai essayé d'expliciter la fonction
donc on teste l'etat de l'ensemble des zones de textes si tout est
rempli alors on verrouille zdtnom autrement on deverrouille zdtnom

j'ai rajouté la ligne setfocus car j'avais oublié que tu ne peux
modifier la propriété enabled sur le controle actif

donc voili, j'espere avoir ete plus clair
j'ai testé cela marche sans pb (a priori)

ja;)
qui ...