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 :

Erreur à l'ouverture d'un .pdf avec l'API ShellExecute [AC-2010]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Erreur à l'ouverture d'un .pdf avec l'API ShellExecute
    Bonjour à tous,

    J'arrive au terme du développement d'un petit logiciel de gestion de cabinet médical et je viens vers vous pour une aide sur l'utilisation de l'API ShellExecute.

    Le formulaire concerné dispose d'une liste déroulante alimentée par la base de données patient. La sélection du patient entraîne l'affichage de son nom et de son prénom dans 2 TextBox et active un bouton.
    Au clic sur ce bouton, j'aimerais ouvrir un fichier .pdf de rapport lié au patient.

    Voilà mon code VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
     
    #If Win64 Then 'La machine utilisée tourne en 64 bits
       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
    #Else
       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
    #End If
     
    Private Sub CmdOuv_Click()
       Dim chemin, nom, prenom As String
       nom = LCase(NomTextBox.Value) 'De même pour prenom
       chemin = "C:\BLABLA\" & nom & "_" & prenom & ".pdf"
       OuvrirShellExecute (chemin)
    End Sub
     
    Public Function OuvrirShellExecute(strFichier)
       ShellExecute 0, "open", strFichier, vbNullString, vbNullString, 1
    End Function
    Et l'erreur générée au clic sur le bouton :
    "Des constantes, chaînes de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de modules d'objet."

    Quelqu'un saurait-il m'éclairer ?

    Merci d'avance,

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Problème résolu !

    La déclaration de la fonction est à mettre dans un module. Et il y avait une petite erreur dans l'appel de la fonction.

    Dans le module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #If Win64 Then 'La machine utilisée tourne en 64 bits
       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
    #Else
       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
    #End If
     
    Public Function OuvrirShellExecute(strFichier, Chemin_fichier)
       ShellExecute 0, "open", strFichier, vbNullString, Chemin_fichier, 1
    End Function
    Dans le VBA du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CmdOuv_Click()
       Dim chemin, nom, prenom As String
       nom = LCase(NomTextBox.Value) 'De même pour prenom
       chemin = "C:\BLABLA\" & nom & "_" & prenom & ".pdf"
       rep = "C:\BLABLA\"
       OuvrirShellExecute chemin,rep
    End Sub

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

Discussions similaires

  1. Erreur d'ouverture de l'URL avec AMFPHP
    Par kyfr59 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 11/04/2011, 13h29
  2. Erreur d'ouverture d'image TIFF avec imread
    Par ness522 dans le forum OpenCV
    Réponses: 1
    Dernier message: 27/02/2010, 13h48
  3. Ouverture d'un PDF avec accent dans une page HTML
    Par Mumux dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/08/2009, 17h35
  4. [Adobe Acrobat] Erreur d'ouverture pdf v 6.0 avec Reader 4.0
    Par batou22003 dans le forum Autres langages
    Réponses: 3
    Dernier message: 20/12/2005, 17h43
  5. Erreur sur l'ouverture d'un formulaire avec condition
    Par Virgile59 dans le forum Access
    Réponses: 4
    Dernier message: 08/11/2005, 14h16

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