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

VBA Access Discussion :

Ouverture d'un fichier PDF specifique a une donnée.


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut Ouverture d'un fichier PDF specifique a une donnée.
    Bonjour,

    j'ai trouvé sur le forum une discussion, qui répond a mes besoins, en essayant de l'adapter a mon cas, c'est a dire en creant un module et mis le code sur l'evenement click, j'ai le message suivant Nom : image erreur.png
Affichages : 265
Taille : 259,6 Ko

    j'ai pris le soins de mettre le meme nom au fichier PDF comme a la valeur du champ, mais je n'arrive pas a voir d'ou proviens le probleme.

    merci

    cordialement.

  2. #2
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour adelion7015

    As-tu déclaré la fonction, en tète du module de ton formulaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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
    Dans ton code d'utilisation,le nom du fichier dans le 3° argument, son chemin (sans le nom du fichier) dans le 5° argument.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nomFich As String
        nomFich = Me.numero_devis & ".pdf"
        ShellExecute Me.hwnd, "open", nomFich, "", "C:\Desktop\blabla\image\", 1
    Me.hwnd est l'identifiant de la fenetre Windows (contenant ton formulaire).
    Cela m'étonnerai que ce soit 0.
    Cdlt

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour Thierry_PALLIER,

    Désolé pour ma réponse tardive.

    Je veux dire par specifique, c'est a dire, ouvrir un fichier PDF selon l'enregistrement, si la valeur du champ est a 1, ne cliquant dessus j'ouvrirais le fichier PDF 1 et ainsi de suite.

    Oui j'ai en tête de module cette fonction.

    merci

    Cordialement.

  4. #4
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour.
    Dans ta procédure évennementielle "Nom_Perimetres_Click()", j'imagine que c'est dans ce controle que se trouve le nom specifique du mail que tu veux ouvrir ?
    Le code que je t'ai donné ,en adaptant le nom du controle et du chemin, qui est achuré sur ton dessin, il n'y a pas de raison que celà ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nomFich As String
        nomFich = Me.Nom_Perimetre & ".pdf"
        ShellExecute Me.hwnd, "open", nomFich, "", "C:\Desktop\blabla\image\", 1
    A+

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    c'est en cliquant sur le champ Nom_Perimetres que cette action est censée ouvrir le fichier PDF affilié a la valeur du champ.

    a+

  6. #6
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Je reviens sur le sujet, parce-que j'ai essayé toute les combinaisons sans succé, quelqu'un pourrait est il avoir une solution s'il vous plait ?

    Cordialement.

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    SAlut,

    sur ta capture d'écran, ce qui est mis en avant c'est la partie de ton formulaire qui n'existe pas : Me.blabla

    Vérifie que tu pointes bien vers un des controles de ton formulaire.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    c'est a dire que je mettrais le nom du formulaire ?

    Me.frm_contrats

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    NOn, mais es-tu sur que Nom_Perimetres est un nom de control existant ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Oui c'est le nom d'un champ que j'ai d'ailleur decidé de changer, maintenant c'est [N° Contrat], pensant que le probleme etait au niveau du texte.

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Du coup mets à jour ton code en conséquence et reposte le nous, en nous disant si tu as toujours le même problème ou non stp.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #12
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub N°_Contrat_Click()
     
       ShellExecute 0, "open", "C:\Users\Desktop\Contrats\" & Me.N°_Contrat & ".pdf", vbNullString, vbNullString, 1
     
    End Sub
    et j'ai crée un module openpdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
     
    Private Declare PtrSafe 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

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Si tu mets la fonction en Private en dehors du module, ca ne marchera pas, il te faut la basculer en Public

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Declare PtrSafe 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
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  14. #14
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    parfait ca marche, merci beaucoup


    cordialement

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

Discussions similaires

  1. Ouvrir un PDF specifique a une donné
    Par stcentor dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/10/2015, 15h04
  2. Réponses: 4
    Dernier message: 31/01/2015, 00h26
  3. [VBA] Ouverture d'un fichier PDF à une page précise
    Par jambon_beurre dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/09/2013, 13h32
  4. Ouverture d'un fichier PDF
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 03/02/2009, 17h09
  5. [Système] ouverture d'un fichier pdf
    Par joneil dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 17/05/2005, 10h36

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