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

IHM Discussion :

Accès à un répertoire à partir d'un formulaire


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Accès à un répertoire à partir d'un formulaire
    Quelqu'un peut il me donner l'expression pour : à partir d'un bouton de mon
    formulaire acceder (comme on le fait avec explorer) au répertoire du même nom qu'un contrôle de mon formulaire ex :

    mon formulaire est ouvert sur la fiche 2912 , en cliquant sur un bouton je veux qu'il me lance explorer et qu'il m'ouvre le répertoire 2912

    Merci de me répondre

    FRIGAUX Rémi

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    La fonction OuvrirUnFichier que tu trouveras en FAQ ici, te permet d'ouvrir une fenêtre d'explorateur.
    De plus cette fonction permet de définir le répertoire d'ouverture.

    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Merci !!
    .....de m'avoir mis sur la piste , ja vais chercher

    Rémi

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Je te propose la solution donnée par Maxennce Hubich (la proposition n'engage que moi).
    Tu copie ce code dans la partie déclaration du module du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    A l'événement qui doit ouvrir ton répertoire tu met ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute Me.hwnd, vbNullString, Me.[le nom du champs conténant le chemin de ton répertoire], "", vbNullString, 1
    La proposition de pqz à ma connaissance cherche un fichier et non un répertoire!
    Bonne continuation
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  5. #5
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut Rémi,

    Pour être encore plus simple, la fonction shell te permets d'exécuter n'importe quoi. Voici sa syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell(chemin,[styleFenêtre])
    Il faut savoir que pour ouvrir n'importe quel dossier, Windows utilise le programme nommé EXPLORER.EXE, donc l'association EXEPLORER.EXE et le chemin et nom du dossier à ouvrir permet d'ouvrir ce dernier.
    Si par exemple, je veux ouvrir le dossier principal de mon disque C, j'écrirais
    Si on résume:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exeplorer.exe chemin\nom de dossier
    Bien sûr, ceci est masqué par Windows à chaque fois tu double clique sur un dossier.
    Pour simplifier alors, à l'événement sur clic de ton bouton tu peux ajouter le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande1_Click()
       Shell "explorer.exe le_chemin_de_ton_dossier\le_nom_de_ton_dossier", vbMaximizedFocus
    End Sub
    Simulons: si le nom du dossier serait contenu dans le champ Fiche de ton formulaire, et ce dossier se trouverait dans le disque D: par exemple, alors ton code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande1_Click()
       Shell "explorer.exe D:\" & Me.Fiche, vbMaximizedFocus
    End Sub
    Et c'est tout!
    Toutefois, le problème qui pourrait se poser est le fait qu'il est [quelques fois] requis de mentionner le chemin où se trouver l'application EXPLORER.EXE. Par défaut il se trouve dans le dossier C:\WINDOWS. Il se peut que ton système d'exploitation ne se trouve pas dans ce dossier là mais dans un autre dossier comme D:\WINXP (par exemple). Il devient nécessaire d'ajouter le chemin du dossier WINDOWS. Il y a une fonction qui nous permet de le savoir en utilisant les API.
    Dans la ligne déclaration du module de classe (car si c'est un module globale, change Private en Public), ajoute le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'Emprunté de <a href="http://access.developpez.com/faq/?page=CheminsRep#windows_dir" target="_blank">http://access.developpez.com/faq/?pa...ep#windows_dir</a>
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _
        (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Cette fonction (GetWindowsDirtectory) permet de savoir le chemin où WINDOWS est installé dans l'ordinateur.
    Ajoute ensuite en dessous le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'Emprunté de <a href="http://access.developpez.com/faq/?page=CheminsRep#windows_dir" target="_blank">http://access.developpez.com/faq/?pa...ep#windows_dir</a>
    Private Function GetWindowsDir() As String
     
       Dim buffer As String * 256
       Dim Length As Long
       Length = GetWindowsDirectory(buffer, Len(buffer))
       GetWindowsDir = Left(buffer, Length)
     
    End Function
    Cette fonction est utilisée pour extraire le chemin du dossier WINDOWS, le résultat de cette fonction est donc ce chemin même!
    Et à notre code de début, ajoute cette fonction et le code devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande1_Click()
       Shell GetWindowsDir & "\explorer.exe le_chemin_de_ton_dossier\le_nom_de_ton_dossier", vbMaximizedFocus
    End Sub
    Avec notre simulation plus haut, ce code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande1_Click()
       Shell GetWindowsDir & "\explorer.exe D:\" & Me.Fiche, vbMaximizedFocus
    End Sub
    Il reste un souci quand même: est ce que les dossiers à ouvrir se trouvent dans un même dossier, c'est à dire, leur chemin est-il unique? Dans ce cas, il n'y a pas de problème. Mais sinon, il te faut aussi prévoir d'effectuer une recherche récursive du dossier à ouvrir et une fois trouvé, l'ouvrir en intégrant dans le code son chemin.
    Mais ceci est une autre histoire.

    Bon courage et @+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  6. #6
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Et je rajouterais, pour que l'explorateur s'ouvre sous forme d'explorateur, c'est à dire avec l'arborescence à gauche, il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    explorer <nom du chemin>,/e
    explorer c:\,/e
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Merci mais je ne comprends pas !
    comment j'exprime dans votre programme la variable N° de dossier qui est apparent dans un contrôle de ce formulaire : est ce que l'expression :
    Forms![nom Formulaire]![nom contrôle] est correcte pour exprimer le n° de dossier ?

  8. #8
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut,
    Citation Envoyé par FRIGAUX
    comment j'exprime dans votre programme la variable N° de dossier qui est apparent dans un contrôle de ce formulaire : est ce que l'expression :
    Forms![nom Formulaire]![nom contrôle] est correcte pour exprimer le n° de dossier ?
    Oui c'est correcte mais en code, mieux vaut utiliser Me.NomContrôle
    Un point à mettre au claire:
    Me représente le formulaire en cours
    Alors pour désigner le contrôle contenant le numéro de dossier, tu écriras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Nom_Contrôle_Contenant_le_Numéro_du_dossier
    Donc pour le code (avec l'amélioration de Delphimaniac), le dernier code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande1_Click()
       Shell GetWindowsDir & "\explorer.exe D:\" & Me.Nom_Contrôle_Contenant_le_Numéro_du_dossier & ",/e", vbMaximizedFocus
    End Sub
    Bon courage et @+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

Discussions similaires

  1. Accès répertoire selon réponse dans formulaire.
    Par RKU01 dans le forum Langage
    Réponses: 13
    Dernier message: 19/11/2012, 22h30
  2. Réponses: 1
    Dernier message: 24/05/2009, 18h12
  3. Réponses: 3
    Dernier message: 27/11/2006, 06h05
  4. Ouvrir un répertoire à partir d'un formulaire
    Par delphineleclerc1 dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2005, 17h44
  5. Réponses: 6
    Dernier message: 19/11/2004, 16h52

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