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
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
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
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" <Opium@discussions.microsoft.com> a écrit dans le message de news:
6C1ED7B8-91E1-48AF-8685-E9BA05C558D0@microsoft.com...
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
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
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
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" <Opium@discussions.microsoft.com> a écrit dans le message de news:
6C1ED7B8-91E1-48AF-8685-E9BA05C558D0@microsoft.com...
> 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
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
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
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" <Opium@discussions.microsoft.com> a écrit dans le message de news:
6C1ED7B8-91E1-48AF-8685-E9BA05C558D0@microsoft.com...
> 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
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