Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2011, 11h32   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 275
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 275
Points : 58
Points : 58
Par défaut probleme avec sub cancelupdate

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 !!!
__________________
Merci de votre aide
kgb1917 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h14.


 
 
 
 
Partenaires

Hébergement Web