Lien hypertexte dépendant d'une liste

Fermé
Sly - 16 mai 2013 à 15:49
 Sly - 17 mai 2013 à 14:37
Bonjour,

Je me suis récemment remis à Access pour le travail, et j'ai réussi à trouver jusqu'à maintenant des solutions aux problèmes que j'ai rencontrés (en l'occurrence, un code qui ne marchait pas sur Access 2010, mais qui fonctionnait très bien sur 2003.)

Cependant maintenant je patine, et j'expose mon problème :

J'ai 2 tables, qui comprennent pour l'une le nom des pièces que je fabrique, et pour l'autre les éléments qui les composent, dont certains qui peuvent se trouver dans plusieurs pièces différentes (comme 1 socle dans 5 boîtes différentes par exemple.)


J'ai créé un formulaire où j'ai 2 listes déroulantes, une qui va chercher les pièces complètes, et l'autre, dépendante de la première, uniquement les éléments qui la composent, sélectionnés dans la table des éléments grâce à une formule.


J'aimerais avoir un bouton avec un lien hypertexte (jusque là facile, ça marche avec un fichier quelconque), qui ouvre le plan de cette pièce. J'ai construit tous mes dossiers et tous mes plans pdf de la même manière :


Dossier général\Dossier de la pièce\FIT_Pièce_Elément.pdf.


J'ai créé une table avec en colonne une la pièce, en 2 l'élément, et en 3 le lien hypertexte vers son plan de construction.


J'aimerais donc, avec mon lien bouton, pouvoir ouvrir soit "directement", avec un code VBA j'imagine, ou SQL (je ne connais pas encore assez Access pour m'en rendre compte), en disant dans le lien hypertexte des propriétés du bouton : Tu remplaces Pièce et Elément dans "Dossier général\Dossier de la Pièce\Plan_Elément.pdf" par le contenu des liste déroulantes; (Dossier général\Dossier de la Valeur1\Plan_Valeur2.pdf)


Soit en allant chercher directement dans la table qui contient les liens hypertexte en disant "Tu lances le lien hypertexte de la colonne Plans à la ligne qui contient les données des 2 listes déroulantes".


J'espère que mon problème est compréhensible, et qu'il y a une solution...


En vous remerciant sincèrement d'avance pour votre temps et votre aide,

Sly

A voir également:

3 réponses

blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
Modifié par blux le 16/05/2013 à 16:24
Salut,

J'espère que mon problème est compréhensible, et qu'il y a une solution...
Ton problème est compréhensible et il a une solution.

Tu veux afficher ton pdf dans un contrôle de ton formulaire ou à l'extérieur, dans le reader 'standard' ?

Par contre, je n'ai pas saisi l'utilité de la colonne 3, puisque tu dis que les plans sont à afficher en fonction des valeurs des listes déroulantes.

A+ blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Rapide comme réponse, merci, et ça me rassure en tout cas, s'il y a une solution. :)

Si je peux les afficher dans mon formulaire, c'est vrai que ça serait pas mal, je ne savais même pas qu'on pouvait, je le faisais sur le lecteur foxit, mais si c'est possible, pourquoi pas.

Sinon, en fait c'est que j'avais "prévu" 2 "solutions" : Soit je modifiais directement la requête du lien hypertexte dans les paramètres du bouton, soit j'utilisais un tableau comprenant toutes les possibilités (créé à partir d'excel), avec le lien hypertexte en troisième colonne, et que le bouton active la ligne dont les deux premières colonnes représentent les listes déroulantes.
(Pièce 1 | Element 2 \ Plan 1-2
Pièce 2 | Element 3 \ Plan 2-3
Pièce 3 \ Element 5 \ Plan 3-5
Etc.) Et que grâce au bouton, je puisse faire une recherche "Pièce 3 check, Element 5 check, alors plan 3-5.

Merci d'avance.
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
Modifié par blux le 16/05/2013 à 16:32
On va déjà voir si access est correctement interafacé avec l'activeX acrobat.

Dans ton formulaire en mode création, tu vas aller coller un contrôle activeX de type 'adobe pdf reader'. Il est dans la liste des contrôles spécifiques que tu peux mettre dans un formulaire. En fonction de ta version access, c'est dans un menu déroulant particulier à coté des boutons, zone de listes et autres bricoles.

Ce contrôle, donc tu vas garder le nom, tu le crées assez grand pour afficher suffisamment d'infos.

Ensuite, tu crées un bouton et dans le code 'sur clic' tu rajoutes cette ligne :

Me.nom_du_controle_pdf.LoadFile ("c:\le_nom_d_un_doc_pdf.pdf")

Tu passes en mode normal, tu cliques sur le bouton et tu reviens dire si ça marche ou pas.

Si ça ne marche pas (ce que je crains), on passera par un appel shell, mais le document sera ouvert dans un programme externe (type foxit ou acrobat reader)
0
Merci beaucoup. Je croyais avoir répondu hier mais je vois maintenant que rien n'a été posté, j'en suis désolé.

Sinon, j'ai pu mettre le lecteur pdf avec le contrôle ActiveX, c'est tout bon à ce niveau-là, les pdf's s'affichent directement dans le formulaire.

Merci beaucoup
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
17 mai 2013 à 09:21
Tu veux de l'aide pour la suite ?
0
Alors volontiers, si c'est possible. :)

J'ai essayé, maintenant que j'ai un code pour l'ouverture des fichiers, de modifier ce code en y intégrant des variables, mais pour le moment je n'en suis qu'à essayer un peu au hasard...

J'ai par exemple ça, comme code d'ouverture :

Me.AcroPDF9.LoadFile ("C:\Users\SLA\Desktop\6102.pdf")

C'est celui que vous m'avez donné, j'ai essayé de voir si je pouvais modifier ce lien en y intégrant les variables tirées des listes déroulantes, mais ça n'a rien donné pour le moment.

J'ai vu qu'avec un Shell on pouvait également lancer le lecteur adobe, et j'avais pensé faire avec quelque chose tiré de ce style :

mavar = "http://2gm.free.fr"
shell "C:\Program Files\Internet Explorer\iexplore.exe " & mavar,vbMaximizedFocus

Avec dans l'idée de créer 2 variables tirées des listes déroulantes, de lancer le lecteur avec le Shell, et lorsqu'il met "mavar", je mets par exemple & C:\Users\SLA\Desktop\ & mavar & .pdf.

En cherchant évidemment comment faire fonctionner tout ça, là je mets ça en brut mais je n'ai pas encore pu vraiment chercher.

En vous remerciant d'avance.
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
Modifié par blux le 17/05/2013 à 10:47
Tu es sur la bonne voie.
Cependant, il faut que tu te fixes sur ce que tu veux faire : affichage dans access ou affichage externe.

Dans ton bouton, il faut que tu récupères les valeurs fournies par les deux listes afin de créer la chaine du nom du document qui sera passée en paramètre.

Ca ressemblera à un truc comme ça :

NomDoc = "C:\users\SLA\" & me.liste1.value & "\" & me.liste2.value & ".pdf"
Me.AcroPDF9.LoadFile (NomDoc) 
0
Ha bah finalement, avec la valeur .Column(1), ça a marché, me demandez pas pourquoi maintenant et pas avant, je n'en sais rien... Mais merci beaucoup pour ces aides précieuses!

Cordialement,

Sly
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
17 mai 2013 à 14:07
Quand un truc marche 'à la main', mais ne fonctionne pas en 'automatique', c'est souvent que le formatage de la zone n'est pas correct.

Un simple MsgBox NomDoc juste avant l'envoi fait découvrir bien des erreurs (guillemets oubliés ou en trop, slashes manquants...)
0
Effectivement, un slash manquant juste avant la saisie, dans les guillemets. Sincèrement merci pour toutes les infos en tout cas.
0