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

Access Discussion :

Commande shell = stable ?


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    Par défaut Commande shell = stable ?
    Bonjour,

    J'ai juste une simple question, car je fais une partie d'une application sur laquelle je clique sur un bouton, et ca donne certain droit a plusieurs dossiers.

    Je fais environ 8 commandes a la suite par clic.
    Est ce c'est possible que ca ne soit pas stable ? Car j'ai un petit probleme ... c'est que parfois il met pas les droits a un dossier et les met sur les autres ...

    Merci d'avance si quelqu'un peut m'eclairer, si quelqu'un a deja utilise la meme chose ^^

    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
    Private Sub Lecture_3_Click()
     
    If (Me.Consultant.Column(4) <> "") Then
        Dim Chemin As String
        Dim Cmd As String
     
        Chemin = RecupForm()
        Execution Chemin, "\Dossier_1", ":R"
        Execution Chemin, "\Dossier_2", ":R"
        Execution Chemin, "\Dossier_3", ":R"
        Execution Chemin, "\Dossier_4", ":R"
        MsgBox ("Mise des droits de lecture à : " & Me.Consultant.Column(4))
    Else
        MsgBox ("Aucun consultant de sélectionner.")
    End If
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Execution(Chemin As String, Dossier As String, Droits As String)
     
    Dim Cmd_Dossier As String
     
    Cmd_Dossier = Chr(34) & Chemin & Dossier & Chr(34)
    Cmd = "CMD.EXE /C " & Chr(34) & "cacls " & Cmd_Dossier & " /E /R " & Me.Consultant.Column(4) & Chr(34)
    Shell (Cmd)
    Cmd = "CMD.EXE /C " & Chr(34) & "cacls " & Cmd_Dossier & " /E /G " & Me.Consultant.Column(4) & Droits & Chr(34)
    Shell (Cmd)
     
    End Sub
    Exemple du code si on clique sur "Lecture_3"

    ps : la fonction récupform est une fonction un peu compliquee qui me permet de recuperer le nom du formulaire où mon sous-formulaire est, c'est compliqué mais je pense pas que ca intéragisse donc pas grave x)


    EDIT : Je viens de mettre un MsgBox(cmd) apres chaque "Shell(cmd)" de la fonction execution et ca marche parfaitement !
    Quelqu'un aurait un moyen de faire gagner du temps comme un MsgBox mais sans que l'utilisateur le voit ? (Un MsgBox invisible ?)

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Tu peux introduire un délais avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public sub Attendre(prmDureeEnSecondes as long)
      dim debut as date:debut=now()
      dim fin as date:fin=dateadd("s", prmDureeEnSecondes, debut)
     
      do while now() <= fin
      loop
     
    end sub
    exemple d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call Attendre(3) 'Attend 3 secondes
    A+

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 665
    Points : 34 373
    Points
    34 373
    Par défaut
    salut,
    En lieu et place du Msgbox, tu peux remplacer cela par un Debug.Print

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Points : 94
    Points
    94
    Par défaut
    Enfait j'ai reussi a mettre un Sleep 10 avec la lib kernel32 et une déclaration dans un module x)

    Mais enfait, c'est quoi debug.Print ? J'en vois beaucoup dans les codes mais j'sais pas a quoi sa sert ^^'

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Debug.print envoie un résultat dans la fenêtre d'éxécution immédiate accessible par [Ctrl][G] dans l'environnement de dev.

    C'est pratique pour surveiler le déroulement d'un programme lorsqu'on fait la mise au point.

    Cela ne prend presque pas de temps donc cela ne résoudra pas le pb d'attente.

    Peux-tu poster ta solution, cela pourra servir à d'autres personnes qui auraient le même problème.

    Et pense à appuyer sur "Résolu" pour signaler que tu as eu ce que tu cherchais.

    A+

Discussions similaires

  1. [Système]Execution d'une commande shell
    Par n8ken dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 29/03/2007, 05h36
  2. []Commande shell
    Par phoenix736 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/10/2005, 21h31
  3. [Debutant] Commande shell
    Par drosophile dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 21/04/2005, 16h06
  4. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 14h37
  5. [VB6] comment savoir si la commande shell est terminée ?
    Par ghyscharlotte dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/07/2003, 20h12

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