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

Reprendre le contrôle sur erreur index unique

2 réponses
Avatar
André Houssonloge
Dans un formulaire, j'ai un bouton et derrière ce bouton sur l'événement
Clic, j'ai ce code.
Si je crée un index Unique sur le n° SignalétiqueElève et la date de
commande pour interdire qu'un même élève aie deux commandes pour la même
date.

L'application plante. Je ne sais pas comment et où placer le code "On error"
pour avertir l'encodeuret annuler la comande ou me retrouver à l'endroit de
départ?

Merci si vous pouvez m'aider.

André Houssonloge


Private Sub InsertNewCommande_Click()
Drapeau = True
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
' Index sans doublon sur le numéro de SE et la date de commande
'On Error GoTo PasDeCommandeDouble
Me.DateCommande.SetFocus
Me.Dirty = True
Me.Requery
End If

'PasDeCommandeDouble:
' Temp = MsgBox("Le logiciel n'autorise pas les commandes pour une même
personne à la même date.", 48, "AHIS - LOGICIELS")
' Resume PasDeCommandeDouble

'Ouverture du formulaire "FrmTableauDetailsCommande"
On Error GoTo Err_Commande105_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "FrmTableauDetailsCommande"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![FrmTableauDetailsCommande].Requery

Exit_Commande105_Click:
Exit Sub

Err_Commande105_Click:
MsgBox Err.Description
Resume Exit_Commande105_Click

'
End Sub

2 réponses

Avatar
Stéphane Lavergne
Bonjour,

A première vue, je ne trouve pas spécialement d'erreur dans ce code.
Par contre, tu peux essayer de mettre 1 point d'arrêt dès le début de la
procédure
(curseur sur la ligne drapeau=true puis F9)
En lançant le programme, le code s'arrêtera sur cette ligne, il suffit de
continuer pas à pas (F8) pour vérifier d'où viens le problème.
Si tu trouves la ligne d'où vient l'erreur, tu peux soit la corriger :) soit
mettre à la ligne précédente 1 gestion d'erreur On Error.

Cordialement,
Stéphane Lavergne

"André Houssonloge" a écrit dans le message de
news:
Dans un formulaire, j'ai un bouton et derrière ce bouton sur l'événement
Clic, j'ai ce code.
Si je crée un index Unique sur le n° SignalétiqueElève et la date de
commande pour interdire qu'un même élève aie deux commandes pour la même
date.

L'application plante. Je ne sais pas comment et où placer le code "On
error"

pour avertir l'encodeuret annuler la comande ou me retrouver à l'endroit
de

départ?

Merci si vous pouvez m'aider.

André Houssonloge


Private Sub InsertNewCommande_Click()
Drapeau = True
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
' Index sans doublon sur le numéro de SE et la date de commande
'On Error GoTo PasDeCommandeDouble
Me.DateCommande.SetFocus
Me.Dirty = True
Me.Requery
End If

'PasDeCommandeDouble:
' Temp = MsgBox("Le logiciel n'autorise pas les commandes pour une même
personne à la même date.", 48, "AHIS - LOGICIELS")
' Resume PasDeCommandeDouble

'Ouverture du formulaire "FrmTableauDetailsCommande"
On Error GoTo Err_Commande105_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "FrmTableauDetailsCommande"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![FrmTableauDetailsCommande].Requery

Exit_Commande105_Click:
Exit Sub

Err_Commande105_Click:
MsgBox Err.Description
Resume Exit_Commande105_Click

'
End Sub




Avatar
André Houssonloge
Merci, j'essaye cela demain

André Houssonloge

"Stéphane Lavergne" a écrit dans le message de news:
#ox6$
Bonjour,

A première vue, je ne trouve pas spécialement d'erreur dans ce code.
Par contre, tu peux essayer de mettre 1 point d'arrêt dès le début de la
procédure
(curseur sur la ligne drapeau=true puis F9)
En lançant le programme, le code s'arrêtera sur cette ligne, il suffit de
continuer pas à pas (F8) pour vérifier d'où viens le problème.
Si tu trouves la ligne d'où vient l'erreur, tu peux soit la corriger :)
soit

mettre à la ligne précédente 1 gestion d'erreur On Error.

Cordialement,
Stéphane Lavergne

"André Houssonloge" a écrit dans le message de
news:
Dans un formulaire, j'ai un bouton et derrière ce bouton sur l'événement
Clic, j'ai ce code.
Si je crée un index Unique sur le n° SignalétiqueElève et la date de
commande pour interdire qu'un même élève aie deux commandes pour la même
date.

L'application plante. Je ne sais pas comment et où placer le code "On
error"

pour avertir l'encodeuret annuler la comande ou me retrouver à l'endroit
de

départ?

Merci si vous pouvez m'aider.

André Houssonloge


Private Sub InsertNewCommande_Click()
Drapeau = True
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
' Index sans doublon sur le numéro de SE et la date de commande
'On Error GoTo PasDeCommandeDouble
Me.DateCommande.SetFocus
Me.Dirty = True
Me.Requery
End If

'PasDeCommandeDouble:
' Temp = MsgBox("Le logiciel n'autorise pas les commandes pour une
même


personne à la même date.", 48, "AHIS - LOGICIELS")
' Resume PasDeCommandeDouble

'Ouverture du formulaire "FrmTableauDetailsCommande"
On Error GoTo Err_Commande105_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "FrmTableauDetailsCommande"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![FrmTableauDetailsCommande].Requery

Exit_Commande105_Click:
Exit Sub

Err_Commande105_Click:
MsgBox Err.Description
Resume Exit_Commande105_Click

'
End Sub