Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1710 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°772797
Yoyo@
Posté le 22-06-2004 à 14:55:54  profilanswer
 

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
mood
Publicité
Posté le 22-06-2004 à 14:55:54  profilanswer
 

n°772894
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-06-2004 à 16:10:44  profilanswer
 

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)

n°772899
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-06-2004 à 16:13:07  profilanswer
 

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

n°772917
Yoyo@
Posté le 22-06-2004 à 16:24:29  profilanswer
 

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.
 

n°772928
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-06-2004 à 16:30:46  profilanswer
 

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

n°772933
JihemAir
Je sais pas
Posté le 22-06-2004 à 16:34:57  profilanswer
 

--> 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 ?
n°772937
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-06-2004 à 16:37:19  profilanswer
 

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 ;)

n°773625
Yoyo@
Posté le 23-06-2004 à 00:56:32  profilanswer
 

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...)

n°773785
Yoyo@
Posté le 23-06-2004 à 09:28:30  profilanswer
 

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?

n°773901
JihemAir
Je sais pas
Posté le 23-06-2004 à 10:07:04  profilanswer
 

Essaie la commande:
DoCmd.Quit


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
mood
Publicité
Posté le 23-06-2004 à 10:07:04  profilanswer
 

n°773927
Yoyo@
Posté le 23-06-2004 à 10:16:57  profilanswer
 

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

n°773940
JihemAir
Je sais pas
Posté le 23-06-2004 à 10:24:19  profilanswer
 

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 ?
n°773975
Yoyo@
Posté le 23-06-2004 à 10:46:21  profilanswer
 

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

n°773980
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 10:50:10  profilanswer
 

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

n°774012
Yoyo@
Posté le 23-06-2004 à 11:07:55  profilanswer
 

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...

n°774059
Yoyo@
Posté le 23-06-2004 à 11:28:06  profilanswer
 

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...

n°774061
JihemAir
Je sais pas
Posté le 23-06-2004 à 11:29:06  profilanswer
 

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 ?
n°774089
Yoyo@
Posté le 23-06-2004 à 11:49:16  profilanswer
 

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

n°774115
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 12:04:19  profilanswer
 

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

n°774118
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 12:06:19  profilanswer
 

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.

n°774149
Yoyo@
Posté le 23-06-2004 à 12:27:25  profilanswer
 

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...

n°774160
JihemAir
Je sais pas
Posté le 23-06-2004 à 12:30:43  profilanswer
 

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


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
n°774164
Yoyo@
Posté le 23-06-2004 à 12:37:40  profilanswer
 

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...

n°774203
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 13:28:56  profilanswer
 

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...

n°774215
Yoyo@
Posté le 23-06-2004 à 13:39:07  profilanswer
 

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))

n°774244
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 13:59:55  profilanswer
 

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.

n°774247
JihemAir
Je sais pas
Posté le 23-06-2004 à 14:00:47  profilanswer
 

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 ?
n°774252
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 14:02:08  profilanswer
 

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

n°774256
JihemAir
Je sais pas
Posté le 23-06-2004 à 14:05:29  profilanswer
 

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 ?
n°774318
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 14:41:15  profilanswer
 

Ben oui, dans un mail :sarcastic:

n°774394
Yoyo@
Posté le 23-06-2004 à 15:25:10  profilanswer
 

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!

n°774442
JihemAir
Je sais pas
Posté le 23-06-2004 à 15:47:32  profilanswer
 

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 ?
n°774449
Yoyo@
Posté le 23-06-2004 à 15:50:51  profilanswer
 

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)

n°774462
JihemAir
Je sais pas
Posté le 23-06-2004 à 15:57:19  profilanswer
 

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 ?
n°774654
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-06-2004 à 17:55:01  profilanswer
 

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...

n°895522
ausecour
Posté le 10-11-2004 à 17:55:36  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
access sur web[vba access]récuperer une requete select dans une variable
[ACCESS]combobox accès au data dans les colonnesExecuter du code compilé...
dsl, encore un pb en vba....[ACCESS] Question toute conne
Précharger une anim flash et lancer direct un lien après son execution[vba] fonction split inconnue ?
base 
Plus de sujets relatifs à : [Access/VBA] Lancer du code au démarrage puis fermer la base.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR