erreur redondante

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Blaise Cacramp
Le #20132361
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"
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


Opium
Le #20141331
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"
> 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





Opium
Le #20141321
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"
> 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





Publicité
Poster une réponse
Anonyme