Access VBA - gestion d'erreur

Bonjour,

J'essaye (en vain) de faire fonctionner un bout de code et ô malheur, on peut dire que ça ne marche pas vraiment comme je veux.

L'idée c'est de créer un nouveau document dans le formulaire NewCode en entrant un Type et un numéro
Je génère un CodeConcaténé unique dans un champ qui n'accepte pas les doublons

1- si le CodeConcaténé est unique (nouveau document) alors j'ouvre le formulaire Document avec les infos rentrées

2 - si le CodeConcaténé existe déja, je signale qu'on a à faire à un doublon puis j'efface la ligne qui vient d'être créée

Voilà ce que j'ai écrit et ça ne fonctionne pas quand je crée un doublon : la ligne se crée, le CodeConcaténé non et mon formulaire document s'ouvre sur mon doublon
Problème de gestion d'erreur ?

Merci d'avance pour votre aide

Private Commande3_Click()
DoCmd.SetWarnings False
On Error GoTo GestionErreur
Dim position As Integer
position = Me.Indexdoc
DoCmd.Close acForm, "NewCode"
DoCmd.RunSQL "UPDATE Documents SET CodeConcaténé = [Type] & [numero]"
DoCmd.OpenForm "Documents", acNormal, , "[Indexdoc]=" & position
Exit Sub

GestionErreur:
MsgBox "Attention doublon - enregistrement non effectué"
RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
End Sub

2 réponses

  1. Contributeur
    bonsoir,

    c'est qu'aucune ligne ne génère d'erreur.
    Rien ne le gène puisque la ligne est crée...

    eric
    0
    1. Private Commande3_Click()
      DoCmd.SetWarnings False
      On Error GoTo GestionErreur
      Dim position As Integer
      position = Me.Indexdoc
      DoCmd.Close acForm, "NewCode"
      DoCmd.RunSQL "UPDATE Documents SET CodeConcaténé = [Type] & [numero]"
      DoCmd.OpenForm "Documents", acNormal, , "[Indexdoc]=" & position
      Exit Sub
      GestionErreur:
      MsgBox "Attention doublon - enregistrement non effectué"
      RunCommand acCmdDeleteRecord
      DoCmd.SetWarnings True
      End Sub
      


      Bonjour riri2112,
      Ajouter une condition avant la création est le plus utilisé.
      Je pense avant la ligne de mise à jour .. vérifier si la concaténation des champs [Type] & [numero] correspond à un enregistrement de [CodeConcaténé]

      Valà
      Eric
      -1