Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur redondante

3 réponses
Avatar
Opium
bonsoir,

j'ai un petit frmulaire "titre" avec un champ "gencod"
j'y ai mis quelques conditions en vba en beforeupdate pour valider la saisie
du champ
20 caractères obligatoire,
et si doublon MsgBox "Titre déjà présent dans " + DLookup("liasse",
"titre", "gencod = """ & Me.Gencod & """")
cela fonctionne assez bien. j'ai mon message avec le doubon retrouvé dans la
bonne liasse mais aprés ccess me met un message impossible d'atteindre
l'enregistrement spécifié
voici mon code au complet
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err_form_beforeupdate
If Len(Me.Gencod) < 20 Then
Cancel = True
MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " &
Len(Me.Gencod))
Me!Gencod.SetFocus
ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then
MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod
= """ & Me.Gencod & """")
Cancel = True
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé", vbCritical
Cancel = True
DoCmd.GoToRecord , , acNewRec
End If
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Me!Gencod.SetFocus
Gencod.SelStart = 20

OU PUIS JE ANNULER CE MESSAGE SVP car il est redondant avec mon info sur le
doublon avec identification de la liasse
Merci d'avance
et merci encore à 3stone pour m'avoir mis sur la piste!!!
Opium

3 réponses

Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir
Au pif
J'ai changé l'ordre de certaines lignes et utilisé Me.Undo

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
ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then
MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod =
""" & Me.Gencod & """")
Cancel = True
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Me.Undo
DoCmd.GoToRecord , , acNewRec
Cancel = True
End If
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
Me.Undo
Me!Gencod.SetFocus
Gencod.SelStart = 20



Cdt, Blaise
---- ---- ----


"Opium" a écrit dans le message de news:

bonsoir,

j'ai un petit frmulaire "titre" avec un champ "gencod"
j'y ai mis quelques conditions en vba en beforeupdate pour valider la
saisie
du champ
20 caractères obligatoire,
et si doublon MsgBox "Titre déjà présent dans " + DLookup("liasse",
"titre", "gencod = """ & Me.Gencod & """")
cela fonctionne assez bien. j'ai mon message avec le doubon retrouvé dans
la
bonne liasse mais aprés ccess me met un message impossible d'atteindre
l'enregistrement spécifié
voici mon code au complet
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err_form_beforeupdate
If Len(Me.Gencod) < 20 Then
Cancel = True
MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " &
Len(Me.Gencod))
Me!Gencod.SetFocus
ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0
Then
MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod
= """ & Me.Gencod & """")
Cancel = True
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Cancel = True
DoCmd.GoToRecord , , acNewRec
End If
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Me!Gencod.SetFocus
Gencod.SelStart = 20

OU PUIS JE ANNULER CE MESSAGE SVP car il est redondant avec mon info sur
le
doublon avec identification de la liasse
Merci d'avance
et merci encore à 3stone pour m'avoir mis sur la piste!!!
Opium


Avatar
Opium
Merci beaucoup Blaise, le me.undo était exactement ce qu'il me fallait.!!!!
Grand merci au temps que vous nous consacrez!
A bientôt
Opium


"Blaise Cacramp" a écrit :

Selon : Bonjour ou bonsoir
Au pif
J'ai changé l'ordre de certaines lignes et utilisé Me.Undo

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
ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then
MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod =
""" & Me.Gencod & """")
Cancel = True
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Me.Undo
DoCmd.GoToRecord , , acNewRec
Cancel = True
End If
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
Me.Undo
Me!Gencod.SetFocus
Gencod.SelStart = 20



Cdt, Blaise
---- ---- ----


"Opium" a écrit dans le message de news:

> bonsoir,
>
> j'ai un petit frmulaire "titre" avec un champ "gencod"
> j'y ai mis quelques conditions en vba en beforeupdate pour valider la
> saisie
> du champ
> 20 caractères obligatoire,
> et si doublon MsgBox "Titre déjà présent dans " + DLookup("liasse",
> "titre", "gencod = """ & Me.Gencod & """")
> cela fonctionne assez bien. j'ai mon message avec le doubon retrouvé dans
> la
> bonne liasse mais aprés ccess me met un message impossible d'atteindre
> l'enregistrement spécifié
> voici mon code au complet
> Private Sub Form_BeforeUpdate(Cancel As Integer)
> On Error GoTo err_form_beforeupdate
> If Len(Me.Gencod) < 20 Then
> Cancel = True
> MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " &
> Len(Me.Gencod))
> Me!Gencod.SetFocus
> ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0
> Then
> MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod
> = """ & Me.Gencod & """")
> Cancel = True
> 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
> ElseIf Me!Gencod = 0 Then
> MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
> vbCritical
> Cancel = True
> DoCmd.GoToRecord , , acNewRec
> End If
> Exit Sub
> err_form_beforeupdate:
> MsgBox "cet enregistrement n'est pas valable"
> DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
> Me!Gencod.SetFocus
> Gencod.SelStart = 20
>
> OU PUIS JE ANNULER CE MESSAGE SVP car il est redondant avec mon info sur
> le
> doublon avec identification de la liasse
> Merci d'avance
> et merci encore à 3stone pour m'avoir mis sur la piste!!!
> Opium





Avatar
Opium
Merci Blaise, c'était exactement le me.undo qu'il me fallait
Merci pour le temps que vous nous consacrez tous dans ces forums
et désolée d'être si eternellement débutante!!!
;-)
A bientôt

Opium

"Blaise Cacramp" a écrit :

Selon : Bonjour ou bonsoir
Au pif
J'ai changé l'ordre de certaines lignes et utilisé Me.Undo

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
ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0 Then
MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod =
""" & Me.Gencod & """")
Cancel = True
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
ElseIf Me!Gencod = 0 Then
MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
vbCritical
Me.Undo
DoCmd.GoToRecord , , acNewRec
Cancel = True
End If
Exit Sub
err_form_beforeupdate:
MsgBox "cet enregistrement n'est pas valable"
Me.Undo
Me!Gencod.SetFocus
Gencod.SelStart = 20



Cdt, Blaise
---- ---- ----


"Opium" a écrit dans le message de news:

> bonsoir,
>
> j'ai un petit frmulaire "titre" avec un champ "gencod"
> j'y ai mis quelques conditions en vba en beforeupdate pour valider la
> saisie
> du champ
> 20 caractères obligatoire,
> et si doublon MsgBox "Titre déjà présent dans " + DLookup("liasse",
> "titre", "gencod = """ & Me.Gencod & """")
> cela fonctionne assez bien. j'ai mon message avec le doubon retrouvé dans
> la
> bonne liasse mais aprés ccess me met un message impossible d'atteindre
> l'enregistrement spécifié
> voici mon code au complet
> Private Sub Form_BeforeUpdate(Cancel As Integer)
> On Error GoTo err_form_beforeupdate
> If Len(Me.Gencod) < 20 Then
> Cancel = True
> MsgBox ("vous devez rentrer 20 caractères, vous n'en avez tapé que " &
> Len(Me.Gencod))
> Me!Gencod.SetFocus
> ElseIf DCount("gencod", "titre", "gencod =""" & Me!Gencod & """") > 0
> Then
> MsgBox "Titre déjà présent dans " + DLookup("liasse", "titre", "gencod
> = """ & Me.Gencod & """")
> Cancel = True
> 'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
> ElseIf Me!Gencod = 0 Then
> MsgBox "valeur nulle interdite, cet enregistrement sera supprimé",
> vbCritical
> Cancel = True
> DoCmd.GoToRecord , , acNewRec
> End If
> Exit Sub
> err_form_beforeupdate:
> MsgBox "cet enregistrement n'est pas valable"
> DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
> Me!Gencod.SetFocus
> Gencod.SelStart = 20
>
> OU PUIS JE ANNULER CE MESSAGE SVP car il est redondant avec mon info sur
> le
> doublon avec identification de la liasse
> Merci d'avance
> et merci encore à 3stone pour m'avoir mis sur la piste!!!
> Opium