IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Le fichier bat n'est pas exécuté. [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    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/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    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 : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    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+

  4. #4
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Javascript n'est pas exécuté avec ajax.
    Par John6281 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/02/2007, 14h35
  2. [C#] ftp : pourquoi mon fichier à uploader n'est pas accessible ?
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/09/2006, 14h52
  3. Vérifier si un fichier.Z n'est pas endommagé
    Par StyleXP dans le forum Linux
    Réponses: 4
    Dernier message: 01/08/2006, 16h13
  4. Réponses: 1
    Dernier message: 09/06/2006, 21h02
  5. [information] utiliser des "dessins" si le fichier image n'est pas trouvé
    Par TabrisLeFol dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/05/2006, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo