{Access} pb d'ouverture d'un pdf depuis 1 liste dé

maatma Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Débutant sous access, j'ai créé une base de données dans laquelle j'ai des listes déroulantes avec des noms de documents. (ces documents sont tous classés dans le même dossier). Je souhaiterai pouvoir ouvrir ces documents en cliquant sur un bouton une fois le document selectionné ds la liste déroulante. Voici ce que j'ai fais :

Private Sub Commande4_Click()
Dim Chemin, Fichier, Prog, ret, Absolu As String

Absolu = "C:\Documents PDF\Documents\"

Fichier = Me.Form(ListeChoix)

'On ne continue que si un fichier a été sélectionné.
If Fichier <> "" Then

'Association des chemins absolu et relatif pour obtenir le chemin complet vers le fichier.
Chemin = Absolu & Fichier & ".pdf"

Prog = "C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe"

'Execution du fichier situé à l'emplacement "Chemin" avec son programme par défaut.

ret = Shell(Prog, 1) & ret = Shell(Chemin, 1)

Else
MsgBox "Aucun fichier sélectionné"
End If

End Sub

Le problème c'est que ça ne marche pas, ça m'ouvre juste Adobe sans le fichier séléctionné et ca me met un message d'erreur : "Erreur d'execution 5" Argument ou appel de procédure incorrect"

Merci pour votre aide !
A voir également:

2 réponses

blux Messages postés 27115 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

pourquoi appelles-tu deux shell ? C'est la cause de ton erreur, je pense.

Si l'extension .pdf est bien enregistrée au niveau windows, tu ne devrais avoir besoin que du nom complet du document.

As-tu essayé ret = shell(chemin,1) ?

Sinon, il faut concaténer le nom du programme et le document, AVANT de faire un shell (mais toujours un seul, hein ?!)
0
Utilisateur anonyme
 
D'accord avec blux : tu dois au préalable concaténer ton exécutable et ton fichier à ouvrir.
Attention : l'utilisation des guillemets est indispensable pour éviter les merdes si l'un des deux chemins contient des espaces.
Il faut donc concaténer ainsi :

LigneCommandeShell = chr(34) & prog & chr(34) & " " & chr(34) & chemin & chr(34)
Shell LigneCommandeShell
0