OVH Cloud OVH Cloud

Sécurité de saisie

17 réponses
Avatar
Philippe
Bonsoir,

J'ai un formulaire en mode continu, sur chaque enregistrement il y a une
case à cocher qui est activée à chaque fois que j'appuis sur la barre espace
du clavier, lorsque la case est à "VRAI" la ligne compléte change de couleur,
pour mettre une sécurité de saisie sur les dates j'ai écris ce code sur avant
MAJ de la case mais ça ne fonctionne pas.

CODE : Private Sub Valide_BeforeUpdate(Cancel As Integer)
'date filiére est la date de l'enregistrement et "MADATE' est la date du haut.
If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut pas être changé de destination pour
cause de date ! ", , "Gestion des destinations"
End If
End Sub

En fait la date qui est en haut de mon formulaire ne doit pas être = ou < à
la date qui est sur l'enregistrement concerné voir l'image du formulaire la
date en rouge sur fond jaune doit être inférieure à celle de "Date de
changement".
Je souhaite être avertis par une boite de dialogue et quand je clique sur ok
la coche devient "FAUX" et passe a l'enregistrement suivant.

Image : http://cjoint.com/?bEtaPdXrIR

Merci et j'espére avoir été explicite.
Philippe.

10 réponses

1 2
Avatar
3stone
Salut,

"Philippe"
| J'ai un formulaire en mode continu, sur chaque enregistrement il y a une
| case à cocher qui est activée à chaque fois que j'appuis sur la barre espace
| du clavier, lorsque la case est à "VRAI" la ligne compléte change de couleur,
| pour mettre une sécurité de saisie sur les dates j'ai écris ce code sur avant
| MAJ de la case mais ça ne fonctionne pas.
|
| CODE : Private Sub Valide_BeforeUpdate(Cancel As Integer)
| 'date filiére est la date de l'enregistrement et "MADATE' est la date du haut.
| If [Date filiére] >= [MaDate] Then
| MsgBox "Ce bovin ne peut pas être changé de destination pour
| cause de date ! ", , "Gestion des destinations"
| End If
| End Sub
|
| En fait la date qui est en haut de mon formulaire ne doit pas être = ou < à
| la date qui est sur l'enregistrement concerné voir l'image du formulaire la
| date en rouge sur fond jaune doit être inférieure à celle de "Date de
| changement".
| Je souhaite être avertis par une boite de dialogue et quand je clique sur ok
| la coche devient "FAUX" et passe a l'enregistrement suivant.


Oui, mais encore faut-il que tu annulle la mise à jour...

If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
[Date filière].Undo
Cancel = True
End If

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Philippe
Merci pour la réponse, mais ça ne fonctionne toujours pas la coche ce met et
l'enregistrement suivant est sélectionné, seul le message apparait sur le
dernier enregistrement, j'ai remplacé [date filiére].undo par MACOHE.undo et
Me.undo sans succés.

Tu as une idée ?
Merci.


Salut,

"Philippe"
| J'ai un formulaire en mode continu, sur chaque enregistrement il y a une
| case à cocher qui est activée à chaque fois que j'appuis sur la barre espace
| du clavier, lorsque la case est à "VRAI" la ligne compléte change de couleur,
| pour mettre une sécurité de saisie sur les dates j'ai écris ce code sur avant
| MAJ de la case mais ça ne fonctionne pas.
|
| CODE : Private Sub Valide_BeforeUpdate(Cancel As Integer)
| 'date filiére est la date de l'enregistrement et "MADATE' est la date du haut.
| If [Date filiére] >= [MaDate] Then
| MsgBox "Ce bovin ne peut pas être changé de destination pour
| cause de date ! ", , "Gestion des destinations"
| End If
| End Sub
|
| En fait la date qui est en haut de mon formulaire ne doit pas être = ou < à
| la date qui est sur l'enregistrement concerné voir l'image du formulaire la
| date en rouge sur fond jaune doit être inférieure à celle de "Date de
| changement".
| Je souhaite être avertis par une boite de dialogue et quand je clique sur ok
| la coche devient "FAUX" et passe a l'enregistrement suivant.


Oui, mais encore faut-il que tu annulle la mise à jour...

If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
[Date filière].Undo
Cancel = True
End If

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
"Philippe"
| Merci pour la réponse, mais ça ne fonctionne toujours pas la coche ce met et
| l'enregistrement suivant est sélectionné, seul le message apparait sur le
| dernier enregistrement, j'ai remplacé [date filiére].undo par MACOHE.undo et
| Me.undo sans succés.


M**** j'ai dit une connerie ;-))

Il faut le placer sur avant mise à jour du formulaire ou "sur changement" de la coche
et il faut annuler "la coche"


If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
[MaCoche].Undo
Cancel = True
End If


c'est quoi "Valide" ?
dans "Private Sub Valide_BeforeUpdate(Cancel As Integer)"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Philippe
Valide est le nom de la case à cocher, je fais des tests.
Merci.
Philippe.


"Philippe"
| Merci pour la réponse, mais ça ne fonctionne toujours pas la coche ce met et
| l'enregistrement suivant est sélectionné, seul le message apparait sur le
| dernier enregistrement, j'ai remplacé [date filiére].undo par MACOHE.undo et
| Me.undo sans succés.


M**** j'ai dit une connerie ;-))

Il faut le placer sur avant mise à jour du formulaire ou "sur changement" de la coche
et il faut annuler "la coche"


If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
[MaCoche].Undo
Cancel = True
End If


c'est quoi "Valide" ?
dans "Private Sub Valide_BeforeUpdate(Cancel As Integer)"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/






Avatar
Philippe
J'ai tout tenté mais rien à faire, ça ne fonctionne pas, la coche "valide" ce
met quand même, je ne vois pas pourquoi le code ne réagit pas.
Tu as une autre idée ?

Merci d'avance.
Philippe.


"Philippe"
| Merci pour la réponse, mais ça ne fonctionne toujours pas la coche ce met et
| l'enregistrement suivant est sélectionné, seul le message apparait sur le
| dernier enregistrement, j'ai remplacé [date filiére].undo par MACOHE.undo et
| Me.undo sans succés.


M**** j'ai dit une connerie ;-))

Il faut le placer sur avant mise à jour du formulaire ou "sur changement" de la coche
et il faut annuler "la coche"


If [Date filiére] >= [MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
[MaCoche].Undo
Cancel = True
End If


c'est quoi "Valide" ?
dans "Private Sub Valide_BeforeUpdate(Cancel As Integer)"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/






Avatar
3stone
re,

"Philippe"
| J'ai tout tenté

sûrement pas !

Ou à tu place le code ?
Le nom de [Date filière] et [MaDate] sont-il correct ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Philippe
le code est placé sur avant mise à jour de la coche, j'ai fais un essai sur
avant mise à jour de formulaire, les noms sont bon.


re,

"Philippe"
| J'ai tout tenté

sûrement pas !

Ou à tu place le code ?
Le nom de [Date filière] et [MaDate] sont-il correct ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
Philippe
3stone,

J'ai mis un morceau de ma base sans les relations, si tu peux y regarder, je
reviens demain soir, merci.

http://cjoint.com/?bEw774STQQ

Bonne soirée.


re,

"Philippe"
| J'ai tout tenté

sûrement pas !

Ou à tu place le code ?
Le nom de [Date filière] et [MaDate] sont-il correct ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
"Philippe"
| J'ai mis un morceau de ma base...

Il manque tellement des morceaux qu'il est difficile de voir ;-)

Mais, en mettant le code sur "Avant mise à jour" de la coche Valide,
cela doit fonctionner !
Si tu souhaite en plus annuler la saisie au niveau du formulaire,
tu ajoute Me.Undo

If Me.[Date filiére] >= Me![MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
Me!Valide.Undo
Me.Undo
Cancel = True
End If

Assure toi aussi que le test est correct sur les date est correct.

Autre problème est le reste du code de ton formulaire...
code que tu devrais commencer par mettre en commentaire pour
t'assurer que ce n'est pas lui qui te joue des tours.

Et un conseil !
Ne nomme pas tes contrôles, zone de texte et autres, du même
nom que leur source.
Même si MS montre le mauvais exemple avec ses assistants!!!

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Philippe
Bonsoir,
Merci beaucoup pour ta réponse, avec le clic de la souris ça fonctionne mais
pas avec la barre espace du clavier c'est à mon avis le code de la coche sur
la propriété "sur touche activé" qui perturbe le code avant mise à jour de la
même coche.

Voici le code perturbateur :
Private Sub Valide_KeyPress(KeyAscii As Integer)
'Sur l 'événement touche activée de la case à cocher:
If KeyAscii = 32 Then
If Not Me.Recordset.EOF Then
Me.VALIDE = Not Me.VALIDE
Call Valide_AfterUpdate
Me.Recordset.MoveNext
Me.VALIDE.SetFocus
End If
End If
End Sub
Si tu as une idée.


"Philippe"
| J'ai mis un morceau de ma base...

Il manque tellement des morceaux qu'il est difficile de voir ;-)

Mais, en mettant le code sur "Avant mise à jour" de la coche Valide,
cela doit fonctionner !
Si tu souhaite en plus annuler la saisie au niveau du formulaire,
tu ajoute Me.Undo

If Me.[Date filiére] >= Me![MaDate] Then
MsgBox "Ce bovin ne peut... ", , "Gestion des destinations"
Me!Valide.Undo
Me.Undo
Cancel = True
End If

Assure toi aussi que le test est correct sur les date est correct.

Autre problème est le reste du code de ton formulaire...
code que tu devrais commencer par mettre en commentaire pour
t'assurer que ce n'est pas lui qui te joue des tours.

Et un conseil !
Ne nomme pas tes contrôles, zone de texte et autres, du même
nom que leur source.
Même si MS montre le mauvais exemple avec ses assistants!!!

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




1 2