Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 01h21   #1
Membre confirmé
 
Inscription : novembre 2006
Messages : 467
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 467
Points : 284
Points : 284
Par défaut Le fichier bat n'est pas exécuté.

Bonjour à tous,

Je souhaite effectuer un réveil de mon serveur par le réseau (Wake On Lan) via une commande d'un formulaire.
J'utilise une procédure qui a déjà fait ses preuves dans mes applications mais dans ce cas précis le fichier bat, s'il apparait fugitivement lors de l'exécution de la procédure plus une variable retour "attendue" (à savoir un nombre), ne produit pas le résultat.
En gros, il n'est pas réellement exécuté.
Je constate cela avec un WOL monitor en écoute sur le serveur.

Le fichier bat créé par la procédure semble correct car si je double clic dessus les "paquets magiques" sont bien envoyés au serveur.
L'exécutable est placé dans le dossier de l'appli.
Tout semble normal, pourtant...
Je vous livre le code et vous me donnerez votre avis!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub cmdWol_Click()
Dim sCommande As String, sFichierBat As String, nResultat As Double
sFichierBat = CurrentProject.Path & "\wolcmd.bat"
sCommande = "wolcmd ABCDEFGHIJKL mon serveur.dyndns.org 255.255.255.255 442"
Me.lblAvancement.Caption = sCommande
Call CreerFichier(sFichierBat)
Call AjoutLigneDansFichier(sFichierBat, sCommande)
'Call AjoutLigneDansFichier(sFichierBat, "exit")
Me.lblAvancement.Caption = "Exécution de " & sFichierBat
nResultat = Shell(sFichierBat, vbNormalFocus)
Me.lblAvancement.Caption = "Exécution de " & sFichierBat & ".  Retour : " & nResultat
 
End Sub
Merci de votre attention et bonne année à tous!
__________________
Un seul conseil: la règle des 3S.
tAKAmAkA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h35   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
salut,

en ajoutant un pause dans ton fichier batch, tu peux voir ce qui se passe.


A toute fin utile, je peux te proposer 2 tutos qui peuvent apporter de potentielles solutions :

Generer une tache planifiee : http://jpcheck.developpez.com/tutori...depuis-access/

Passage de parametres entre batch et Access : http://jpcheck.developpez.com/tutori...ge-parametres/
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 19h39   #3
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

ça peut être un problème de dossier initial, dans lequel le batch s'exécute.
C'est la seule différence qui me vient à l'esprit entre lancer un .bat à la main et le lancer par Shell.

Quand tu double-cliques dessus, le dossier en cours est celui dans lequel se trouve le batch.
En revanche quand c'est la fonction Shell qui lance le batch ... ça peut-être n'importe où.

Comment le système est-il censé trouver l'exécutable wolcmd(.exe ?) ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 02h08   #4
Membre confirmé
 
Inscription : novembre 2006
Messages : 467
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 467
Points : 284
Points : 284
Merci à tous les deux,

Le "pause" m'a en effet éclairé: le wolcmd.exe était exécuté dans le dossier parent de l'appli. J'ai donc modifié:
Code :
1
2
3
Call AjoutLigneDansFichier(sFichierBat, "cd " & CurrentProject.Path)
Call AjoutLigneDansFichier(sFichierBat, sCommande)
Call AjoutLigneDansFichier(sFichierBat, "pause")
A+
__________________
Un seul conseil: la règle des 3S.
tAKAmAkA est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h12.


 
 
 
 
Partenaires

Hébergement Web