Comment avec VB6 créer un lien Hypertexte dans une base de donnée??

Résolu
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010 - 4 sept. 2009 à 01:08
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010 - 4 sept. 2009 à 18:21
Bonjour, je controle une base de donnée Access a partir de VB6 (ouvre, visionne, edite, efface ou nouvelle entrée).
Ma base a été creer avec des colonnes de différent formats, comme Numérique, Texte et Lien Hypertexte. Quand j'enregistre une nouvelle entrée le lien Hypertexte s'écrit en bleu dans la cellule mais si je clique dessus rien ne se passe, je dois cliquer bouton droit et modifier le lien Hypertexte pour qu'il fonctionne. Le fichier de la base de donnée se trouve dans un dossier D:\Base de donnée\ et les fichiers en ".pdf" se trouve dans un sous-dossier qui se nomme P_Number\. Dans ce dossier j'ai des centaines de fichier qui se nomment P001.pdf , P002.pdf ...
J'aimerais bien trouvé une solution a mon problème, cela fait plusieurs jours déja que je cherche une solution un peu partout.

Si vous avez des idées, j'en serais très heureux

Merci

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 sept. 2009 à 17:47
Oui, je me suis trompé
Cliquez-ici#http://www.vbfrance.com/code.aspx?ID=27883##Information disque dur
Le 3ème info est le bookmark à l'intérieur du fichier : le # n'était pas à la bonne place
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 sept. 2009 à 13:10
Salut
As-tu essayé avec un Ctrl-Clic ? C'est une des techniques utilisée pour lancer le lien dans les logiciels permettant aussi de configurer des liens.
"le lien Hypertexte s'écrit en bleu dans la cellule" De quelle cellule parles-tu ? quel composant ?
Puisque tu utilises une interface (VB6) pour afficher tes données, pourquoi ne pas programmer le lancement de ce lien par VB6 ?
Il te suffit de donner ce lien à un ShellExecute :

Partie déclaration :
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
Const SW_SHOWNORMAL = 1
La Sub à lancer sur un "Click"
Private Sub LanceHyperlien(leLien As String)
    ShellExecute Me.hwnd, vbNullString, leLien, vbNullString, "C:", SW_SHOWNORMAL
End Sub


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
4 sept. 2009 à 13:46
Mon idée c'étais d'utilisé VB6 pour entrer les données a l'intérieur d'une base de donnée qui serait protéger en écriture, mais libre de visionnement sur le restant du réseau (avec des liens hypertexte fonctionnel pour pouvoir imprimer certains fichiers en pdf). Les utilisateurs de cette base travaillent a partir de Access.

Moi j'ai plusieurs centaines de fichiers a lier a 4 ou 5 bases de donnée, c'est pourquoi je veux faire un programme avec vb6 pour récupérer le nom d'enregistrement a l'intérieure de chaque entrées exemple: une entré porte le nom P510, dans un dossier j'ai tout les documents P001.pdf a P999.pdf, je veux pouvoir créer un lien sur le bon fichier. Je récupère le nom P510 et je connais le chemin du dossier
rsBase.Fields("Mill Test") = "\" + frmOpen.PathP + tHeatCode.Text+_ ".pdf"

Quand j'ouvre la base de donnée le liens est en bleue comme les propriété de l'enregistrement mais il ne fonctionne pas.

Merci de vos réponses
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 sept. 2009 à 15:52
Ca devient confu.
Où est ton problème ? Dans l'entrée de donnée ou dans son utilisation ?

Comme décrit dans l'aide liée aux liens hypertexte, ce type de champ (colonne) est une combinaison de quatre parties :
- Le texte à afficher,
- l'adresse UNC du fichier ou l'URL
- la sous-adresse
- l'info bulle
Lors de l'insertion de ce champ, chacune de ces parties doit être séparée par un # et le tout, en moins de 2048 carctères, exemple (cible au hasard) :
Cliquez-ici#http://www.vbfrance.com#/code.aspx?ID=27883#Information disque dur

Est-ce que cette partie est correctement faite de ton côté ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
4 sept. 2009 à 17:12
Bien non de mon coté je n'avais pas les "#"

rsBase.Fields("Mill Test") = "\" + frmOpen.PathP + tHeatCode.Text+_ ".pdf"

je crois que c'est dans la formulation du chemin. J'ai essayer de coller l'exemple que tu m'a écris, il me fait une erreur a chaque signe "#".

Est-ce que j'ai besoin d'une Référence a ajoutée dans vb pour utilisé les liens Hypertexte??

Merci
0
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
4 sept. 2009 à 18:21
Gros Gors merci, le tout fonctionne trè bien maintenant.



Encore merci
0
Rejoignez-nous