OVH Cloud OVH Cloud

Avant MAJ dans un sous-formulaire

3 réponses
Avatar
Antille Jean-Jacques
Bonjour!
J'ai un sous-formulaire dans lequel je vais un test pour ne pas avoir 2
enregistrements identiques. Jusque-là, pas de prob.
Par contre, si la saisie ne convient pas, j'aimerais supprimer la saisie
déjà effectuée et positionner le focus dans un champ précis. Je rappelle que
je suis dans un sous-formulaire
J'ai essayé:

cancel = true
me.undo
docmd.gotoControl("MonContrôle")

J'ai un message d'erreur sur la dernière ligne, me disant que je dois
d'abord sauver l'enregistrement.

Quelqu'un peut-il m'aider?
Merci de vos réponses.

--
Cordiales salutations.
Jean-Jacques

027 458 40 61
078 665 75 74

http://www.webmister.ch/school/accueil.asp

3 réponses

Avatar
3stone
Salut,

Antille Jean-Jacques
J'ai un sous-formulaire dans lequel je vais un test pour ne pas avoir 2
enregistrements identiques. Jusque-là, pas de prob.
Par contre, si la saisie ne convient pas, j'aimerais supprimer la saisie
déjà effectuée et positionner le focus dans un champ précis. Je rappelle que
je suis dans un sous-formulaire



Comment, où et dans quel événement fait tu le test ?

A priori, Me.Undo devrait annuler la saisie, mais...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Antille Jean-Jacques
Dans l'événement Avant MAJ d'une zone de liste modifiable. J'ai, chaque
fois, le message me disant que je ne peux pas atteindre le contrôle
"Branche" et le focus se met tjrs dans un autre contrôle. Bizarre! Merci d'y
réfléchir.

Private Sub Groupe_BeforeUpdate(Cancel As Integer)
Dim Nbre As Integer 'variable du nombre d'une branche et d'un groupe
Nbre = DCount("*", "Table_Repart_Groupes_Branches_Profs",
"IDRepart_Branche Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch
es_Groupes_Profs.Form!Branche " _
& "AND IDGroupe Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch
es_Groupes_Profs.Form!Groupe " _
& "AND IDAnneeScolaire Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch
es_Groupes_Profs.Form!IDAnneeScolaire")
If Nbre > 0 Then
MsgBox ("Cette branche et ce groupe existent déjà!"), vbCritical,
"Attention!"
Me.Undo
Cancel = True
DoCmd.GoToControl ("Branche")
End If
End Sub


--
Cordiales salutations

Jean-Jacques

027 458 40 61
078 665 75 74

http://www.webmister.ch/school/accueil.asp

"3stone" a écrit dans le message de news:

Salut,

Antille Jean-Jacques
J'ai un sous-formulaire dans lequel je vais un test pour ne pas avoir 2
enregistrements identiques. Jusque-là, pas de prob.
Par contre, si la saisie ne convient pas, j'aimerais supprimer la saisie
déjà effectuée et positionner le focus dans un champ précis. Je rappelle
que


je suis dans un sous-formulaire



Comment, où et dans quel événement fait tu le test ?

A priori, Me.Undo devrait annuler la saisie, mais...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------






Avatar
Antille Jean-Jacques
Finalement, j'ai trouvé la cause de mon problème.
J'effectuais cette procédure sur le MAJ de la zone de texte au lieu de
l'effectuer sur MAJ du sous-formulaire.


--
Cordiales salutations

Jean-Jacques

027 458 40 61
078 665 75 74

http://www.webmister.ch/school/accueil.asp
"Antille Jean-Jacques" a écrit dans le message de
news: 3f266a02$
Dans l'événement Avant MAJ d'une zone de liste modifiable. J'ai, chaque
fois, le message me disant que je ne peux pas atteindre le contrôle
"Branche" et le focus se met tjrs dans un autre contrôle. Bizarre! Merci
d'y

réfléchir.

Private Sub Groupe_BeforeUpdate(Cancel As Integer)
Dim Nbre As Integer 'variable du nombre d'une branche et d'un groupe
Nbre = DCount("*", "Table_Repart_Groupes_Branches_Profs",
"IDRepart_Branche >
Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch

es_Groupes_Profs.Form!Branche " _
& "AND IDGroupe >
Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch

es_Groupes_Profs.Form!Groupe " _
& "AND IDAnneeScolaire >
Forms!Formulaire_Repart_Branches_Groupes_Profs!Sous_Formulaire_Repart_Branch

es_Groupes_Profs.Form!IDAnneeScolaire")
If Nbre > 0 Then
MsgBox ("Cette branche et ce groupe existent déjà!"), vbCritical,
"Attention!"
Me.Undo
Cancel = True
DoCmd.GoToControl ("Branche")
End If
End Sub


--
Cordiales salutations

Jean-Jacques

027 458 40 61
078 665 75 74

http://www.webmister.ch/school/accueil.asp

"3stone" a écrit dans le message de news:

Salut,

Antille Jean-Jacques
J'ai un sous-formulaire dans lequel je vais un test pour ne pas avoir
2



enregistrements identiques. Jusque-là, pas de prob.
Par contre, si la saisie ne convient pas, j'aimerais supprimer la
saisie



déjà effectuée et positionner le focus dans un champ précis. Je
rappelle



que
je suis dans un sous-formulaire



Comment, où et dans quel événement fait tu le test ?

A priori, Me.Undo devrait annuler la saisie, mais...



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------