bsoir,
desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait
mon code de if..then sur un formulaire before update fonctionnait trés bien.
il mefaisait les avertissements au moment de la sortiede mon champ et donc
avant validation de l'enregistement
Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui
evidemment fausse tout et ne me permet pas de saisir n enregistrement corret
Qu'ai je fait?
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical
Me!Gencod.SetFocus
Cancel = True
Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Cancel = True
Me.Undo
Case vbNo
DoCmd.GoToRecord , , acNewRec
End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Me.Undo
Case vbNo
DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1)
Case 0
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
Case Is > 4
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
End Select
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Goupil
Bonjour,
Si tu as un blocage avant de finir ta saisie, un autre traitement est certainement responsable de ce problème... Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle minuterie" par exemple.
Goup'
"Opium" a écrit dans le message de news:
bsoir, desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait mon code de if..then sur un formulaire before update fonctionnait trés bien. il mefaisait les avertissements au moment de la sortiede mon champ et donc avant validation de l'enregistement Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui evidemment fausse tout et ne me permet pas de saisir n enregistrement corret Qu'ai je fait? Private Sub Form_BeforeUpdate(Cancel As Integer) On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical Me!Gencod.SetFocus Cancel = True Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Cancel = True Me.Undo Case vbNo DoCmd.GoToRecord , , acNewRec End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Me.Undo Case vbNo DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1) Case 0 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo Case Is > 4 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo End Select Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable" DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Me!Gencod.SetFocus Gencod.SelStart = 20
End Sub
Bonjour,
Si tu as un blocage avant de finir ta saisie, un autre traitement est
certainement responsable de ce problème...
Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle
minuterie" par exemple.
Goup'
"Opium" <Opium@discussions.microsoft.com> a écrit dans le message de news:
D2E85B24-0847-45AF-8A21-33B78F680995@microsoft.com...
bsoir,
desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait
mon code de if..then sur un formulaire before update fonctionnait trés
bien.
il mefaisait les avertissements au moment de la sortiede mon champ et donc
avant validation de l'enregistement
Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui
evidemment fausse tout et ne me permet pas de saisir n enregistrement
corret
Qu'ai je fait?
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Me!Gencod.SetFocus
Cancel = True
Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1))
Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Cancel = True
Me.Undo
Case vbNo
DoCmd.GoToRecord , , acNewRec
End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Me.Undo
Case vbNo
DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1)
Case 0
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
Case Is > 4
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
End Select
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Si tu as un blocage avant de finir ta saisie, un autre traitement est certainement responsable de ce problème... Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle minuterie" par exemple.
Goup'
"Opium" a écrit dans le message de news:
bsoir, desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait mon code de if..then sur un formulaire before update fonctionnait trés bien. il mefaisait les avertissements au moment de la sortiede mon champ et donc avant validation de l'enregistement Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui evidemment fausse tout et ne me permet pas de saisir n enregistrement corret Qu'ai je fait? Private Sub Form_BeforeUpdate(Cancel As Integer) On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical Me!Gencod.SetFocus Cancel = True Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Cancel = True Me.Undo Case vbNo DoCmd.GoToRecord , , acNewRec End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Me.Undo Case vbNo DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1) Case 0 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo Case Is > 4 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo End Select Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable" DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Me!Gencod.SetFocus Gencod.SelStart = 20
End Sub
Opium
c'était une bonne idée goup mais je n'ai rien trouver j'ai préféré reprendre une version antérieure de mon projet beaucoup de travail perdu mais tant pis merci tout de même :-( opium
"Goupil" a écrit :
Bonjour,
Si tu as un blocage avant de finir ta saisie, un autre traitement est certainement responsable de ce problème... Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle minuterie" par exemple.
Goup'
"Opium" a écrit dans le message de news:
> bsoir, > desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait > mon code de if..then sur un formulaire before update fonctionnait trés > bien. > il mefaisait les avertissements au moment de la sortiede mon champ et donc > avant validation de l'enregistement > Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui > evidemment fausse tout et ne me permet pas de saisir n enregistrement > corret > Qu'ai je fait? > Private Sub Form_BeforeUpdate(Cancel As Integer) > On Error GoTo err_form_beforeupdate > > > > > If Len(Me.Gencod) < 20 Then > > > MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " & > Len(Me.Gencod)) > Me!Gencod.SetFocus > Cancel = True > Me.Undo > > > ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then > > MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod > > > """ & Me.Gencod & """") > Me.Undo > Forms!liasse!titre.SetFocus > Forms!liasse!titre.Gencod.SetFocus > > > 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 > > > ElseIf Me!Gencod = 0 Then > MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", > vbCritical > Me!Gencod.SetFocus > Cancel = True > Me.Undo > > > ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) > Then > > MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous > l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), > vbYesNo > > Select Case vb > Case vbYes > Me!Gencod.SetFocus > Cancel = True > Me.Undo > Case vbNo > DoCmd.GoToRecord , , acNewRec > End Select > > ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then > > > MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous > l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), > vbYesNo > > > Select Case vb > Case vbYes > Me!Gencod.SetFocus > Me.Undo > Case vbNo > DoCmd.Save > > End Select > > > > > End If > > Select Case Mid(Gencod, 17, 1) > Case 0 > MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) > Me.Undo > Case Is > 4 > MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) > Me.Undo > End Select > Exit Sub > > > err_form_beforeupdate: > > > MsgBox "cet enregistrement n'est pas valable" > DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 > > Me!Gencod.SetFocus > Gencod.SelStart = 20 > > > > > End Sub >
c'était une bonne idée goup mais je n'ai rien trouver
j'ai préféré reprendre une version antérieure de mon projet
beaucoup de travail perdu mais tant pis
merci tout de même :-(
opium
"Goupil" a écrit :
Bonjour,
Si tu as un blocage avant de finir ta saisie, un autre traitement est
certainement responsable de ce problème...
Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle
minuterie" par exemple.
Goup'
"Opium" <Opium@discussions.microsoft.com> a écrit dans le message de news:
D2E85B24-0847-45AF-8A21-33B78F680995@microsoft.com...
> bsoir,
> desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait
> mon code de if..then sur un formulaire before update fonctionnait trés
> bien.
> il mefaisait les avertissements au moment de la sortiede mon champ et donc
> avant validation de l'enregistement
> Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui
> evidemment fausse tout et ne me permet pas de saisir n enregistrement
> corret
> Qu'ai je fait?
> Private Sub Form_BeforeUpdate(Cancel As Integer)
> On Error GoTo err_form_beforeupdate
>
>
>
>
> If Len(Me.Gencod) < 20 Then
>
>
> MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " &
> Len(Me.Gencod))
> Me!Gencod.SetFocus
> Cancel = True
> Me.Undo
>
>
> ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then
>
> MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod
> > > """ & Me.Gencod & """")
> Me.Undo
> Forms!liasse!titre.SetFocus
> Forms!liasse!titre.Gencod.SetFocus
>
>
> 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
>
>
> ElseIf Me!Gencod = 0 Then
> MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
> vbCritical
> Me!Gencod.SetFocus
> Cancel = True
> Me.Undo
>
>
> ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1))
> Then
>
> MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous
> l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
> vbYesNo
>
> Select Case vb
> Case vbYes
> Me!Gencod.SetFocus
> Cancel = True
> Me.Undo
> Case vbNo
> DoCmd.GoToRecord , , acNewRec
> End Select
>
> ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
>
>
> MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous
> l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
> vbYesNo
>
>
> Select Case vb
> Case vbYes
> Me!Gencod.SetFocus
> Me.Undo
> Case vbNo
> DoCmd.Save
>
> End Select
>
>
>
>
> End If
>
> Select Case Mid(Gencod, 17, 1)
> Case 0
> MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
> Me.Undo
> Case Is > 4
> MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
> Me.Undo
> End Select
> Exit Sub
>
>
> err_form_beforeupdate:
>
>
> MsgBox "cet enregistrement n'est pas valable"
> DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
>
> Me!Gencod.SetFocus
> Gencod.SelStart = 20
>
>
>
>
> End Sub
>
c'était une bonne idée goup mais je n'ai rien trouver j'ai préféré reprendre une version antérieure de mon projet beaucoup de travail perdu mais tant pis merci tout de même :-( opium
"Goupil" a écrit :
Bonjour,
Si tu as un blocage avant de finir ta saisie, un autre traitement est certainement responsable de ce problème... Vérifie s'il n'y a pas une valeur > 0 dans la propriété "Intervalle minuterie" par exemple.
Goup'
"Opium" a écrit dans le message de news:
> bsoir, > desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait > mon code de if..then sur un formulaire before update fonctionnait trés > bien. > il mefaisait les avertissements au moment de la sortiede mon champ et donc > avant validation de l'enregistement > Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui > evidemment fausse tout et ne me permet pas de saisir n enregistrement > corret > Qu'ai je fait? > Private Sub Form_BeforeUpdate(Cancel As Integer) > On Error GoTo err_form_beforeupdate > > > > > If Len(Me.Gencod) < 20 Then > > > MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " & > Len(Me.Gencod)) > Me!Gencod.SetFocus > Cancel = True > Me.Undo > > > ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then > > MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod > > > """ & Me.Gencod & """") > Me.Undo > Forms!liasse!titre.SetFocus > Forms!liasse!titre.Gencod.SetFocus > > > 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 > > > ElseIf Me!Gencod = 0 Then > MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", > vbCritical > Me!Gencod.SetFocus > Cancel = True > Me.Undo > > > ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) > Then > > MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous > l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), > vbYesNo > > Select Case vb > Case vbYes > Me!Gencod.SetFocus > Cancel = True > Me.Undo > Case vbNo > DoCmd.GoToRecord , , acNewRec > End Select > > ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then > > > MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous > l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), > vbYesNo > > > Select Case vb > Case vbYes > Me!Gencod.SetFocus > Me.Undo > Case vbNo > DoCmd.Save > > End Select > > > > > End If > > Select Case Mid(Gencod, 17, 1) > Case 0 > MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) > Me.Undo > Case Is > 4 > MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) > Me.Undo > End Select > Exit Sub > > > err_form_beforeupdate: > > > MsgBox "cet enregistrement n'est pas valable" > DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 > > Me!Gencod.SetFocus > Gencod.SelStart = 20 > > > > > End Sub >
Blaise Cacramp
Selon : Bonjour ou bonsoir
Événement Change sur ta zone Gencod, fort probablement. Et à 3h30 du matin, on dort : la nuit porte conseil. Quitter le problème pour faire passer le cerveau à autre chose, le libérer d'un "je tourne en rond". Bricoler, cuisiner, lire le journal, une ballade en forêt est un des meilleurs moyens que je connaisse...
Cdt, Blaise ---- ---- ----
"Opium" a écrit dans le message de news:
bsoir, desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait mon code de if..then sur un formulaire before update fonctionnait trés bien. il mefaisait les avertissements au moment de la sortiede mon champ et donc avant validation de l'enregistement Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui evidemment fausse tout et ne me permet pas de saisir n enregistrement corret Qu'ai je fait? Private Sub Form_BeforeUpdate(Cancel As Integer) On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical Me!Gencod.SetFocus Cancel = True Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Cancel = True Me.Undo Case vbNo DoCmd.GoToRecord , , acNewRec End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Me.Undo Case vbNo DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1) Case 0 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo Case Is > 4 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo End Select Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable" DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Me!Gencod.SetFocus Gencod.SelStart = 20
End Sub
Selon : Bonjour ou bonsoir
Événement Change sur ta zone Gencod, fort probablement.
Et à 3h30 du matin, on dort : la nuit porte conseil.
Quitter le problème pour faire passer le cerveau à autre chose, le libérer
d'un "je tourne en rond". Bricoler, cuisiner, lire le journal, une ballade
en forêt est un des meilleurs moyens que je connaisse...
Cdt, Blaise
---- ---- ----
"Opium" <Opium@discussions.microsoft.com> a écrit dans le message de news:
D2E85B24-0847-45AF-8A21-33B78F680995@microsoft.com...
bsoir,
desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait
mon code de if..then sur un formulaire before update fonctionnait trés
bien.
il mefaisait les avertissements au moment de la sortiede mon champ et donc
avant validation de l'enregistement
Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui
evidemment fausse tout et ne me permet pas de saisir n enregistrement
corret
Qu'ai je fait?
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Me!Gencod.SetFocus
Cancel = True
Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1))
Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Cancel = True
Me.Undo
Case vbNo
DoCmd.GoToRecord , , acNewRec
End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous
l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000),
vbYesNo
Select Case vb
Case vbYes
Me!Gencod.SetFocus
Me.Undo
Case vbNo
DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1)
Case 0
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
Case Is > 4
MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1)
Me.Undo
End Select
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Événement Change sur ta zone Gencod, fort probablement. Et à 3h30 du matin, on dort : la nuit porte conseil. Quitter le problème pour faire passer le cerveau à autre chose, le libérer d'un "je tourne en rond". Bricoler, cuisiner, lire le journal, une ballade en forêt est un des meilleurs moyens que je connaisse...
Cdt, Blaise ---- ---- ----
"Opium" a écrit dans le message de news:
bsoir, desepérée, il est 3h30 du mat et jcompend plus rien à c que je fait mon code de if..then sur un formulaire before update fonctionnait trés bien. il mefaisait les avertissements au moment de la sortiede mon champ et donc avant validation de l'enregistement Or aintenant il ne me laisse même plus le tempsde finir la saisie, ce qui evidemment fausse tout et ne me permet pas de saisir n enregistrement corret Qu'ai je fait? Private Sub Form_BeforeUpdate(Cancel As Integer) On Error GoTo err_form_beforeupdate
ElseIf Me!Gencod = 0 Then MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical Me!Gencod.SetFocus Cancel = True Me.Undo
ElseIf Year(Now) < Year(DateSerial((Right(Me!Gencod, 2) + 2000), 1, 1)) Then
MsgBox "la date du titre n'est pas encore valide," & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Cancel = True Me.Undo Case vbNo DoCmd.GoToRecord , , acNewRec End Select
ElseIf (Now) > (DateSerial((Right(Me!Gencod, 2) + 2001), 1, 31)) Then
MsgBox "la date du titre n'est plus valable, " & vbCrLf & "voulez vous l'effacer?" & vbCrLf & "titre valable en " & (Right(Me!Gencod, 2) + 2000), vbYesNo
Select Case vb Case vbYes Me!Gencod.SetFocus Me.Undo Case vbNo DoCmd.Save
End Select
End If
Select Case Mid(Gencod, 17, 1) Case 0 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo Case Is > 4 MsgBox "Ce type de titre n'est pas correct " & Mid(Gencod, 17, 1) Me.Undo End Select Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable" DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70