Bonjour,
J'ai un petit problème qui ne devrait pas être bien difficile à solutionner pour un connaisseur.
Sur l'évènement Avant Mise à jour de mon formulaire, j'exécute, en VBA, un code qui me permet de vérifier si les données qu'on veut ajouter son déjà présente dans la table afin de ne pas avoir de doublons.
Cela fonctionne pas mal, si c'est pas présent, ça ajoute les données. Si c'est présent ça affiche un message mais il insère malgré tout les données. Après l'affichage du message, il faudrait stopper l'insertion et ne pas la faire.
J'ai essayé plusieurs choses mais cela ne fonctionne pas.
Voici le code : (certaines MsgBox disparaitront un fois que tout est au point)
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Dim sql As String Dim rs As DAO.Recordset Dim resultat As Long 'MsgBox (Me.NomFamille.Value) sql = "SELECT Auteurs.RéfAuteur " & _ "FROM Auteurs " & _ "WHERE Auteurs.NomFamille = '" & Me.NomFamille.Value & "' " & _ "AND Auteurs.Prénom = '" & Me.Prénom.Value & "' ;" ' Visualisation de l'ordre SQL ' MsgBox (sql) Set rs = CurrentDb.OpenRecordset(sql) ' On vérifie si on a déja la valeur dans la table. Si c'est 0, on ne l'a pas aussi nom elle est déja présente If rs.EOF Then resultat = 0 Else rs.MoveLast resultat = rs.RecordCount End If ' On met le nombre d'enregistrement déja identique dans la variable résultat resultat = rs.RecordCount MsgBox ("Résultat : " & resultat) ' Si le résultat est 0, l'auteur n'existe pas donc on l'insère sinon on arrête le traitement. If resultat = 0 Then ' On insère les données (on laisse faire access car il le fait par défaut MsgBox ("L'auteur n'existe pas -----> Insertion") Else 'message MsgBox ("L'auteur " & Prénom.Value & " " & NomFamille.Value & " existe déja.") '******************* Il faudrait bloquer l'ajout ici ' DoCmd.RunCommand acCmdUndo End If
Partager