OVH Cloud OVH Cloud

supprimer une table vérouillée

4 réponses
Avatar
ifergane thierry
Bonjour à tous,

Voilà je rencontre un petit problème.
J'ai créé un état qui se base sur table tamporaire. Celle ci est créée juste
avant l'ouverture de l'état puis est censée se supprimer sur l'évenement
"sur fermeture" de mon état. Le problème c'est qu'avec la commande :
DOCMD.delete object actable, "MATABLE" j'ai le message suivant : "le moteur
de base de données n'a pas pu vérouiller la table "MATABLE" car elle est
déjà utilisée par une autre personne ou un autre processus".

Comment pourrais-je faire ?

Merci par avance

4 réponses

Avatar
Raymond [mvp]
Bonjour.

le dernier événement qu'on peut tester lors de la fermeture d'un état est
Report_Deactivate(), et à ce moment-là le recordsource est encore ouvert et
bloque la table. On ne peut pas non plus mettre "" dans le recordsource car
il ne peut pas être modifié si l'impression est commencée ou non terminée.
je ne vois que la solution de supprimer dans le formulaire qui a lancé
l'état après déchargement de l'état.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ifergane thierry" <tifergane@(pas de spam)wanadoo.fr> a écrit dans le
message de news:
Bonjour à tous,

Voilà je rencontre un petit problème.
J'ai créé un état qui se base sur table tamporaire. Celle ci est créée
juste

avant l'ouverture de l'état puis est censée se supprimer sur l'évenement
"sur fermeture" de mon état. Le problème c'est qu'avec la commande :
DOCMD.delete object actable, "MATABLE" j'ai le message suivant : "le
moteur

de base de données n'a pas pu vérouiller la table "MATABLE" car elle est
déjà utilisée par une autre personne ou un autre processus".

Comment pourrais-je faire ?

Merci par avance




Avatar
ludo6625
Essais de le mettre sur une autre action quand ton état
est fermé. Tu peut même le mettre sur un timer d'un autre
formulaire. Car à la fonction fermer ton état est tjs
ouvert. Enfin je pense que ça peut venir de ça mais je ne
suis pas un grand expert.

-----Message d'origine-----
Bonjour à tous,

Voilà je rencontre un petit problème.
J'ai créé un état qui se base sur table tamporaire.
Celle ci est créée juste

avant l'ouverture de l'état puis est censée se supprimer
sur l'évenement

"sur fermeture" de mon état. Le problème c'est qu'avec
la commande :

DOCMD.delete object actable, "MATABLE" j'ai le message
suivant : "le moteur

de base de données n'a pas pu vérouiller la
table "MATABLE" car elle est

déjà utilisée par une autre personne ou un autre
processus".


Comment pourrais-je faire ?

Merci par avance


.



Avatar
Xavier HUE
Bonjour Thierry,

Perso je n'aime pas trop les tables créées par des
requêtes, et encore moins quand celle-ci sont la source
d'état ou formulaire. Mais bon, chacun ses goûts ;-)

Le message d'erreur me semble normale. L'état n'a sans
doute pas libéré la table au moment où tu exécutes la
suppression.

Tu peux contourner en:
- Créant ta table de façon définitive
- Modifiant ta requête création de table en requête
ajout.

Lors de l'ouverture de ton état, tu supprimes les
enregistrement par un DELETE SQL, puis tu exécutes ta
requête ajout.

Une autre solution consisterait à ouvrir l'état en mode
aperçu et modal. La suppression de la table pourrait dans
ce cas se faire juste après le DoCmd.OpenReport.

Espérant t'avoir aidé.
Cordialement.
Avatar
ifergane thierry
Merci à tous pour votre aide

pour info Xavier moi non plus je n'aime pas passer par ce genre de chose
(créer une table temporaire) cependant la requête initiale qui devait
alimenter mon état telle qu'elle était conçue(avec des sous requêtes) ne me
permettait pas de faire des totaux en pied de groupe dans l'état.


Merci encore