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 :

Sauvegarder des images dans la base des données access


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 32
    Points
    32
    Par défaut Sauvegarder des images dans la base des données access
    Bonjour à tous
    Je vous serais trés reconnaissant si vous m'aidez à savoir comment ajouter des images a une base de données access.
    Par je me sert de ce code pour ajouter des données de forme text ou numérique.
    RS!Nom = Text1.Text
    RS!Prenom= Text2.Text
    RS!Age = Text3.Text
    RS!Tel= Text14.Text
    Aprés avoir charger par le commonDialog une image sur la form :
    j'ai ajouter :
    RS!Photo = image1.picture

    mais malheureusement ça n'a pas marché mème en changent le type de champs sur la table access (objet ole)
    merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    Essayes de faire ainsi :

    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    pour sauvegarder 
    'Ouvrir le fichier et le lire comme binaire
     
            Open FICHIER For Binary Access Read As #1
            FichierBinaire = Space(LOF(1))
            Get #1, , FichierBinaire
            Close #1
     
            'AJOUTER LE FICHIER A LA BASE DE DONNEES
            rs.AddNew
            rs!Nom_Img = TITRE_FICHIER
            rs!Image = FichierBinaire 
            rs.Update
    Et pour le lire après de ta base de donnees , fais quelque chose du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FichierDeSortie = rs!Image
            'Ecrire le fichier
            Open App.Path & "\Temp.bmp" For Binary Access Write _
                As #1
            Put #1, , FichierDeSortie
            Close #1
     
            Image1.Picture = LoadPicture(App.Path & "\Temp.bmp")

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 32
    Points
    32
    Par défaut
    Merci justgreat! you're really great!
    Malheureusement je suis loin de comprendre et manipuler ces codes.
    Comme vous povez constater, j'ai déjà des codes pour ajouter, enregistrer, rechercher (cmd_ajouter) - (cmd_enregistrer) - (cmd_recherche). Tous ces codes fonctionnent bien pour ajouter ou rechercher des donnés dans ma base de données.
    Par exemple pour le code cmd-ajouter, j'ai ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Set RS = New ADODB.Recordset
     
     If Text1 <> "" Then
     
    RS.Open "select * from table1" & _
            " where nom    = '" & Text1.Text & "' " & _
            "   and prenom = '" & Text2.Text & "'", _
            DB, adOpenDynamic, adLockOptimistic
            End If
        If RS.BOF = False Then
            MsgBox "Fiche existante. Impossible de créer."
        Else
            RS.Close       
            RS.Open "select * from table1", _
                    DB, adOpenDynamic, adLockOptimistic
            RS.AddNew
               RS!Nom = Text1.Text
                RS!prenom= Text2.Text
                RS!age= Text3.Text
                RS!tel= Text4.Text
                RS!obs = Text5.Text
                RS!type = Text5.Text
     
            RS.Update
    La mème chose pour les atres boutons.

    Ma question: Ou dois-je ajouter ces codes?
    Désolé pour mon érangement..

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

    Il est déconseillé d'ajouter des images dans Access, cela fait gonfler dangereusement une base, et mets en péril les performances.

    On stocke le chemin de l'image dans la base et non l'image.

    Philippe

  5. #5
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    Bonjour le Forum

    comme il a souligné Phillpe il faut ce contenter d'enregistrer uniquement le chemin et non pas l'image ( ObjetOle) en Access pour ce faire :

    tu va ajouter un répertoire dans ton application la ou tu va stocker les images que tu nomme "image"
    tu doit aussi ajouter un commandbutton dans ta form un textbox que tu nomme "Txtimg" et un controle commndialog que tu nomme "Dlg" un timer.

    dans l'événement click de commandbutton tu ajoute ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Dim FicDest As String
    Dim ficSource As String
    Dim reponse As Byte
     'Attribue à CancelError la valeur True
      Dlg.CancelError = True
      On Error GoTo errhandler
      ' Définit la propriété Flags
      Dlg.Flags = cdlOFNHideReadOnly
      ' Définit les filtres
      Dlg.Filter = "Tous les fichiers (*.*)|*.*|Fichiers image" & _
      "(*.jpg)|*.jpg|Fichiers batch (*.bat)|*.bat"
      ' Définit le filtre par défaut
      Dlg.FilterIndex = 2
      ' Affiche la boîte de dialogue Ouverture
      Dlg.ShowOpen
      ' Affiche le nom du fichier sélectionné
      Txtimg.Text = Dlg.FileTitle
      FicDest = App.Path & "\images\"
      ficSource = Dlg.FileName
          If FSO.FileExists(FicDest & Dlg.FileTitle) = False Then
      FSO.CopyFile ficSource, FicDest
         Else
            reponse = MsgBox("le fichier existe déjà, voulez vous l'écraser?", vbYesNo, "Attention")
            If reponse = vbYes Then
                FSO.CopyFile ficSource, FicDest, True
                Else
                Exit Sub
            End If
          End If
        Exit Sub
    errhandler:
      'L'utilisateur a cliqué sur Annuler
      Exit Sub
    End Sub
    dans l'événement de Form_Load tu doit ajouter ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Dim FSO As New FileSystemObject
    Dim ChPhotos As String
    If Me.Txtimg.Text <> "" Then
    ChPhotos = App.Path & "\images\" & Txtimg.Text
      Image1.Picture = LoadPicture(ChPhotos)
    Else
    ChPhotos = App.Path & "\images\anonymous.jpg"
    End If
    N'oublie surtout pas de charger une image Ombre ou autre que tu nomme "Anonymous" que tu doit l'écrire dans la propriété Text du textbox qui s'affiche par défaut quant il y pas d'image.
    Ajoute un champ dans ta table nomme le "Image"
    et dans le code cmdAjout tu ajoute cette ligne de code:
    j'espère avoir ete claire n'hésite pas a demander

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par zidane2 Voir le message
    Merci justgreat! you're really great!
    Malheureusement je suis loin de comprendre et manipuler ces codes.
    Comme vous povez constater, j'ai déjà des codes pour ajouter, enregistrer, rechercher (cmd_ajouter) - (cmd_enregistrer) - (cmd_recherche). Tous ces codes fonctionnent bien pour ajouter ou rechercher des donnés dans ma base de données.
    Par exemple pour le code cmd-ajouter, j'ai ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Set RS = New ADODB.Recordset
     
     If Text1 <> "" Then
     
    RS.Open "select * from table1" & _
            " where nom    = '" & Text1.Text & "' " & _
            "   and prenom = '" & Text2.Text & "'", _
            DB, adOpenDynamic, adLockOptimistic
            End If
        If RS.BOF = False Then
            MsgBox "Fiche existante. Impossible de créer."
        Else
            RS.Close       
            RS.Open "select * from table1", _
                    DB, adOpenDynamic, adLockOptimistic
            RS.AddNew
               RS!Nom = Text1.Text
                RS!prenom= Text2.Text
                RS!age= Text3.Text
                RS!tel= Text4.Text
                RS!obs = Text5.Text
                RS!type = Text5.Text
     
            RS.Update
    La mème chose pour les atres boutons.

    Ma question: Ou dois-je ajouter ces codes?
    Désolé pour mon érangement..


    Tu peux ajouter le code pour enregistrer l'image dans ton code par exemple après le :


    mais dans ce cas, ne met pas les parties et de mon code, vu que tu l'as déjà fais.
    D'ailleurs moi aussi je te conseille de stocker les schémas des images, mais je t'ai donné la solution suite à ta demande, quand quelqu'un pose une question j'essaye de lui répondre, ensuite il choisi la façon qu'il a envi de faire.

    ça dépend de ton besoin, de la taille de tes images, de leur nombre etc...
    a savoir qu'une base de données ACCESS est limité à 2 GO, ainsi, si tu as beaucoup d'images vaut mieux ne pas les enregistrer directe dans la base.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 32
    Points
    32
    Par défaut
    Merci à tous
    c'est résolu!!!

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    T'as utilisé quelle méthode finalement ?

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

Discussions similaires

  1. insertion des image dans une base de données oracle
    Par tayeb_dev dans le forum Oracle
    Réponses: 2
    Dernier message: 12/08/2011, 01h48
  2. Mettre des images dans une base de donnée
    Par hugo7 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/01/2009, 18h46
  3. Des images dans les bases de données !
    Par micky57 dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/03/2006, 16h09
  4. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54

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