OVH Cloud OVH Cloud

Begintrans - Aidez moi SVP !?

10 réponses
Avatar
Bruno MAZÉPA
Bonjour à tous,
J'ai de gros soucis avec les transactions !
J'ai beau lire l'aide d'Access 2000, chercher sur Internet,...
Je n'arrive pas à appliquer la méthode pour ma base !
J'ai un formulaire principal, dans lequel se trouve un sous formulaire.
Le "RecordSource" de ce sous-formulaire est une requête.
Comment faire pour créer une transaction, afin de valider ou non les
modifications
apportées à mes champs ?

Le Code de mon Sous-formulaire est :
Private Sub Form_Open(Cancel As Integer)
Set wrkDefault = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tbl SaisieDepFour")
' Démarre la transaction
wrkDefault.BeginTrans
End Sub

Sur mon formulaire principal, j'ai 2 boutons (Annuler - Valider)
Private Sub BnAnnuler_Click()
wrkDefault.Rollback
DoCmd.Close
End Sub

Mais lorsque je clique sur annuler, toutes les modifications effectuées
sont quand même enregistrées !?

Au secoooour...

10 réponses

Avatar
J-Pierre
Bonjour,

Il me semble que tu n'utilises pas l'Option Explicit.

Si c'est le cas, rajoute une définition globale de wrkDefault (avant ta première procedure).

J-Pierre

"Bruno MAZÉPA" <ReplyToNewsGroup> a écrit dans le message de news:
Bonjour à tous,
J'ai de gros soucis avec les transactions !
J'ai beau lire l'aide d'Access 2000, chercher sur Internet,...
Je n'arrive pas à appliquer la méthode pour ma base !
J'ai un formulaire principal, dans lequel se trouve un sous formulaire.
Le "RecordSource" de ce sous-formulaire est une requête.
Comment faire pour créer une transaction, afin de valider ou non les
modifications
apportées à mes champs ?

Le Code de mon Sous-formulaire est :
Private Sub Form_Open(Cancel As Integer)
Set wrkDefault = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tbl SaisieDepFour")
' Démarre la transaction
wrkDefault.BeginTrans
End Sub

Sur mon formulaire principal, j'ai 2 boutons (Annuler - Valider)
Private Sub BnAnnuler_Click()
wrkDefault.Rollback
DoCmd.Close
End Sub

Mais lorsque je clique sur annuler, toutes les modifications effectuées
sont quand même enregistrées !?

Au secoooour...




Avatar
michel
bonjour
Cela ne marchera pas
Les transactions te permettent d'annuler les modifications apportees par TON
code pas celles de l'utilisateur
HTH
Michel
"Bruno MAZÉPA" <ReplyToNewsGroup> a écrit dans le message de news:

Bonjour à tous,
J'ai de gros soucis avec les transactions !
J'ai beau lire l'aide d'Access 2000, chercher sur Internet,...
Je n'arrive pas à appliquer la méthode pour ma base !
J'ai un formulaire principal, dans lequel se trouve un sous formulaire.
Le "RecordSource" de ce sous-formulaire est une requête.
Comment faire pour créer une transaction, afin de valider ou non les
modifications
apportées à mes champs ?

Le Code de mon Sous-formulaire est :
Private Sub Form_Open(Cancel As Integer)
Set wrkDefault = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tbl SaisieDepFour")
' Démarre la transaction
wrkDefault.BeginTrans
End Sub

Sur mon formulaire principal, j'ai 2 boutons (Annuler - Valider)
Private Sub BnAnnuler_Click()
wrkDefault.Rollback
DoCmd.Close
End Sub

Mais lorsque je clique sur annuler, toutes les modifications effectuées
sont quand même enregistrées !?

Au secoooour...




Avatar
J-Pierre
Alors, tu peux faire un me.undo

"michel" a écrit dans le message de news:
bonjour
Cela ne marchera pas
Les transactions te permettent d'annuler les modifications apportees par TON
code pas celles de l'utilisateur
HTH
Michel
"Bruno MAZÉPA" <ReplyToNewsGroup> a écrit dans le message de news:

Bonjour à tous,
J'ai de gros soucis avec les transactions !
J'ai beau lire l'aide d'Access 2000, chercher sur Internet,...
Je n'arrive pas à appliquer la méthode pour ma base !
J'ai un formulaire principal, dans lequel se trouve un sous formulaire.
Le "RecordSource" de ce sous-formulaire est une requête.
Comment faire pour créer une transaction, afin de valider ou non les
modifications
apportées à mes champs ?

Le Code de mon Sous-formulaire est :
Private Sub Form_Open(Cancel As Integer)
Set wrkDefault = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tbl SaisieDepFour")
' Démarre la transaction
wrkDefault.BeginTrans
End Sub

Sur mon formulaire principal, j'ai 2 boutons (Annuler - Valider)
Private Sub BnAnnuler_Click()
wrkDefault.Rollback
DoCmd.Close
End Sub

Mais lorsque je clique sur annuler, toutes les modifications effectuées
sont quand même enregistrées !?

Au secoooour...








Avatar
Bruno MAZÉPA
Bonjour Michel,
Je ne suis pas d'accord, si on regarde l'aide d'Access
Il est dit (je l'ai vu également sur Internet) :
"En général, les transactions sont utilisées pour préserver l'intégrité des
données lorsqu'il vous faut mettre à jour des enregistrements dans une ou
plusieurs tables en ayant la certitude que les modifications sont effectuées
dans toutes les tables (modifications entérinées) ou sont annulées
(révocation)."
Il doit donc y avoir un moyen !?
--
Cordialement.

"michel" a écrit dans le message de
news:
bonjour
Cela ne marchera pas
Les transactions te permettent d'annuler les modifications apportees par
TON

code pas celles de l'utilisateur
HTH
Michel
"Bruno MAZÉPA" <ReplyToNewsGroup> a écrit dans le message de news:

Bonjour à tous,
J'ai de gros soucis avec les transactions !
J'ai beau lire l'aide d'Access 2000, chercher sur Internet,...
Je n'arrive pas à appliquer la méthode pour ma base !
J'ai un formulaire principal, dans lequel se trouve un sous formulaire.
Le "RecordSource" de ce sous-formulaire est une requête.
Comment faire pour créer une transaction, afin de valider ou non les
modifications
apportées à mes champs ?

Le Code de mon Sous-formulaire est :
Private Sub Form_Open(Cancel As Integer)
Set wrkDefault = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tbl SaisieDepFour")
' Démarre la transaction
wrkDefault.BeginTrans
End Sub

Sur mon formulaire principal, j'ai 2 boutons (Annuler - Valider)
Private Sub BnAnnuler_Click()
wrkDefault.Rollback
DoCmd.Close
End Sub

Mais lorsque je clique sur annuler, toutes les modifications effectuées
sont quand même enregistrées !?

Au secoooour...








Avatar
3stone
Salut,

"Bruno MAZÉPA"
Je ne suis pas d'accord, si on regarde l'aide d'Access



Regarde ce post de Michel Walsh...

<news:



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
J-Pierre
:-) Message d'erreur quand j'essaie d'extraire le post.......

"3stone" a écrit dans le message de news:3fbb6af8$0$21393$
Salut,

"Bruno MAZÉPA"
Je ne suis pas d'accord, si on regarde l'aide d'Access



Regarde ce post de Michel Walsh...

<news:



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------







Avatar
3stone
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&frame=right&th93cc13d9fe1cb5&seekm=eYe5MENMDHA
.2008%40TK2MSFTNGP10.phx.gbl#link7
Avatar
J-Pierre
Ca roule, merci

"3stone" a écrit dans le message de news:3fbb739c$0$21383$

http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&frame=right&th93cc13d9fe1cb5&seekm=eYe5MENMDHA
.2008%40TK2MSFTNGP10.phx.gbl#link7





Avatar
Rv
----- 3stone a écrit : ----



http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&frame=right&th93cc13d9fe1cb5&seekm=eYe5MENMDH
..2008%40TK2MSFTNGP10.phx.gbl#link
Salut


Du même auteur, je pensais que l'on pouvais aussi renvoyer vers :
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&threadm=OKsC%24rvPDHA.304%40tk2msftngp13.phx.gb

A

Rv

Avatar
3stone
Salut,

"Rv"
Du même auteur...



Bien vu... je n'était pas retombé dessus :-)


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------