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

IHM Discussion :

Photo à partir d'une listbox dans formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut Photo à partir d'une listbox dans formulaire
    Bonjour,

    J'ai crée un formulaire de recherche sur plusieurs tables à partir du tuto de cafeine, merci à lui, et j' aimerai savoir s'il est possible d'afficher des photos à partir du résultat renvoyé.
    Je m'explique: j'aimerai que lorsque mon curseur se déplace sur le résultat de ma recherche(qui se trouve dans une listbox) , des photos s'affiche en fonction de mes enregistrements.

    Est-il possible de faire ça?

    Merci de votre coup de main

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Moi aussi

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Excuse moi Tofalu , mon message est partit un peu avant l'heure

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    On ne peux pas afficher une photo dans une listview. Il te faudra passer par un formulaire qui viendra se placer là où est là souris, ou bien définir une zone réservée avec une image par exemple dans un coin du formulaire principal. Dans tout les cas, tu va avoir besoin d'un autre tuto de cafeine concernant l'utilisation des images dans Access

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    En fait je voudrais placer ma zone réservée pour l'image dans mon formulaire principal, avec ma listbox à coté.

    Merci, je vais tester en mettant mon code dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub lstResults_GotFocus()
    Dans tout les cas, tu va avoir besoin d'un autre tuto de cafeine concernant l'utilisation des images dans Access
    On vera ... (j'y crois)

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    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
    13
    14
     
    Private Sub lstResults_GotFocus()
    If Dir(CurrentProject.Path & "\Photo\" & Aircraft_Register & ".jpg", vbHidden) <> "" Then
           Me.imgPhoto = CurrentProject.Path & "\Photo\" & Aircraft_Register & ".jpg"
    End If
    If Me.imgPhoto.ImageHeight > Me.imgPhoto.Height Then
        Me.imgPhoto.SizeMode = 3
    Else
        Me.imgPhoto.SizeMode = 0
    End If
    If (Me.imgPhoto.ImageWidth > Me.imgPhoto.Width) And (Me.imgPhoto.SizeMode) = 0 Then
        Me.imgPhoto.SizeMode = 3
    End If
    End Sub
    imgPhoto est le nom de l'emplacement de l'image
    et Aircraft_Register est le nom de mes photos

    Est-ce que quelqu'un a une idée?
    je n'ai pas d'erreur mais les photos ne s'affiche pas...
    Merci

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    ce code devrait fonctionner, mais sur l'événement OnClick de la liste

    que cherche tu a faire avec le GotFocus?
    afficher l'image dont le nom est survolé par la souris?

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Bonjour Arkham46,
    merci pour ton aide

    Voilà j'avais dans l'idée qu'une fois ma recherche terminer, j'aurai pu en me déplaçant dans ma listbox avec la flèche directionnelle, visualiser mes photos pour les enregistrements trouvés, sans utiliser forcement la souris.
    Je pensais que GotFocus était dans ce cas plus approprié que OnClick, mais apparemment c'était pas ça.
    J'ai essayé avec OnClick mon résultat est le même.

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    Aircraft_Register c'est quoi?
    un contrôle?
    une variable?
    c'est rempli comment?

    A priori si tu navigues dans la liste lstResults alors le nom de l'image est dans une colonne de cette liste non?

  10. #10
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Aircraft_Register est le nom de mon champ correspondant à ma clé primaire (de type texte). Je dispose d'un fichier (Photo) ou je stock mes photos, chaque photo a pour le nom celui de son Aircraft_Register correspondant.
    J'ai également un champs Photo dans ma table ou je stock le chemin relatif de la photo pour chaque enregistrement.

    Ma liste lstResults contient le nom de l'image Aircraft_Register, doit elle contenir également celui de son chemin relatif(Photo)?

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Mon erreur renvoyée est une erreur d'exécution'2220':
    Microsoft Office Access ne peut ouvrir le fichier "\\Issy-data\DEA6-DPG\Service Commercial\Alexandre'.

    Et mon code renvoyé au débogage est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub lstResults_Click()
    If Len(Me.Photo & "") <> "" Then
        Me.imgPhoto.Picture = CurrentProject.Path & Me.Photo
    End If
    DisplayPhoto
    Exit Sub
    apparemment un problème sur la ligne Me.imgPhoto...

    Merci de votre coup de main,
    si vous avez la moindre idée ...
    Cordialement

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    'soir,

    apparement il ne trouve pas la photo c'est tout

    y a pas d'extension au fichier, c'est normal?

  13. #13
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    slt Arkham46,

    j'ai crée un champ Photo dans ma table qui stock le chemin relatif de la photo ex: \Photo\3A-MAC.jpg à partir d'un code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Dir(CurrentProject.Path & "\Photo\" & Aircraft_Register & ".jpg", vbHidden) <> "" Then
            Me.Photo = "\Photo\" & Aircraft_Register & ".jpg"
    End If
    si je mets mon code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub lstResults_Click()
    If Dir(CurrentProject.Path & "\Photo\" & Aircraft_Register & ".jpg", vbHidden) <> "" Then
            Me.Photo = "\Photo\" & Aircraft_Register & ".jpg"
    End If
    If Len(Me.Photo & "") > 0 Then
        Me.imgPhoto.Picture = CurrentProject.Path & Me.Photo
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\Photo\blank.jpg"
    End If
    DisplayPhoto
    Exit Sub
    j'ai pas d'erreur mais la photo blank pour tous mes enregistrements de ma listbox
    ce code marche sur un formulaire normal mais je n'ai réussi à l'adapter à ma listbox.

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    il faut aller chercher le nom de la photo dans la liste, à la place de Aircraft_Register (je ne comprend toujours pas ce qu'il fait là ce champ; peut-être sert-il à remplir la liste mais il ne prend pas la valeur sélectionnée pour autant)

    Genre :

  15. #15
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    il faut aller chercher le nom de la photo dans la liste, à la place de Aircraft_Register
    bah en fait, la photo (photo d'hélico) dans mon fichier a le nom du numéro d'immatriculation de cet hélico (Aircraft_Register).
    Il se trouve que dans ma table, Aircraft_Register est aussi la clé primaire de ma table.
    Donc en théorie le programme devrait, dans la listbox, à partir de la clé primaire (Aircraft_Register) rechercher s'il existe une photo qui porte le même nom dans mon fichier Photo, et si oui alors l'afficher.
    J'ai

  16. #16
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    J'ai un autre champs Photo qui lui stock le chemin relatif de la photo.
    je ne l'ai pas mis dans ma listbox, faut-il?
    tu disais qu'il fallait que le nom de la photo soit dans ma listbox, donc Aircraft_Register devrait suffire...?

    Encore merci pour ton aide.

  17. #17
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    ben résumons :
    1 - tu remplis ta liste avec les valeurs de Aircraft_Register
    2 - tu cliques sur ta liste, donc sa valeur change
    3 - en VBA tu utilises la valeur de la liste, donc Me.lstResults.Value

    Dans ton formulaire Aircraft_Register correspond à la valeur du champ Aircraft_Register de l'enregistrement courant; rien à voir avec la valeur de la liste qui elle varie en fonction de choix dans cette même liste

  18. #18
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Ca marche... Arkham46

    J'ai utilisé Me.lstResults.Value... et non pas Aircraft_Register

    3 - en VBA tu utilises la valeur de la liste, donc Me.lstResults.Value
    merci du coup de main
    Voici le code pour afficher des photos à partir d'une listbox:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Private Sub lstResults_Click()
    If Dir(CurrentProject.Path & "\Photo\" & Me.lstResults.Value & ".jpg", vbHidden) <> "" Then
                    Me.imgPhoto.Picture = CurrentProject.Path & "\Photo\" & Me.lstResults.Value & ".jpg"
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\Photo\blank.jpg"
    End If
     
    DisplayPhoto
    Exit Sub
    Catch02:
    Select Case Err.Number
        Case 2114
            'Cas d'un type de fichier photo non supporté ...
            MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos"
            Me.imgPhoto.Picture = CurrentProject.Path & "\Photo\blank.jpg"
            Me.Photo = vbNullString
        Case 2220
            'Cas d'un emplacement non valide du fichier images
            MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _
                    Me.Photo, vbCritical + vbOKOnly, "Application Photos"
            Me.imgPhoto.Picture = CurrentProject.Path & "\Photo\blank.jpg"
            Me.Photo = vbNullString
        Case Else
            ' tout autre cas d'erreur
            MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos"
    End Select
    Err.Clear
    End Sub
    Sub DisplayPhoto()
    ' Traitement en fonction de la taille de l'image
    ' regarde si la hauteur de l'image dépasse celle du controle Picture
    If Me.imgPhoto.ImageHeight > Me.imgPhoto.Height Then
        ' met le controle en mode zoom
        Me.imgPhoto.SizeMode = 3
    Else
        ' met le contrôle en mode respect de la taille originale
        Me.imgPhoto.SizeMode = 0
    End If
    ' si la largeur dépasse et qu'on est en mode taille réelle ...
    If (Me.imgPhoto.ImageWidth > Me.imgPhoto.Width) And (Me.imgPhoto.SizeMode) = 0 Then
        ' on met en mode zoom
        Me.imgPhoto.SizeMode = 3
    End If
    End Sub

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

Discussions similaires

  1. [XL-2000] formulaire à partir d'une liste dans différent fichiers
    Par Avinetor dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/06/2009, 18h51
  2. Réponses: 1
    Dernier message: 18/03/2009, 14h03
  3. Réponses: 3
    Dernier message: 23/10/2008, 14h21
  4. Réponses: 2
    Dernier message: 21/03/2008, 09h19
  5. Choisir à partir d'une table dans un formulaire
    Par couguar dans le forum IHM
    Réponses: 28
    Dernier message: 06/06/2006, 08h47

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