[Access/VBA] Lancer du code au démarrage puis fermer la base.

Lancer du code au démarrage puis fermer la base. [Access/VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 22-06-2004 à 14:55:54    

Salut,
 
J'ai besoin de lancer sous Access un petit morceau de code, basé sur un traitement type Base De Données, puis de fermer automatiquement Access.
 
J'ai pensé faire ca avec une macro qui se lance automatiquement au démarrage (Autoexec), qui lance un morceau de code, puis qui contienne une clause Quit.
 
Mais ca ne marche pas, j'obtiens un message derreur me disant que ma base de données est introuvable.
 
Comment faire?


Message édité par Yoyo@ le 22-06-2004 à 15:27:09
Reply

Marsh Posté le 22-06-2004 à 14:55:54   

Reply

Marsh Posté le 22-06-2004 à 16:10:44    

Cree une sub de nom "autoexec" (Access 97) ou "application_onload" (Access 2000)
 
PS: Pour Access 2000 je ne suis plus sûr que c'est bien ce nom.
 
PS²: Dans tous les cas, l'utilisateur peut désactiver l'éxécution automatique de la macro de démarrage (option sécurité/macros)

Reply

Marsh Posté le 22-06-2004 à 16:13:07    

A priori sous 2000 c'est plutôt : Form_Load
 
Mais je trouve ça chelou, logiquement ça ne se lancera que lorsque tu ouvriras la form en question... Essaie quand même Application_Load
 
http://www.tek-tips.com/gfaqs.cfm/ [...] 5/fid/4998

Reply

Marsh Posté le 22-06-2004 à 16:24:29    

Oui, ca marche aussi avec un macro autoexec, mais mon soucis est surtout de fermer l'appli une fois mon code exécuté... Quil ne reste plus rien a l'écran quoi.
 

Reply

Marsh Posté le 22-06-2004 à 16:30:46    

quit ?
 
ou application.quit
 
Je sais plus, je crois qu'il faut passer par l'objet application.

Reply

Marsh Posté le 22-06-2004 à 16:34:57    

--> Ajuna: Affirmatif, c'est l'objet application qui permet de quitter tout.
 
--> Yoyo@: Attention! Tu ouvres Access, ton code se lance et quitte Access. Il faut pouvoir interrompre la macro, sinon tu ne peux plus ouvrir ta base !


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 22-06-2004 à 16:37:19    

JihemAir a écrit :

--> Ajuna: Affirmatif, c'est l'objet application qui permet de quitter tout.
 
--> Yoyo@: Attention! Tu ouvres Access, ton code se lance et quitte Access. Il faut pouvoir interrompre la macro, sinon tu ne peux plus ouvrir ta base !


Si, il suffit de démarrer Access sans base de données. Onglet sécurité, désactiver toutes les macros, puis ouvrir la base ;)

Reply

Marsh Posté le 23-06-2004 à 00:56:32    

Bon, écoutez, si je mets un Application.Quit dans le code s'exécutant, j'obtiens comme précécemment une erreur du type :
 
Cannot find the file 'C:\Documents and Settings\Administrator\Desktop\CallNodes\copy.mdb' (or one of its components). Make sure the path and filename are correct and that all required libraries are available.
 
Je ne comprends pas...
 
Par contre, si j'enleve le Application.quit, tout marche bien...mais la fenetre Access ne se ferme pas apres exécution (normal...)

Reply

Marsh Posté le 23-06-2004 à 09:28:30    

Je résume donc la situation:
 
Je créée une base Access .mdb.
 
A l'intérieur de celle la, je crée une unique macro au doux nom de AutoExec, et avec comme unique Action un "Quit" (qui a pour effet d'appeler Application.Quit).
 
Alors, quand je clique pour ouvrir mon .mdb, le tout se ferme bien, mais avec le message d'erreur dont je vous parle plus haut...
 
Par contre, si je me contente d'exécuter la macro de maniere indépendante, ca ferme bien ma base sans probleme...
 
Voila.
Que faire?

Reply

Marsh Posté le 23-06-2004 à 10:07:04    

Essaie la commande:
DoCmd.Quit


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 10:07:04   

Reply

Marsh Posté le 23-06-2004 à 10:16:57    

C'est fait...
 
Meme constat, ca ne marche pas!
 
(pour infom la commande Docmd.Quit appelle Application.Quit)

Reply

Marsh Posté le 23-06-2004 à 10:24:19    

Je suis sous Access 97. J'emploie DoCmd.Quit à partir d'un bouton sur un formulaire, et ça marche (Access se ferme complètement). Je  n'ai pas testé à partir d'une macro Autoexec, mais je suppose que ça doit faire pareil...


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 10:46:21    

C justement avec la macro Autoexec que ca ne marche pas... La est tout mon probleme!!!

Reply

Marsh Posté le 23-06-2004 à 10:50:10    

Yoyo@ a écrit :

C justement avec la macro Autoexec que ca ne marche pas... La est tout mon probleme!!!


Dans ta macro, fait appel à un timer qui va lui-même lancer la fermeture d'access, ça marchera peut-être

Reply

Marsh Posté le 23-06-2004 à 11:07:55    

Comment faire pour faire appel a un Timer dans ma macro?
 
Le seul moeyn que je connaisse, c'est de faire appel a un form, qui lui meme contienne un Ontimer Event. Mais c'est pas tres tres beau je trouve...

Reply

Marsh Posté le 23-06-2004 à 11:28:06    

BOn, a priori, meme en utilisant une form avec un Timer, ca ne marche pas, et ca me fait la meme erreur.
 
C'est quand meme bizarre que je ne puisse pas arriver a mes fins. Ca ne paraissait pourtant pas compliqué comme situation...

Reply

Marsh Posté le 23-06-2004 à 11:29:06    

J'ai testé en Access 97, avec la macro Autoexec qui contient l'action "Quitter" et ça marche super bien. A tel point que je ne peux plus ouvrir ma base!!! Et je n'ai pas l'onglet "Sécurité" pour désactiver les macros.... Heureusement que c'est une base vide, créée pour les tests. En tout cas, perso, je ne sais pas quoi dire de plus. C'est vrai que le timer n'est pas très chouette, mais si c'est une solution. Autrement, peut-être peux-tu écrire une fonction Access_Quit que tu appelles depuis ta macro ?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 11:49:16    

La fonction Access_Quit appelée depuis la macro, c'est déja fait, et ca ne résoud pas le probleme (ce qui nest pas illogique)
 
Le Timer, ca ne marche pas non plus.
 
Et avec la macro Autoexec, je suis surpris que ca amrche sous 97 (mais lol, si y a le pb avec la sécu) Je vais tester sous Access 2000.
 
Mderci de ton aide

Reply

Marsh Posté le 23-06-2004 à 12:04:19    

Yoyo@ a écrit :

Comment faire pour faire appel a un Timer dans ma macro?
 
Le seul moeyn que je connaisse, c'est de faire appel a un form, qui lui meme contienne un Ontimer Event. Mais c'est pas tres tres beau je trouve...


ben tu le met pas visible ton form :o

Reply

Marsh Posté le 23-06-2004 à 12:06:19    

Yoyo@ a écrit :

C'est quand meme bizarre que je ne puisse pas arriver a mes fins. Ca ne paraissait pourtant pas compliqué comme situation...


Je pense que c'est pour éviter les applis "qui font rien".
 
Le truc tu clique dessus, ca pédale 5 minutes, puis plus rien, tu comprends pas pourquoi. Tu t'excites alors dessus à le lancer 25 fois et paf y'a tout qui plante.
 
Je vois pas trop ce que tu veux faire, mais un simple msgbox indiquant au gars que tout est pour le mieu dans le meilleur des mondes possible, et qu'il fait grand beau temps dehors, c'est pas un luxe, et je suis sûr que ca va te débloquer.

Reply

Marsh Posté le 23-06-2004 à 12:27:25    

En fait, c'est fou...
 
Je viens de faire la meme chose sous AccessXP, sous mon PC de bureau (Macro Autoexec, avec un commande Quit) et ca marche. Alors, je prends le meme fichier, et je le mets sur mon portable (toujours AccessXP) et la...il me balance l'erreur que je vous ai dite...
 
---------------------------
C:\Documents and Settings\Administrator\Desktop\SentEmails\Nouveau Microsoft Access Application.mdb
---------------------------
Cannot find the file 'C:\Documents and Settings\Administrator\Desktop\SentEmails\Nouveau Microsoft Access Application.mdb' (or one of its components). Make sure the path and filename are correct and that all required libraries are available.
---------------------------
OK    
---------------------------
 
 
Pour info, mon PC de bureau tourne sous Windows XP alors que mon PC portable tourne sous Win2000...

Reply

Marsh Posté le 23-06-2004 à 12:30:43    

Faut peut-être réinstaller le Office......


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 12:37:40    

Je me demande si ca ne vient pas du fait que sous 2000, il y a un utilisateur implicite du genre "Administrator"?
 
Je ne pense pas que le fait de réinstaller résolve quoi que ce soit... Je vais continuer a enqueter...

Reply

Marsh Posté le 23-06-2004 à 13:28:56    

Euh... Si tu vire le "quit", t'as pas l'erreur ? :heink:
 
Parceque je ne vois pas du tout quel peut être le rapport entre le message d'erreur et ton quit...

Reply

Marsh Posté le 23-06-2004 à 13:39:07    

Tout a fait.
 
Si je vire le "Quit", pas derreur.
 
Et si je le laisse, mais que je lance la macro a la main, pas d'erreur non plus...
 
Ca na rien a voir donc avec la macro, mais plutot avec le fait de quitter la base de cette maniere. (car jobtiens la meme erreur avec une form que je mets dans le startup avec un Quit dans le On Open de la form (si tu vois ce que je veux dire))

Reply

Marsh Posté le 23-06-2004 à 13:59:55    

Arf.
 
Crée un racourcis vers ta base.
 
Edite le racourcis, et met comme espace de travail le répertoire qui contient la base. Ca résoudra peut-être ton problème.

Reply

Marsh Posté le 23-06-2004 à 14:00:47    

Le répertoire "SentEmails", c'est bizarre non? Je ne vois pas de rapport avec la messagerie !


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:02:08    

A tout les coups il a mis sa base dans outlook et l'éxécute depuis Outlook.

Reply

Marsh Posté le 23-06-2004 à 14:05:29    

Arjuna a écrit :

A tout les coups il a mis sa base dans outlook et l'éxécute depuis Outlook.

C'est possible ça ???? :ouch:


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 14:41:15    

Ben oui, dans un mail :sarcastic:

Reply

Marsh Posté le 23-06-2004 à 15:25:10    

Nan, nan, lol, c un répertoire temporaire que javais créé comme pont entre mes deux ordis. C un répertoire comme un autre, rien a voir donc!

Reply

Marsh Posté le 23-06-2004 à 15:47:32    

Et quand tu fais "Outils", "References" sous VB, t'as pas des librairies manquantes ?


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 15:50:51    

Mais non.
 
Et en plus, ca n'a forcément rien a voir, car le meme fichier mdb marche sous mon PC fixe (WinXP) mais pas sous le portable (Win2000)

Reply

Marsh Posté le 23-06-2004 à 15:57:19    

T'aurais pu avoir des DLL mal installées sur ton portable...


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 23-06-2004 à 17:55:01    

T'as essayé avec mon truc ?
 
Sur les deux PC, Access est installé dans le même répertoire ? Même langue ? Style y'a plein de trucs succeptibles de foutre la merde...

Reply

Marsh Posté le 10-11-2004 à 17:55:36    

Bonjour,
 
Nous rencontrons le meme pb sous windows 2000.
 
As tu trouvé une solution ?
 
Merci d'avance.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed