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 :

Ouvrir plusieurs images dans des fenêtres distinctes


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut Ouvrir plusieurs images dans des fenêtres distinctes
    Bonjour,

    afin d'alléger ma BD, je stocke le chemin d'accès à des images stockés ailleurs sur le serveur. Un même enregistrement peut contenir plusieurs images. Je me suis fié à la FAQ pour savoir comment ouvrir une image ou autre fichier via ShellExecute en connaissant sont emplacement.

    Par contre, lorsqu'il y a plusieurs images, j'aimerais bien que celles-ci s'ouvre toutes dans des fenêtres distinctes de l'aperçu Windows par exemple. J'ai donc créé une boucle for qui appelle la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    erreurShell = ShellExecute(Me.hwnd, "open", chemin, "", CurrentProject.Path, 1)
    (où chemin est le chemin complet de l'image) autant de fois qu'il y a d'image. Le souci c'est que je me retrouve au final avec soit la première ou bien la dernière photo affichée.

    Est-ce que quelqu'un connaîtrait une stratégie pour pallier à ce problème?

    Merci beaucoup!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    suite à mes recherches du week-end et aux tests que j'ai effectué aujourd'hui, je commence à douter que la fonction ShellExecute soit la plus adaptée à mon problème. En effet, il semble que cette fonction ouvre (dans mon cas) les fichiers (images dans le cas présent) toujours dans la même fenêtre. En comparaison, lorsque j'utilise la fonction Shell pour lancer la calculatrice Windows par exemple, je peux lancer autant d'instances (dans des fenêtres séparées) que je le désire.

    Je me demande donc si j'utilise la bonne fonction ou bien si j'essaie avec les mauvais outils?

    Merci d'avance!

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    je me permet de ré-ouvrir cette discussion puisque je n'ai malheureusement toujours pas trouvé mon bonheur... Je post ici mon code complet, pour donner une meilleure idée de mon application :

    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
    19
    If Not Nz(champRepertoireDessin, "") = "" Then      ' Si le champ contenant les chemins d'accès n'est pas vide, alors...
     
        listeChemins = Split(champRepertoireDessin.Value, ";")  ' Le tableau dynamique est chargé avec la liste des chemins d'accès (un chemin d'accès par cellule du tableau).
     
        For i = 0 To UBound(listeChemins)   ' Pour tous les chemins d'accès, un par un, faire :
     
            chemin = listeChemins(i)        ' On "isole" le chemin d'accès courant dans une variable.
            MsgBox chemin                    ' Pour débogage seulement.
            erreurShell = ShellExecute(Me.hwnd, "open", chemin, "", CurrentProject.Path, 1) ' On ouvre le fichier pointé par le chemin d'accès.
     
            If erreurShell <= 32 Then       ' Si erreurShell vaut 32 ou moins, alors... (si erreurShell vaut plus de 32, c'est qu'aucune erreur n'est survenue)
     
            MsgBox "Il a été impossible d'ouvrir le fichier : " & chemin & ". Vérifiez que le chemin est exact et que le fichier existe toujours.", vbOKOnly + vbInformation, "Impossible d'ouvrir le fichier spécifié" ' C'est qu'une erreur s'est produite.
     
            End If
     
        Next i
     
    End If
    Lorsque j'exécute ce code avec le msgbox, je peux confirmer que les différents chemins de toutes les images sont bien extraits un à un sans aucun problème. Le problème semble résider au niveau de l'affichage; il m'est en effet impossible d'ouvrir plusieurs instances de l'aperçu des images windows. Toutefois, j'ai fait le test et en fermant l'aperçu à chaque apparition de la msgbox, l'aperçu des images windows ouvre à nouveau avec l'image suivante sans problème.

    Idéalement, je désirerais pouvoir ouvrir toutes les images dans des fenêtres distinctes de l'aperçu des images windows... cela est-il possible?

    Merci beaucoup!

Discussions similaires

  1. Visualiser plusieurs images dans la même fenêtre
    Par SmileSoft dans le forum OpenCV
    Réponses: 2
    Dernier message: 11/04/2012, 17h42
  2. [Débutant] Comment afficher plusieurs images dans des axes differents
    Par DOUBLE_H dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 07/06/2011, 23h22
  3. ouvrir une image dans une nouvelle fenêtre
    Par cFranssen dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/01/2011, 20h46
  4. Scripter IE7 pour ouvrir plusieurs url dans des onglets
    Par Ttienne dans le forum VBScript
    Réponses: 13
    Dernier message: 02/04/2008, 23h34
  5. Affichage d'images dans une fenêtre
    Par tonycalv dans le forum MFC
    Réponses: 6
    Dernier message: 20/04/2005, 20h02

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