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 46 47
| Private Sub Form_BeforeInsert(Cancel As Integer)
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
cancel = true
End If
End Sub |
Partager