Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gérer les erreurs dans un enchainement de fonctions

3 réponses
Avatar
Valérie
Bonjour,
J'ai une procédure vba qui enchaine plusieurs fonctions, chacune d'elle
mettant à jour de nombreuses tables à l'aide de boucles. Pour tenter de
resumer, je dirais que j'enregistre dans une table des lignes de façon
hierarchique grace à un code "liaison" qui rappelle le numéro
d'enregistrement "pere". Si au milieu de tout cet enchainement j'ai une
erreur, la procédure va s'arreter en cours de route alors qu'une partie de
mes enregistrements aura pu etre deja validée dans ma table finale, j'aurai
le debut de ma "hierarchie" sans la fin car une erreur est survenue. Comment
dire : si une erreur survient j'annule tout ce qui a pu etre fait depuis le
debut ? Je precise que la table finale dans laquelle j'enregistre est une
table liée. Merci pour vos réponses !

3 réponses

Avatar
Pierre Fauconnier
Bonjour

Regarde du côté des transactions
en ADO comme en DAO, tu peux gérer les méthodes
BeginTransaction, committransaction et rollbacktransaction
Tu utilises begintransaction avant tes fonctions
committransaction à la fin de la chaîne de tes fonctions si tout est ok.
Si erreur, tu uilises rollbacktransaction qui permet d'annuler tout ce qui a
été fait depuis begintransaction

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Valérie" a écrit dans le message de news:
42958f93$0$3129$
Bonjour,
J'ai une procédure vba qui enchaine plusieurs fonctions, chacune d'elle
mettant à jour de nombreuses tables à l'aide de boucles. Pour tenter de
resumer, je dirais que j'enregistre dans une table des lignes de façon
hierarchique grace à un code "liaison" qui rappelle le numéro
d'enregistrement "pere". Si au milieu de tout cet enchainement j'ai une
erreur, la procédure va s'arreter en cours de route alors qu'une partie de
mes enregistrements aura pu etre deja validée dans ma table finale,
j'aurai le debut de ma "hierarchie" sans la fin car une erreur est
survenue. Comment dire : si une erreur survient j'annule tout ce qui a pu
etre fait depuis le debut ? Je precise que la table finale dans laquelle
j'enregistre est une table liée. Merci pour vos réponses !



Avatar
Pierre CFI [mvp]
bonjour
il te faut gérer les transactions
regarde l'aide vba à BeginTrans, il y a des exemples qui t'aideront

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"Valérie" a écrit dans le message de news: 42958f93$0$3129$
Bonjour,
J'ai une procédure vba qui enchaine plusieurs fonctions, chacune d'elle mettant à jour de nombreuses tables à l'aide de boucles.
Pour tenter de resumer, je dirais que j'enregistre dans une table des lignes de façon hierarchique grace à un code "liaison" qui
rappelle le numéro d'enregistrement "pere". Si au milieu de tout cet enchainement j'ai une erreur, la procédure va s'arreter en
cours de route alors qu'une partie de mes enregistrements aura pu etre deja validée dans ma table finale, j'aurai le debut de ma
"hierarchie" sans la fin car une erreur est survenue. Comment dire : si une erreur survient j'annule tout ce qui a pu etre fait
depuis le debut ? Je precise que la table finale dans laquelle j'enregistre est une table liée. Merci pour vos réponses !



Avatar
Valérie
Merci pour vos réponses rapides. Je vais voir cette méthode.