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 :

Peut on utiliser un lien hypertexte dans une zone de liste?


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Peut on utiliser un lien hypertexte dans une zone de liste?
    Bonjour,

    J'ai dans un projet, une table "document" décrivant des fichiers (PDF, word, excel...) avec un titre, une référence, une date ... et un attribut lien de type "lien hypertexte" permettant d'ouvrir ces fichiers, présent sur la toile.

    J'aimerai avoir une zone de liste, affichant un document par ligne avec ses différents attributs (ça c'est facile), et pouvoir ouvrir un fichier en cliquant sur le lien seul, ou en double cliquant sur la ligne du document.

    Cela est il possible sur Access 2003?
    Si oui comment? Je tiens à préciser que je débute tout juste sous Access...
    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Voici une possibilité.
    Mon code s'appuie sur un formulaire disposant d'une zone de liste lstLiens et d'une étiquette lblLienHypTexte.
    L'étiquette ne doit pas être celle qui est attachée à la zone de liste.
    La source de ma liste est une requêtte sur une table à deux colonnes :
    - la description
    - le lien (ex: http://www.developpez.net/forums ou C:\Mes Documents\Mondoc.doc ou même file:///C:\Mes Documents\Mondoc.doc)
    Le Texte de mon étiquette est Lien.

    Code de l'évènement après mise à jour de la zone de liste
    Code vb : 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
    Private Sub lstLiens_AfterUpdate()
    Dim strLien As String
    ' Column(1) = 2e colonne, Column(2) = 3e colonne, etc...
    ' Remplacer 1 par le bon indice de colonne.
    ' On récupère le lien dans la variable strLien
    strLien = Nz(Me.lstLiens.Column(1))
    If strLien <> "" Then
       ' Si le lien n'est pas vide on transforme l'étiquette en lien hypertexte
       Me.lblLienHypTexte.Hyperlink.Address = strLien
       Me.lblLienHypTexte.FontUnderline = True
       Me.lblLienHypTexte.ForeColor = vbBlue
       Me.lblLienHypTexte.Visible = True
    Else
       ' Si le lien est vide l'étiquette est une simple étiquette
       Me.lblLienHypTexte.Hyperlink.Address = Null
       Me.lblLienHypTexte.FontUnderline = False
       Me.lblLienHypTexte.ForeColor = vbBlack
       ' Et on la cache
       Me.lblLienHypTexte.Visible = False
    End If
     
    End Sub
    Quand la selection de la liste change, le lien hypertexte de l'étiquette change en conséquence.
    L'étiquette agit alors comme un lien hypertexte. Il suffit de cliquer une fois dessus.

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour cette astuce !

    Je viens de la tester et l'idée est vraiment efficace !
    A un détail près, c'est que Access n'arrive pas à ouvrir le lien...
    Voici le message d'erreur :

    "
    Microsoft Office Access ne peut pas suivre le lien hypertexte
    'http://fnac.fr/'. Veuillez vérifier la destination.
    "

    Merci d'avance si quelqu'un sait d'où cela peut il venir...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    D'après une FAQ Microsoft, le problème peut se résoudre en ouvrant la base, faire fichier, "propriétés de la base" et entrer l'adresse dans "répertoire web", dans l'onglet résumé.

    Résultat, en ayant plusieurs adresses internet différentes, on tombe toujours sur l'adresse rentrée dans les propriétés, ce qui n'a aucun interêt.
    ...
    Quelqu'un aurait il une idée?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Personne n'aurait une petite idée....? :S
    Merci d'avance

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    je ne vois vraiment pas pourquoi le lien ne fonctionne pas.
    Je crois me souvenir que j'avais le problème sous WinNT (pas bien sûr).

    On peut simuler un lien hypertexte en ouvrant le fichier ou la page avec le programme qui lui est associé dans Windows.
    Voir la faq VB6 .

    Tu mets la déclaration de la fonction API (Private Declare Function ShellExecute etc ...) dans la section Déclarations du module de code de ton formulaire.

    Avec un bouton cmdFollowLink et une liste lstLiens (le chemin vers le fichier ou l'adresse web étant en 2e colonne)
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub cmdFollowLink_Click()
    Dim strFile As String
     
    strFile = Nz(Me.lstLiens.Column(1))
    If strFile <> "" Then
       strFile = strFile & vbNullChar
       ShellExecute Me.hwnd, "open", strFile, "", "", 1
    End If
    End Sub
    En espèrant que ça t'aide.
    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Le problème a été résolu !

    En fait, le lien se copiait bien de la liste à l'étiquette mais en rajoutant des symboles # de part et d'autre du lien hypertexte.

    Pourquoi? Cela reste un mystère... Il a donc suffit de vérifier que le premier caractère soit bien un #, et, si tel était le cas, récupérer la valeur contenu entre les deux symboles #.

    En tout cas, merci pour tes réponses, ça m'a été très utile !

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    je comprends mieux maintenant.
    Ton champ est de type "Lien hypertexte" en non pas "Texte" comme je le croyais.
    Fais une recherche sur HyperlinkPart dans l'aide d'Access.
    Tu comprendras d'où viennent les #.
    En effect dans un champ "Lien hypertexte" les données sont stockées sous la forme
    texte affiché#adresse#sous-adresse#info-bulle
    Dans ton cas tu ne dois avoir que #adresse#

    Dans mon premier code posté, remplacer
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    strLien = Nz(Me.lstLiens.Column(1))
    par
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    strLien = HyperlinkPart(Nz(Me.lstLiens.Column(1)), acAddress)
    pour enlever les #

    A+

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

Discussions similaires

  1. [IP-2007] Lien hypertexte dans une zone de texte
    Par saxophtrion dans le forum InfoPath
    Réponses: 1
    Dernier message: 03/06/2012, 23h18
  2. [XL-2003] insertion de lien hypertexte dans une zone de texte par un bouton parcourir
    Par csophie49 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 22/02/2012, 17h55
  3. Réponses: 5
    Dernier message: 24/05/2006, 23h53
  4. lien hypertexte dans une zone de liste
    Par corwin44 dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 11h48
  5. lien hypertexte dans une anim flash
    Par vedder dans le forum Flash
    Réponses: 17
    Dernier message: 14/01/2004, 14h11

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