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 :

fonction aperçu sous VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 36
    Par défaut fonction aperçu sous VBA
    Bonjour

    Je développe une appli de gestion documentaire (Access 2003). J'utilise une fonction d'aperçu pour afficher le document demandé.

    Suite à un changement de machine, l'appli a été modifié sans que j'arrive à en comprendre la cause:
    Avant : la fonction aperçu ouvre les images (jpg) dans une application Paint(une fenêtre distincte/doc)
    Après : la fonction ouvre les images (jpg) dans IE7 (un onglet/doc). Alors que l'association à partir de l'explorateur utilise toujours Paint.

    Or, dans cette appli, j'ai prévu un chaînage des différentes pages d'un même article. Je souhaite donc pouvoir accéder par des btns de nav à mes doc.
    Je ne sais pas, à partir de VBA, identifier et sélectionner un onglet ouvert dans IE.

    Mon problème est donc le suivant :

    a) récupérer le nom de l'appli utilisée pour visualiser le document ?
    (Pour moi, cela dépend du poste qui exécute l'appli)
    b) comment fermer cette appli avant d'ouvrir le doc suivant?

    Merci de vos réponses

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2009
    Messages : 98
    Par défaut
    plustot que de devoir t'adapter a tous les cas de figure, il est plus pertinent de lancer une application parfaitement connue ou que tu as installe avec ton application. ENsuite, il suffit de la lancer comme tu faisais precedemment avec la commande shell (voir l'aide vba)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par zoulou153 Voir le message
    Alors que l'association à partir de l'explorateur utilise toujours Paint.
    Comment lances-tu ton affichage de fichier jpg ?
    As-tu testé avec l'API ShellExecute que l'on trouve dans la FAQ. Cela ouvre le document avec le fichier associé dans Windows.

    Philippe

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 36
    Par défaut
    Philippe, Belu33fr

    Merci de vos réponses.
    Tout d'abord pour répondre à vos question j'ai utilisé "CreateHyperlink " car que j'avais récupéré un code qui ouvrait un document de cette manière, que je l'avais testé et que cela répondait à mes attentes.
    Mais comme le fait judicieusement observer Belu33fr code pas maitrisé du tout
    Alors, pourquoi l'utiliser?
    Simplement parcequ'il me permet d'ouvrir tout mes fichiers 'image, son, dessins,musique etc... sans avoir à identifier et donc à préciser l'appli qui ouvre le fichier concerné au moment de l'appel. ceci pour le coté "avantage"
    côté inconvénient je ne sais pas récupérer l'id process.

    Donc pour tester le cas des "jpg" j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retval = Shell("mspaint.exe " & mydoc)
    qui fonctionne

    Pour la suite la doc VB indique qu'il est possible de sélectionner une fenêtre via : "appactivate retval" puis de fermer la fenêtre avec "SendKeys "%{F4}", True" ce qui correspond exactement à ce que souhaite.

    Mais je n'arrive pas à faire fonctionner mon test.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mydoc = "20090309222601.JPG"
    'Obtenir l'ID process
    retval = Shell("mspaint.exe " & mydoc)
    Debug.Print "id : " & retval
    'Activer la fenêtre
    AppActivate retval
    'fermer la fenêtre active
    SendKeys "%{F4}", True
    La fenêtre paint ne s'active pas, et c'est mon appli qui se ferme... - pas glop!!
    Avez vous une idée?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essayes avec le lien que je t'ai donné (de plus tu trouveras de nombreux exemples sur le sujet dans le forum).

    Philippe

Discussions similaires

  1. [XL-2003] Incrémentation de réponses avec Fonction Inputbox sous VBA
    Par thé-citron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2011, 17h06
  2. Fonction IF sous VBA
    Par RussellD dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/04/2010, 17h41
  3. L'équivalent de la fonction "PREVISION" sous VBA
    Par etorria dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2008, 00h00
  4. Fonction SI sous VBA
    Par tdaoui dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/01/2008, 21h14
  5. [VBA-E]Fonction Racine sous VBA
    Par vuong1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2007, 00h48

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