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 :

Comment écrire une fonction VBA Access qui ramène les images d'un dossier? [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut Comment écrire une fonction VBA Access qui ramène les images d'un dossier?
    Salut membres du forum !
    Je souhaite afficher l'image de chaque élève du Dossier_Images sur un formulaire.
    Chaque image porte un matricule(numérique) suivi des Noms (en lettre). Cependant, je sollicite de l'aide afin d'écrire une fonction qui pourrait afficher l'image du nom alpha numérique d'élève qui reçoit le focus.
    Cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 131
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Tu peux mettre ce bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub photo_AfterUpdate()
      Dim chemin As String
     
           ' Chemin d'accès à l'image = Répertoire de base + Nom de l'image
      Chemin = "c:\image\"+cstr(me.matricule)+me.noms
     
          ' Charger l'image
          Me![imgApercu].photo = chemin
      End If
    End Sub
    Je l'ai ecrit rapidement sans avoir tester les erreurs de syntaxe eventuel, mais cela devrait fonctionner

  3. #3
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonsoir !

    Je vous envoie la pièce jointe de ma base de D. avec les capture des messages d'erreurs.
    Nom : CaptureErreurImage1.PNG
Affichages : 553
Taille : 28,3 Ko
    Nom : CaptureErreurImage2.PNG
Affichages : 519
Taille : 12,9 Ko
    Fichiers attachés Fichiers attachés

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 131
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Il faudrait que tu écrives plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![ImageEleve].Picture = chemin
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ImageEleve.Picture = chemin
    Autre chose dans ton chemin il faut que tu spécifie aussi le type de fichier image comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "C:\Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT\" + CStr(Me.MleEleve_Image) + Me.NomPrenomsEleve+".jpg"
    ici j'ai considéré que ton image est du jpg a toi de changer en fonction de ton extension de fichier

  5. #5
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonjour !
    J'ai effectué les changements comme vous me les avez demandé, voici les messages d'erreur:
    Nom : CaptureErreurImage3.PNG
Affichages : 513
Taille : 27,7 Ko
    Nom : CaptureErreurImage4.PNG
Affichages : 568
Taille : 14,8 Ko
    Cordialement.

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 131
    Points : 151
    Points
    151
    Par défaut
    Ok en fait il ne trouve pas le fichier.
    Es ce que tu peux me donner le nom du fichier photo correspondant à cette élève?

  7. #7
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par volsan Voir le message
    Ok en fait il ne trouve pas le fichier.
    Es ce que tu peux me donner le nom du fichier photo correspondant à cette élève?
    Bonsoir !
    Je vous envoie une partie du dossier d'images "Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT".
    Cordialement.
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 131
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    voila ce qui faut modifier car on se retrouvait 2 fois avec le matricule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "C:\Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT\"+Me.NomPrenomsEleve+".jpg"
    Ensuite pour l'affichage tes photos il vaut mieux que mettre ta fonction plutôt dans ton formulaire comme ceci:
    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 Form_Current()
      Me.Txt_CouleurLigne = Me.MleEleve_Image
     
      Dim chemin As String
     
           ' Chemin d'accès à l'image = Répertoire de la base + Nom de l'image
      chemin = "C:\Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT\" + Me.NomPrenomsEleve + ".jpg"
     
          ' Charger l'image
          Me![ImageEleve].Picture = chemin
          'Me.ImageEleve.Picture = chemin
     
    End Sub
    Et cela donne ceci
    Nom : ecran1.jpg
Affichages : 544
Taille : 301,8 Ko

  9. #9
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonsoir !
    Cette ligne du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![ImageEleve].Picture = chemin
    génère des messages d'erreur:
    Nom : aaaaa.PNG
Affichages : 475
Taille : 29,8 Ko
    Nom : bbbb.PNG
Affichages : 464
Taille : 10,6 Ko
    Par contre celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me![ID_CheminImage] = chemin
    ramène le chemin de l'image dans le champ "ID_CheminImage" de la table "Tbl_Album_ImagesEleves"..
    Mon objectif est de pouvoir afficher l'image de la ligne qui reçoit le focus; ce qui n'est pas le cas.
    Nom : cccc.PNG
Affichages : 515
Taille : 64,4 Ko

    Cordialement.

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonsoir morobaboumar,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim chemin As String
     
           ' Chemin d'accès à l'image = Répertoire de la base + Nom de l'image
      chemin = "C:\Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT\" + Me.NomPrenomsEleve + ".jpg"
     
          ' Charger l'image
          Me![ImageEleve].Picture = chemin
    le code donné par volsan fonctionne bien, j'ai testé la base avec le dossier photos fourni. Donc le problème ne vient pas du code.

    L'erreur VBA 2220 est levée lorsque le fichier ne peut pas être chargé: soit parce qu'il n'existe pas ou qu'Access ne le trouve pas, soit parce qu'il n'est pas accessible (permissions), soit parce que ce n'est pas un fichier image.

    Pour ne pas rester bloquer, il faudrait essayer au moins les solutions suivantes:
    - donner un nom plus simple au dossier (par exemple C:\Photos) juste pour savoir si ce n'est pas à cause de l'accent de Elèves.
    - vérifier dans les propriétés du dossier si il est accessible en lecture
    - vérifier dans les propriétés des fichiers si ils sont accessibles en lecture

  11. #11
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonjour Volsan et tee_grandbois !
    J'ai renommé le dossier d'images avec "PhotosElevesECIND" mais ça ne marche.
    Je vous rappelle que j'utilise Access 2013.
    Nom : gggg.PNG
Affichages : 472
Taille : 8,3 Ko
    Je vous envoie la pièce jointe complète.

    Cordialement !
    Fichiers attachés Fichiers attachés

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonjour,
    cela ne sert à rien de poster encore la base, je répète que le code actuel a été testé et il fonctionne.

    Le problème se situe sur ton PC (emplacement et/ou l'accessibilité du dossier et/ou des fichiers)

    Concernant ces solutions :
    - vérifier dans les propriétés du dossier si il est accessible en lecture
    - vérifier dans les propriétés des fichiers si ils sont accessibles en lecture
    quel est le retour ?

    éventuellement, ajoute cette instruction: MsgBox chemin juste après: chemin = "C:\PhotosElevesECIND\" + Me.NomPrenomsEleve + ".jpg" pour vérifier que le chemin de l'image est correct.

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    je te conseille d'arrêter de modifier ce code et de mettre le dossier photos au même endroit que ta base:
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Current()
      Me.Txt_CouleurLigne = Me.MleEleve_Image
      Dim chemin As String
     
           ' Chemin d'accès à l'image = Répertoire de la base + Nom de l'image
      chemin = CurrentProject.Path & "\PhotosElevesECIND\" & Me.NomPrenomsEleve & ".jpg"
          ' Charger l'image
          Me![ImageEleve].Picture = chemin
    End Sub

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    La concaténation de texte se fait avec "&" et non avec +. Cela pourrait être source d'erreur avec les nom des variables concaténés.

    Cordialement.

  15. #15
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut Remerciement
    Bonjour !
    Merci infiniment à vous tee_grandbois,
    volsan,
    madefemere

    ainsi qu'à toute la famille Développez.net !

    Cordialement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2016, 08h34
  2. Comment appeler une fonction VBA outlook depuis visual studio ?
    Par ArMen56K dans le forum Visual Studio
    Réponses: 0
    Dernier message: 08/10/2015, 18h33
  3. Réponses: 4
    Dernier message: 04/10/2015, 11h04
  4. Réponses: 3
    Dernier message: 18/04/2011, 09h52
  5. [XL-2003] Comment rendre une macro VBA accessible à tous les fichiers .xls
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/01/2011, 21h23

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