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

VB 6 et antérieur Discussion :

Afficher une image sur un formulaire à partir d'une base de données


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2015
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Afficher une image sur un formulaire à partir d'une base de données
    Bonjour à tous

    je suis entrain de développer une application dans laquelle je veux que chaque collaborateur enregistré dans la base de données oracle 10g ait sa propre photo donc je veux que quand je consulte les données du collaborateur comme son matricule, nom prénoms, date d'embauche sa photo apparaît dans un contrôle image ou PictureBox, mais je bloque.
    Merci les amis de m'aider a résoudre ce blocage, j'utilise VB6.

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Bonjour et Bienvenu SUR DVP

    D'abord, il doit être clair que je n'ai pas utilisé les BDDs Oracle avec VB6 et je sais pas comment elles sont agencées.

    Mais l'idée que je propose pourrait fonctionner pour le cas présent :
    1) Utilise un contrôle ImageList depuis le fichier Mscomctl.ocx appelé Microsoft Windows Common Controls 6.0(SP6)
    2) Utilise un contrôle PictureBox (ou indifféremment un contrôle Image)
    3) Attribue, dans ImageList, à la photo de chaque collaborateur un index qui serait le même que l'ID dans la base de données.
    4) La clé(Key) dans ImageList pourrait être le même Index mais sous forme de chaine de caractères par exemple si l'index est 10, on devrait
    mettre "10" pour la clé(ou Key).
    5) Dans l'événement Click sur la liste des collaborateurs, place le code qui renvoi la photo correspondant à un collaborateur selon l'index précité.
    Par exemple (pour un PictureBox ou Image) si T est l'index(ou ID dans la BDD) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Picture1.Picture = ImageList1.ListImages(T).Picture
    Image1.Picture = ImageList1.ListImages(T).Picture
    Essaie avec cette méthode puis reviens dire ce qu'il en est.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2015
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci bcp
    j’essayerai et je vous mets au courant

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2015
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    bonjour,

    le problème n'est pas résolu je vous explique:
    j'ai le matricule comme clé primaire dans la table collaborateur et une listbox qui affiche les matricules, je veux qu'on je sélectionne le matricule dans la listebox l'image du collaborateur s'affiche dans image ou picturebox
    merci de m'aider

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 645
    Points
    16 645
    Par défaut
    Salut

    Ton Titre
    sauver l'image à partir d'un formulaire à la base de données
    Dans ton dernier message:
    je veux que quand je sélectionne le matricule dans la listbox, l'image du collaborateur s'affiche dans un contrôle Image ou PictureBox
    ? sauvegarde ou affichage ?

    En supposant que les photos soient des fichiers images et quelles soient dans un sous dossier de ton programme, tu pourrais nommer ces images comme le nom plus prénom plus matricule de ta BDs.
    Exemple:
    Mr Durant Michel 1234, nom du fichier égal DurantMichel1234.jpg
    Soit au moment de l'ouverture de la table, créer un ListBox avec propriété List = Nom & " " & Prénom, propriété ItemData = matricule

    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
    Option Explicit
    Dim DossRacine As String
     
    Private Sub Form_Load()
    DossRacine = App.Path
    ChargeTblBDS
     
    End Sub
    Private Sub ChargeTblBDS()
    Dim CnX As New ADODB.Connection 'pour la connexion à la BD
    Dim Rs As New ADODB.Recordset '
    ' remplir le ListBox
    Rs.Open "collaborateur", CnX, adOpenStatic, adLockPessimistic
    Do While Not Rs.EOF
        List1.AddItem Rs.Fields("Nom") & " " & Rs.Fields("Prenom")
        List1.ItemData(List1.NewIndex) = Rs.Fields("Matricule")
        Rs.MoveNext 'passage à l'enregistrement suivant
    Loop
    Rs.Close
    End Sub
    Private Sub List1_Click()
    'pour actualiser l'image du collaborateur
    Dim CheminImage As String
    CheminImage = DossRacine & "\Dossier Photos\" & Replace(List1.List(List1.ListIndex), " ", "") & List1.ItemData & ".jpg"
    Image1.Picture = LoadPicture(CheminImage)
    End Sub
    Motif de l'édit: ajout de la ligne N°17 dans le code

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2015
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    premièrement merci infiniment pour votre aide
    ensuite moi mon idée si c'est possible d'utiliser un ImageList depuis le fichier Mscomctl.ocx et picturebox
    et une listebox ou il y'a la clé primaire Matricule, qu'on clique sur matricule dans liste box l'image s'affiche dans le picturebox
    exp:
    Collab:
    Matricule: 341
    Nom : Dupont
    Prénom Jack
    j'ai une listbox pour chaque champs: list1: 341 liste2: Dupont list3: Jack
    et qu'on je sélectionne 341 l'image de jack s'affiche dans picturebox qui est déja stocké dans ImageList
    Merci de voir ci c'est possible

  7. #7
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Il me semble que la solution proposée par ProjElecT (salut) est pratiquement parfaite.

    Mais si tu veux absolument utiliser 3 ListBox, modifie la dernière partie du code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Do While Not Rs.EOF
        List1.AddItem Rs.Fields("Matricule")
        List2.AddItem Rs.Fields("Nom")  
        List3.AddItem Rs.Fields("Prenom")
    Loop
    Rs.Close
    End Sub
    Private Sub List1_Click()
       'pour actualiser l'image du collaborateur
       Dim CheminImage As String
       CheminImage = DossRacine & "\Dossier Photos\" & List1.List(List1.ListIndex) & ".jpg"
       Image1.Picture = LoadPicture(CheminImage)
    End Sub
    Cela suppose que le dossier contient des images(.jpg) dont le nom correspond au matricule pour chaque collaborateur.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2015
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    mais il y'a une possibilité au lieu d'utiliser un dossier pour les images j'utilise le contrôle imagelist ??
    et merci

  9. #9
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Si les matricules dans la base de données sont dans un ordre croissant, et que les images introduites dans ImageList1 sont dans le même ordre, tu peux essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub List1_Click()
       Image1.Picture = ImageList1.ListImages(List1.ListIndex+1).Picture
    End Sub
    Le +1 c'est parce que le premier élément d'un ImageList est indexé à 1 et le premier index pour List1 est 0(zéro)

Discussions similaires

  1. Une image en session ou comment renvoyer une image sur une page
    Par a tunar with no tune dans le forum Spring
    Réponses: 1
    Dernier message: 26/01/2012, 10h02
  2. Réponses: 9
    Dernier message: 17/09/2008, 14h13
  3. Réponses: 4
    Dernier message: 01/07/2007, 13h59
  4. Réponses: 4
    Dernier message: 28/06/2007, 19h51
  5. Réponses: 3
    Dernier message: 19/01/2006, 15h08

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