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 :

Je n'arrive pas à ouvrir un fichier pdf


Sujet :

Access

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Je n'arrive pas à ouvrir un fichier pdf
    Bonjour!

    Je voudrais ouvrir un fichiers pdf. Je sais, la question est récurrente sur le forum...

    Seulement pour moi c'est différent! (lol) Tout le monde trouve la réponse à sa question avec la fonction ShellExecute mais pô moi...

    En fait, je veux ouvrir un fichier pdf en cliquant sur un bouton. Le chemin du fichier se trouve dans une textbox de l'enregistrement courant, là il n'y a aucun problème pour le récupérer. Voici la fonction que j'utilise (celle de la FAQ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    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

    Elle est dans le formulaire qui contient le bouton. Et voici le code asspocié au click sur ce bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande13_Click()
    Dim CheminduFichier As String
    CheminduFichier = Me.Chemin_fichier
    ShellExecute Me.hWnd, "open", CheminduFichier, "", "", 1
    End Sub
    Y voyez-vous une erreur ? merci pour vos réponses!

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Sauf erreur de ma part, mais à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CheminduFichier As String
    CheminduFichier = Me.Chemin_fichier
    Tape plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CheminduFichier As String
    CheminduFichier = Me.Chemin_fichier.Value
    Sinon, j'espère que dans le chemin du fichier tu as également le nom du fichier PDF à ouvrir

    Bonne continuation
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Je viens de faire un essai.

    En ne mettant que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute Me.hwnd, "open", Me.ZoneDeTexte, "", "", 1
    (ZoneDeTexte="Chemin du fichier")

    fonctionne correctement

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Merci pour vos réponses.

    J'avance en ayant ajouté le .Value effectivement puisqu'apparemment il tente de l'ouvrir. Le problème est qu'il n'y arrive pas!

    Premier message d'avertissement :

    "Certains fichiers peuvent contenir des virus...(...) Voulez-vous ouvrir ce fichier?"
    encore ça je peux comprendre même si je voudrais l'éviter

    Ensuite message d'erreur :

    "Impossible d'ouvrir \\Srv-sql\ftproot\Methodes\doc.pdf . Aucune application n'est associé à ce fichier"

    J'ai bien Adobe Reader d'installé sur la machine et je voudrais éviter de'avoir à spécifier le chemin de l'application car le pg va etre utilisé sur des machines différentes.

    Vous voyez une solution?

  5. #5
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    RE,
    je voudrais éviter de'avoir à spécifier le chemin de l'application car le pg va etre utilisé sur des machines différentes.
    Dans un cas comme celui-ci, il faudrait peut-être proposer à l'utilisateur de choisir lui même le fichier qu'il veut ouvrir. Ainsi sur le clic de ton bouton, ouverture d'une boîte de dialogue "Ouvrir fichier" et seulement là tu récupère le chemin et le nom du fichier sélectionné.

    Regarde le lien ci-dessous pour un exemple:
    http://access.developpez.com/faq/?pa...#AffBoitDialog

    Bonne continuation
    FreeAccess
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    oulala je vais paraître exigente mais je veu justement éviter de faire ça (j'veu éviter plein de choses en fait lol)

    J'ai une liste de fichiers pdf pour chaque client et un bouton "VOIR" à coté de chaque nom de fichier.

    Si j'ouvre une boite de dialogue où l'utilisateur doit retrouver parmi plusieurs fichiers celui qu'il veut ouvrir, c'est pas très utile (dans ce cas il va ouvrir le doc sans passer par le pg)

    Allons, un programmeur est capable d'offrir mieux que ça non?

    en tout cas merci pour l'attention ke vous portez à ma question, si qq voit une autre solution à ce problème, il est le bienvenu!

  7. #7
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Et pourquoi ne pas créer un champ avec le chemin de tes fichiers.

    Dès lors ou tu cliques sur le nom d'un de tes fichiers dans ta liste ,celle-ci renverrai le chemin de ton fichier.

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    euh... ft035580 je n'ai pas trop compris ta solution...

    Tu parles d'un champs dans une table ou dans un formulaire?

    parce que j'ai bien un champs dans ma table qui contient le chemin du fichier mais je suis pas sur que c de ça que tu voulais parler. Tu peux m'en dire plus stp?

  9. #9
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    RE,
    Je vais un peu répondre à la place de ft035580

    J'ai une liste de fichiers pdf pour chaque client et un bouton "VOIR" à coté de chaque nom de fichier.
    Donc si tu as une liste de tes fichiers, il doivent normalement être enregistrés dans une table
    En plus tu dis que tu as sur ton formulaire un bouton VOIR en face de chacun de ceux-ci pour permettre la visualisation de ces fichiers PDF.....
    Donc là, je ne comprends plus vraiment ton problème .......
    Si j'ouvre une boite de dialogue où l'utilisateur doit retrouver parmi plusieurs fichiers celui qu'il veut ouvrir, c'est pas très utile (dans ce cas il va ouvrir le doc sans passer par le pg)
    En plus ICI, je ne comprends pas ton souci, il suffit simplement de pointer directement dans le répertoire contenant UNIQUEMENT tes fichier PDF à partir de ton application.
    Reformule peut-être avec d'autres termes, ce que tu veux vraiment faire
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Ok je ne me suis pas bien expliquée alors. Voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    J'ai une liste de fichiers pdf pour chaque client et un bouton "VOIR" à 
    coté de chaque nom de fichier.
    C dans l'évenement click de ce bouton "Voir"(qui pour l'instant...ne sert à rien!) que je voudrais permettre l'ouverture du fichier pdf associé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Citation:
    Si j'ouvre une boite de dialogue où l'utilisateur doit retrouver parmi plusieurs
     fichiers celui qu'il veut ouvrir, c'est pas très utile (dans ce cas il va ouvrir le
     doc sans passer par le pg)
     
    En plus ICI, je ne comprends pas ton souci, il suffit simplement de pointer
     directement dans le répertoire contenant UNIQUEMENT tes fichier PDF à 
    partir de ton application.
    Reformule peut-être avec d'autres termes, ce que tu veux vraiment faire
    Tous les fichiers pdf peuvent être contenus dans un seul répertoire, ce n'est
    pas un problème.
    Mais il y a plus de 400 clients et chacun d'eux peut avoir plusieurs pdf !

    C'est pour cela que je pensais ouvrir directement le pdf associé au bouton "Voir" et éviter ainsi que les utilisateurs recherchent leur doc dans une boite de dialogue.

    Je ne peux pas faire un repertoire pour chaque client non plus ça poserait d'autres problèmes.

    Tu me propose d'utiliser la boite de dialogue "Ouvrir fichier". Je l'utilise pour ajouter un pdf à la liste des pdf existants ( ça ajoute le chemin du fichier dans une table). Mais je ne vois pa comment l'utiliser pour ouvrir (et visualiser) le fichier pdf.


    ........pô sure d'avoir été plus claire.....désolé.......des questions?

  11. #11
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    J'avais imaginé que tu avais une table clients avec pour champs:

    IDClients/NomClient/NomDuFichier/CheminAccès
    1 Client1 A.pdf C:..../...
    1 Client1 B.pdf C:..../...
    2 Client2 A.pdf C:..../...
    etc...... .

    A partir de là que tu avais crées une zone de liste répertoriant tous tes fichiers.

    Et en cliquant sur l'un d'eux,la zone "CheminAccès" alimentait ta zone de texte (= "Me.Chemin_fichier.Value")qui est le paramètre de ta fonction .

    Et qu'enfin,ta fonction était appeleé par ton bouton "VOIR"

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    mais tu as tout tout bien imaginé !

    J'ai réussi à lancer la fonction ShellExecute puisqu'il essaie d'ouvrir le fichier .
    Mon seul problème maintenant c'est le message d'erreur qu'il me renvoie :

    si je veux ouvrir doc.pdf dont le chemin complet est
    \\Srv-sql\ftproot\Methodes\doc.pdf

    il me renvoie :
    "Impossible d'ouvrir \\Srv-sql\ftproot\Methodes\doc.pdf . Aucune application
    n'est associé à ce fichier"


    J'ai vu sur d'autres posts ue l'on pouvait aussi ouvrir un fichier en indiquant le chemin de l'application associée (en l'occurence le chemin du .exe de adobe reader) Mais cette solution ne me convient pas étant donné que le formulaire sera utilisé sur différents ordinateurs (le chemin à donner ne sera jamias pareil)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Je retire ce que j'ai dit :

    La fonction ShellExecute ne fonctionne pas!

    en fait j'avais essayé une autre méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Commande13.HyperlinkAddress = CheminduFichier
    et c'est cela qui me renvoyait le message d'erreur dont je vous ai parlé.

    (désolé je fatigue, c sensé etre un jour férié aujourdui...)

    Donc retour au point de départ. Pourquoi ShellExecute ne fonctionne-t-il pas??

    Re-voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Commande13_Click()
    Dim CheminduFichier As String
     
     
    CheminduFichier = Me.Chemin_fichier.Value
     
    'je vérifie qu'il affiche bien le nom complet du fichier (c le cas)
    MsgBox CheminduFichier
     
    ShellExecute Me.hWnd, "open", CheminduFichier, "", "", 1
     
    End sub

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Galère galère...
    Re-bonjour!

    je voudrais pas insister mais je n'ai pas avancé depuis hier et c'est pas faute d'avoir essayé!

    Cette fonction ShellExecute semble toute simple à utiliser, personne n'a une idée du pourquoi elle ne fonctionne pas chez moi?

    Pour info, la fonction shellExecute me renvoie 3 ce qui correspond à "chemin d'accès introuvable" et pourtant j'arrive à ouvrir d'autres types de fichiers (même quand il se trouve dans le même rep que mes pdf). Il n'y a donc que le format pdf qui me pose problème...

    D'autre part , j'ai Access 2000.

    merci d'avance à ceux qui se pencheront sur mon problème!

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2009, 11h52
  2. je n'arrive pas à ouvrir un fichier
    Par sakura.haruno dans le forum C
    Réponses: 4
    Dernier message: 24/11/2007, 14h52
  3. Réponses: 11
    Dernier message: 25/10/2007, 17h09
  4. Réponses: 18
    Dernier message: 28/08/2007, 11h56
  5. Je n'arrive pas à ouvrir un fichier Excel
    Par Subkill dans le forum VBScript
    Réponses: 4
    Dernier message: 30/01/2007, 21h40

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