Bonjour,
J’ai un souci avec un bout de code tiré de l’aide d’Access que je n’arrive pas à "adapter"

.
Code complet de l’aide en ligne :
Code :
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
| Sub CancelUpdateX2()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim strFirst As String
Dim strLast As String
Dim intCommand As Integer
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = dbsNorthwind.OpenRecordset( _
"Employees", dbOpenDynaset)
With rstEmployees
strFirst = !FirstName
strLast = !LastName
.Edit
!FirstName = "Cora"
!LastName = "Edmonds"
intCommand = MsgBox("Replace current name with " & _
!FirstName & " " & !LastName & "?", vbYesNo)
If intCommand = vbYes Then
.Update
MsgBox "Record modified."
' Restore data because this is a demonstration.
.Bookmark = .LastModified
.Edit
!FirstName = strFirst
!LastName = strLast
.Update
Else
.CancelUpdate
MsgBox "Record not modified."
End If
.Close
End With
dbsNorthwind.Close
End Sub |
J’ai un formulaire (Frm1) sur lequel se trouve un sous formulaire (SFrm). A partir de ce sous formulaire, j’ouvre un autre formulaire (Frm2) sur l’enregistrement sélectionné.
Dans mon cas, mon recordset est « «rempli » à l’ouverture de Frm2 (j’en ai besoin pour d’autres traitements) et le code de la sub est le suivant :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dim intCommand As Integer
With Monrecordset
.Edit
.Fields(“MonChamp”) = Me.MonControl
intCommand = MsgBox("Replace blablabla ?", vbYesNo)
If intCommand = vbYes Then
.Update
MsgBox "Record modified."
Else
.CancelUpdate
MsgBox "Record not modified."
End If
End With |
Lorsque j’appelle cette sub de Frm2, j’ai soit un conflit d’écriture lors de la fermeture du formulaire si je fais un update de l’enregistrement, soit une mise à jour malgré tout de mes champs si je passe par cancelupdate.
J’ai bien regardé ce qu’il y a dans la FAQ sur le conflit d’écriture (
ici) mais je ne pense pas que cela puisse s’appliquer à mon cas puisque je veux pouvoir annuler les modifs de l’enregistrement.
Je n’y comprends plus rien !!!