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 :

Récupération complette du chemin d'un fichier


Sujet :

Access

  1. #1
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut Récupération complette du chemin d'un fichier
    Bonjour à tous.
    Je veux une boîte de dialogue qui me permet de récupérer le chemin d'un fichier que j'ai sélectionné et pour cela j'ai testé le premier code se trouvant à cette url (http://access.developpez.com/faq/?page=CheminsRep) sans et avec les options mais ça me génère une erreur du type: Variable pas encore créée dans ce contexte.

    Quelqu'un pourrait-il m'aider? c'est assez urgent

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tout est urgent, le code la Faq fonctionne parfaitement, c'est peut-être que tu l'a mal copié, peux-tu nous mettre une copie.

    Starec

  3. #3
    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 : 71
    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 boîte de dialogue chemin fichier
    Bonjour;

    Tu peux regarder .

    Bon courage,

    PGZ

  4. #4
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut
    voici le code que j'ai copié et que je viens de retesté sans succès:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     'Déclaration de l'API
    Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
                       "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
     'Structure du fichier
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
     
     'Constantes
    Private Const OFN_READONLY = &H1
    Private Const OFN_OVERWRITEPROMPT = &H2
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_NOCHANGEDIR = &H8
    Private Const OFN_SHOWHELP = &H10
    Private Const OFN_ENABLEHOOK = &H20
    Private Const OFN_ENABLETEMPLATE = &H40
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
    Private Const OFN_NOVALIDATE = &H100
    Private Const OFN_ALLOWMULTISELECT = &H200
    Private Const OFN_EXTENSIONDIFFERENT = &H400
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_CREATEPROMPT = &H2000
    Private Const OFN_SHAREAWARE = &H4000
    Private Const OFN_NOREADONLYRETURN = &H8000
    Private Const OFN_NOTESTFILECREATE = &H10000
     
    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHARENOWARN = 1
    Private Const OFN_SHAREWARN = 0
     
     
    Public Function OuvrirUnFichier(Handle As Long, _
                                    Titre As String, _
                                    TypeRetour As Byte, _
                                    Optional TitreFiltre As String, _
                                    Optional TypeFichier As String, _
                                    Optional RepParDefaut As String) As String
     'OuvrirUnFichier est la fonction a utiliser dans votre formulaire pour ouvrir _
     'la boîte de dialogue de sélection d'un fichier.
     'Explication des paramètres
        'Handle = le handle de la fenêtre (Me.Hwnd)
        'Titre = Titre de la boîte de dialogue
        'TypeRetour (Définit la valeur, de type String, renvoyée par la fonction)
            '1 = Chemin complet + Nom du fichier
            '2 = Nom fichier seulement
        'TitreFiltre = Titre du filtre
            'Exemple: Fichier Access
            'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        'TypeFichier = Extention du fichier (Sans le .)
            'Exemple: MDB
            'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        'RepParDefaut = Répertoire d'ouverture par defaut
            'Exemple: C:\windows\system32
            'Si vous laissé l'argument vide, par defaut il se place dans le répertoire de votre application
     
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String
     
     'Construction du filtre en fonction des arguments spécifiés
    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
      sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
    End If
    sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
     
     
     'Configuration de la boîte de dialogue
      With StructFile
        .lStructSize = Len(StructFile) 'Initialisation de la grosseur de la structure
        .hwndOwner = Handle 'Identification du handle de la fenêtre
        .lpstrFilter = sFiltre 'Application du filtre
        .lpstrFile = String$(254, vbNullChar) 'Initialisation du fichier '0' x 254
        .nMaxFile = 254 'Taille maximale du fichier
        .lpstrFileTitle = String$(254, vbNullChar) 'Initialisation du nom du fichier '0' x 254
        .nMaxFileTitle = 254  'Taille maximale du nom du fichier
        .lpstrTitle = Titre 'Titre de la boîte de dialogue
        .flags = OFN_HIDEREADONLY  'Option de la boite de dialogue
        If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
            RepParDefaut = CurrentDb.Name
            PathStripPath (RepParDefaut)
            .lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Mid$(RepParDefaut, 1,  _
    InStr(1, RepParDefaut, vbNullChar) - 1)))
            Else: .lpstrInitialDir = RepParDefaut
        End If
      End With
     
    If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar)-1))
          Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1,  StructFile.lpstrFileTitle, vbNullChar)-1))
        End Select
      End If 
     
    End Function
    Exemple pour appeler la fonction depuis le code d'un formulaire :
    MsgBox OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Word", "doc")

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Pense aux balises codes.

    - As-tu bien mis le code dans un module ?
    - J'espére que tu n'as pas mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Word", "doc")
    tel quel
    C'est juste un exemple à ne pas mettre dans un module, mais sur un click bouton par exemple.

    En fait dans la réalité sur l'événement click d'un bouton tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strFichier = OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Word", "doc")
    Avec strFichier une variable string que tu as déclarée auparavant.
    Si cela ne fonctionne toujours pas essaye en mettant tous les Private en Public.


    Starec

  6. #6
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut
    Merci ça marche sur click d'un bouton. Moi je j'avais mis la fonction dans un module et je la testais en faisant: MsgBox OuvrirUnFichier(Me.Hwnd, "Parcourir", 1).
    Ceci dit pourquoi ne marche t'elle pas quand on la teste à partir d'un module?

  7. #7
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    parce qu'il y a dans le code.

    Citation Envoyé par Aide Access
    Vous pouvez utiliser la propriété hWnd pour connaître le descripteur (indicateur : valeur de type Integer (Long dans un environnement 32 bits) utilisée pour identifier et accéder à une fenêtre Formulaire ou État. Utilisez la propriété hWnd pour renvoyer l'indicateur.) (une valeur unique de type Long Integer) attribué à la fenêtre active par Microsoft Windows. Type Long en lecture/écriture.
    Syntaxe
    expression.Hwnd
    expression Variable qui représente un objet Form.

    Remarques
    Vous pouvez l'utiliser en Visual Basic lorsque vous appelez des fonctions de l'interface de programmation d'applications (API) de Windows (API Windows : fonctions, messages, structures de données, types de données et instructions que vous pouvez utiliser pour la création d'applications pour Microsoft Windows 95 ou version ultérieure, y compris des déclarations de procédures, des définitions de types définis par l'utilisateur et des déclarations de constantes.) ou d'autres routines externes qui utilisent la propriété hWnd comme argument (argument : valeurs utilisées par une fonction pour effectuer des opérations ou des calculs. Le type d'argument utilisé par une fonction lui est spécifique. Les arguments courants utilisés dans les fonctions comprennent les valeurs numériques, les valeurs de texte, les références de cellule et les noms.). De nombreuses fonctions de Windows se servent de la valeur de la propriété hWnd de la fenêtre active comme argument.

    Remarque:

    Étant donné que la valeur de cette propriété peut changer pendant l'exécution d'un programme, n'enregistrez pas la valeur de la propriété hWnd dans une variable globale (variable publique : variable que vous déclarez avec le mot clé Public dans la section Déclarations d'un module. Une variable publique peut être partagée par toutes les procédures de chaque module d'une base de données.).
    Dolphy

  8. #8
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut
    Merci à tous ceux qui ont pris la peine de me répondre, la boucle est désormais bouclée

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

Discussions similaires

  1. Problème de récupération de chemin d'un fichier en JSP
    Par philou44300 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 23/08/2013, 16h21
  2. Réponses: 6
    Dernier message: 13/08/2013, 13h46
  3. Récupération du chemin d'un fichier(drag and drop)
    Par Thomas423 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/03/2013, 16h13
  4. Récupération d'un chemin absolu d'un fichier "<input type='file'" name='' />
    Par soren dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 26/01/2012, 11h34
  5. Récupération d'un chemin d'un fichier
    Par plop03 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 13/08/2009, 16h49

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