Hello,
En reprenant le code source de duplication d'enregistrement en cascade je me heurte à une protection contre les doublons de clé primaire.
En mode debug cela bloque à la ligne .update
Voici mon code :
Private Sub DupliquePrestation()
Dim rstPrestation As DAO.Recordset, rstPrestation2 As DAO.Recordset
Dim Db As DAO.Database, fld As DAO.Field
Dim sql As String
Dim id As Long
Dim idPrestation As Long
Set Db = CurrentDb
'Ouvre le recordset où sera prélevé la prestation
Set rstPrestation = Db.OpenRecordset("SELECT IndexDP FROM Prestations WHERE IndexDP=1219")
'Verifie que la Prestation N°dePrestation existe
If rstPrestation.EOF Then Exit Sub
'ouvre le recordset où sera ajouté le Prestation
Set rstPrestation2 = Db.OpenRecordset("Prestations")
'Duplique la Prestation
With rstPrestation2
idPrestation = .Fields("IndexDP")
.AddNew
'duplique les champs
For Each fld In rstPrestation.Fields
.Fields(fld.Name) = fld.Value
Next
id = .Fields("IndexDP")
.Update
'se positionne sur l'enregistrement ajouté
End With
'Duplique les lignes
sql = "insert into DiffusionSurPrestation ([N°de prestation],Interlocuteur) SELECT " & _
id & ", Interlocuteur FROM DiffusionSurPrestation WHERE [N°de prestation]=" & idPrestation
Db.Execute sql
End Sub
Merci de votre aide !
BlueBird
Partager