OVH Cloud OVH Cloud

Tester l'existence d'une requête

2 réponses
Avatar
Decaplan
Bonjour,

Je souahite tester l'existence d'une requête dans une base de données. Pour
ce faire, je procède ainsi (je suis dans une boucle):


Do until....
....
....
On Error GoTo Gestion_err
Set r = bdd.QueryDefs(nom_requête)
r.Close
DoCmd.DeleteObject acQuery, nom_requête
Gestion_err:
On Error GoTo 0
....
....



Au premier passage dans la boucle, si la requête n'existe pas, le saut vers
Gestion_err se produit bien, au second passage si la requête n'existe pas
(il y a donc erreur), le saut saut vers Gest_err ne se produit plus et le
programme s'arrête sur l'erreur.
Quelle explication ?

2 réponses

Avatar
Raymond
Bonsoir.

ce qui est normal, vu ton On Error GoTo 0, qui pourrait laisser penser que
le programme redémarre à la ligne 0 de le procédure. Il n'en est rien, On
Error GoTo 0 Invalide dans la procédure en cours tout gestionnaire d'erreurs
validé. Ce qui veut dire qu'il invalide le On Error GoTo Gestion_err.
en général la fin du gestionnaire d'erreurs se termine par Resume Next pour
reprendre le déroulement après la ligne qui a provoqué l'erreur ou par un
exit sub/Function.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Decaplan" a écrit dans le message de
news:bmc53b$hi1$
Bonjour,

Je souahite tester l'existence d'une requête dans une base de données.
Pour

ce faire, je procède ainsi (je suis dans une boucle):


Do until....
....
....
On Error GoTo Gestion_err
Set r = bdd.QueryDefs(nom_requête)
r.Close
DoCmd.DeleteObject acQuery, nom_requête
Gestion_err:
On Error GoTo 0
....
....



Au premier passage dans la boucle, si la requête n'existe pas, le saut
vers

Gestion_err se produit bien, au second passage si la requête n'existe pas
(il y a donc erreur), le saut saut vers Gest_err ne se produit plus et le
programme s'arrête sur l'erreur.
Quelle explication ?





Avatar
Decaplan
Merci.

Decaplan
"Raymond" a écrit dans le message de
news:
Bonsoir.

ce qui est normal, vu ton On Error GoTo 0, qui pourrait laisser penser que
le programme redémarre à la ligne 0 de le procédure. Il n'en est rien, On
Error GoTo 0 Invalide dans la procédure en cours tout gestionnaire
d'erreurs

validé. Ce qui veut dire qu'il invalide le On Error GoTo Gestion_err.
en général la fin du gestionnaire d'erreurs se termine par Resume Next
pour

reprendre le déroulement après la ligne qui a provoqué l'erreur ou par un
exit sub/Function.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Decaplan" a écrit dans le message de
news:bmc53b$hi1$
Bonjour,

Je souahite tester l'existence d'une requête dans une base de données.
Pour

ce faire, je procède ainsi (je suis dans une boucle):


Do until....
....
....
On Error GoTo Gestion_err
Set r = bdd.QueryDefs(nom_requête)
r.Close
DoCmd.DeleteObject acQuery, nom_requête
Gestion_err:
On Error GoTo 0
....
....



Au premier passage dans la boucle, si la requête n'existe pas, le saut
vers

Gestion_err se produit bien, au second passage si la requête n'existe
pas


(il y a donc erreur), le saut saut vers Gest_err ne se produit plus et
le


programme s'arrête sur l'erreur.
Quelle explication ?