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érer le lien hypertexte d'un fichier...


Sujet :

Access

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Récupérer le lien hypertexte d'un fichier...
    J'ai créé un champ dans ma table dans lequel je stocke en lien hypertexte le chemin d'accès au fichier répertorié dans ma base (base de classement de courriers).
    Comment faire pour insérer dans mon formulaire de saisie de données un bouton qui ouvre une boite style "parcourir" et qui fasse simplement apparaître dans mon champ le chemin d'accès, sans ouvrir vraiment le fichier??
    J'ai cherché sur la FAQ et j'ai mis ce code dans un modulenommé "ModParcourir" :

    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
    Option Compare Database
     '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
     
     
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String
     
     
    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)
     
     
     
      With StructFile
        .lStructSize = Len(StructFile)
        .hwndOwner = Handle
        .lpstrFilter = sFiltre
        .lpstrFile = String$(254, vbNullChar)
        .nMaxFile = 254
        .lpstrFileTitle = String$(254, vbNullChar)
        .nMaxFileTitle = 254
        .lpstrTitle = Titre
        .flags = OFN_HIDEREADONLY
        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
        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
    J'ai ensuite inséré mon bouton de commande, mais cela me propose d'ouvrir le fichier (d'ailleurs ça ne l'ouvre pas, ça affiche son chemin dans une boite de dialogue et riende plus...)
    Là je cale... je débute et je patauge !
    Si qqn a une piste pour que j'avance un peu...

  2. #2
    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 : 45
    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,

    Tu as esseyé de remplacer la boîte par ton Champs ?

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Oui, j'ai essayé, pûtôt que d'ajouter un bouton, que cela se fasse sur clic dans la zone où je tape le lien hypertexte (que je préfère récupérer par sélection pour éviter les erreurs).
    sur evenement clic j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Classement_informatique_Click()
    MsgBox OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Word", "doc")
    End Sub
    Mais ça fait la même chose qu'avec un bouton, soit le chemin s'affiche, je fais OK et rien ne s'ajoute sur le formulaire de saisie, soit j'annule et j'ai une boite de message vide qui propose OK

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    En plus, je vais stocker des fichiers.eml et non .doc
    ça il faudra aussi que je me penche dessus...

  5. #5
    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 : 45
    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
    regarde du côté de FileSystemObject

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    je débute avec access... késako??

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    slt,

    c'est confus...

    le lien hypertexte est fait pour ne pas avoir à programmer du code d'ouverture, encore faut-il stocker les liens au bon format
    ensuite le fichier s'ouvre avec l'application définie par défaut dans Windows lorsqu'on clique sur le lien
    il faut bien entendu que le champ soit défini de type "Lien Hypertexte"

    la fonction OuvrirUnFichier renvoit le chemin d'un fichier, mais n'est pas faite pour l'ouvrir

    le MsgBox c'est juste un exemple, si tu veux affecter le chemin choisi à ton contrôle il faut juste que tu mettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Classement_informatique = "#" & OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Word", "doc")  & "#"
    Les dièses qui encadrent le lien sont indispensables, un lien hypertexte étant composé de trois parties séparées par des #
    Ici on ne renseigne que la 2è partie qui est le lien à suivre, la 1ère partie étant le texte affiché (par défaut le texte du lien vu qu'on n'y met rien) et la 3è partie une sous adresse inutile ici.
    (cf bien sûr l'aide des hyperliens pour l'explication complète)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Mille mercis Arkham et désolée pour les explications confuses
    J'ai mis ce code dans l'évènement sur clic et cela ouvre bien ma boite qui me permet d'aller choisir mon fichier, ça stocke bien le chemin comme valeur lien hypertexte dans mon champ "classement informatique", et ça ouvre le document en question.
    que faut-il alors modifier pour que cela fonctionne de la même façon mais sans ouvrir le document?

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Voilà le code sur évenement clic :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Classement_informatique_Click()
    Me.Classement_informatique = "#" & OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Mail", "eml") & "#"
    End Sub

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    c'est encore confus

    que tu veux faire au juste?

    le lien hypertexte ouvre le document lorsque tu cliques dessus, c'est son rôle et ça se fait tout seul sans rien coder
    je ne vois pas l'intérêt de mettre un lien hypertexte et d'empêcher ensuite l'ouverture du lien
    comment savoir si le click doit ouvrir la fenêtre de choix de fichier ou suivre le lien?

    ou alors le code d'ouverture de la fenêtre de dialogue OuvrirFichier devrait plutôt être lié à un bouton

    - click sur le lien --> ouverture du lien, pas besoin de code pour ça
    - click sur le bouton --> ouverture de la fenêtre de choix de fichier et mise à jour du champ avec le chemin du fichier choisi, c'est la ligne de code précédente qui fait ça

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Ahhhh tu comprends tout... ça ne doit donc pas être si confus !
    Effectivement, au départ je pensais mettre un bouton, qui ouvre la fenêtre de choix de fichier et met à jour mon champ... Sans ouvrir le document.
    Tu me dis la ligne de code précédente... laquelle????
    Remarque... t'as raison c'est confus !

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par Célinette
    Tu me dis la ligne de code précédente... laquelle????
    c'est que j'ai mis dans le message précédent :
    Me.Classement_informatique = "#" & OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Mail", "eml") & "#"
    --> à mettre sur click sur le bouton pour mettre à jour la zone de texte avec le fichier choisi

    --> Y a rien à mettre sur click de la zone de texte, c'est tautomatique

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    C'est EXACTEMENT ce que je voulais faire...
    Vous m'épatez...
    Merci ! Encore un problème résolu !

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Dans ce cas pour nous remercier (surtout Arkham), merci de passer le sujet sur
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Et commenbt on fait ça???

  16. #16
    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 : 45
    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,

    le tag est en bas à gauche.

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    rôô je ne l'avais pas vu !!!

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

Discussions similaires

  1. [XL-2003] Récupérer le lien hyperText d'1 cellule en vba
    Par electrosat03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2011, 14h15
  2. Réponses: 1
    Dernier message: 11/12/2008, 15h44
  3. Réponses: 34
    Dernier message: 23/10/2007, 14h53
  4. Réponses: 15
    Dernier message: 17/04/2007, 15h02
  5. [regex] Récupérer des liens hypertextes
    Par smarties dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 15/02/2007, 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