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 :

Exécuter commande DOS


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Par défaut Exécuter commande DOS
    Bonjour,

    je cherche à executer une commande dos depuis un formulaire access,
    commande qui vise à modifier l'attribut d'un fichier j'ai trouvé des éléments dans la FAQ mais apparemment plus spécifiques vb

    vb

    Shell "command.com dir *.* > c:\liste.txt"
    j'ai testé et ça fonctionne jusqu'à l'ouverture de la fenêtre de commande mais

    l'instruction elle même est ignorée...


    existe t il une astuce où ne suis-je plus dans le domaine de compétences d'access et la solution est d'acheter une licence vb?

    merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Non Access peut faire cela, c'est probablement plus problème de syntaxe.

    Le truc avec les commandes DOS c'est de les tester à la main avant. Donc tu ouvre une fenêtre et tu tapes ce que tu veux faire. Après tu mets ce que tu as tapé dans la commande en paramêtre de Shell et généralement ça marche.

    Là je soupsconne que Command.com n'existe pas sur ta machine essaye en remplaçant par cmd.exe.

    Un autre truc utile est d'appeler un .bat ou un point .cmd qui lui execute tes commande DOS.

    Il y a aussi des paramêtres que tu peux passer à cmd, tape help cmd dans une fenêtre dos pour les détails.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Par défaut
    hello,

    effectivement le "command.com" n'est pas au top
    je l'avais retranscrite telle que trouvé dans les faq

    j'avais aussi testé la commande dos elle meme, qui fonctionne bien depuis la fenetre dos

    en l'occurrence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    attrib +R c:\temp\test.txt
    à l'issue je retrouve bien mon fichier test.txt en lecture seule

    J'ai testé ton idee de lancer un fichier .bat qui contiendrait l'instruction,
    ça fonctionne aussi.

    Le pb maintenant est que le nom du fichier à modifier est variable; cette variable se trouve dans mon formulaire access, mais si je mets dans mon code une instruction du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "c:\windows\system32\cmd.exe attrib +R c:\temp\test.txt"
    la commande attrib+R n'est pas executée bien que valide

    Et si je suis ta suggestion du fichier .bat, il me faut pouvoir le modifier ou recréer auparavant, ce qui ouvre la porte vers des horizons totalement inconnus...


    merci

  4. #4
    Membre éprouvé
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Par défaut
    EUREKA !


    grâce à la bonne idée de marot_r pour le fichier batch,
    aux codes de shwin et M Hubiche pour les fonctions, que le Grand Manitou les comble de mille bénédictions.


    merci à tous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub Commande0_Click()
     
    Dim ls_FichCible As String
    Dim ls_FichSource As String
    Dim ls_commande As String
     
    ls_FichCible = "c:\temp\attrib.bat"
     
    '--- appel de la fonction permettant de récupérer le nom et le chemin
    '--- d'accès au fichier dont on veut modifier l'attribut
    ls_FichSource = OuvrirUnFichier(Me.hwnd, "Parcourir", 1, "Fichier Word", "doc")
     
    '--- redaction de la commande dos
    '--- utilisation des doubles guillemets pour pouvoir
    '--- utiliser le chemin complet au lieu du nom réduit (dos)
    ls_commande = "attrib +R """ & ls_FichSource & """"
     
    '--- appel de la fonction crént le fichier .bat
    Call CreerFichier(ls_FichCible)
    '--- ajout de la ligne de commande
    '--- curieusement un change directory semble mieux digéré (...)
    Call AjoutLigneDansFichier(ls_FichCible, "cd..")
    Call AjoutLigneDansFichier(ls_FichCible, ls_commande)
     
    '--- exécution du fichier batch
    Shell "c:\temp\attrib.bat", vbNormalFocus
     
     
    End Sub
    http://access.developpez.com/faq/?pa...#AffBoitDialog

    http://access.developpez.com/faq/?page=Fichier#FicTxt

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

Discussions similaires

  1. conversion exécution commande DOS depuis MS SQL Server vers MySQL
    Par Valarauko dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/05/2012, 15h06
  2. exécuter command dos via python
    Par goenitz dans le forum Général Python
    Réponses: 3
    Dernier message: 02/10/2010, 17h09
  3. Problème exécution commande DOS
    Par Micke7 dans le forum Général Java
    Réponses: 9
    Dernier message: 25/06/2010, 16h59
  4. Réponses: 1
    Dernier message: 26/07/2006, 11h23
  5. [VB]Problème d'exécution d'une commande dos...
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 17/02/2006, 12h28

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