Image Access

Signaler
Messages postés
113
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
14 août 2006
-
Messages postés
1
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
16 avril 2008
-
Bonjour à tous ou plutot bonsoir,

J'aurais voulu savoir comment faire pour mettre une image dans une base de donnée Access, j'ai déjà recherché sur le site et je suis tombé sur cette source : http://www.vbfrance.com/code.aspx?id=26014 (celle de ITALIA), mais chez moi (après adaptation sur mon programme) ca ne marche pas, car je n'utilise pas ADODB j'utilise directement un controle DATA, et je ne vois pas comment faire autrement pour inserer une image dans une BDD Access, lorsque je lance mon appli il me met qu'il y a une erreur sur ca : Public con As New ADODB.Connection
Donc la je suis un peu perdu, si quelqu'un sait comment faire merci de prendre le temps de me répondre.

Merci d'avance
@+

2 réponses

Messages postés
402
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
12 octobre 2008
28
bonjour

j'espere que ce lien pourra t'aider

http://faq.vb.free.fr/index.php?question=127

cordialement
michel
Messages postés
1
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
16 avril 2008

lampard





'objets du form1 :
'--> image : Name Image1
'--> label : Name lblProduit
'--> CommandButton : cmdNext
'--> CommandButton : cmdPrevious
'---------------------------
'référence (menu projet, références)
'--> Microsoft activeX data objects 2.5 ou + (pour ADODB.Stream)
'---------------------------------
'   But :
'   Afficher les images contenues dans la base de données NWIND.MDB
'modifier le chemin si besoin...
    Option Explicit
Const MDBPATH = "C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB"
'---------------------------------
'objet recordset
Dim rsCategories As ADODB.Recordset
'objet connexion
Dim cnNwind As ADODB.Connection
'objet stream
Dim bStream As ADODB.Stream
'chaine de connexion
Const STRCONN = "Provider=Microsoft.Jet.OLEDB.3.51;" _
& "Persist Security Info=False;" _
& "Data Source=" & MDBPATH
'-------------------------------
'taille du buffer (cf plus loin)
Const BFSIZE = 78
'*******************************
'Remarque :
'   Ceci correspond au dernier emplacement
'   contenant 'l'entête' du fichier bmp
'   généré par MS Access.
'   Tout ce qui est après 78 correspond à l'image elle même.
'   Pour voir, ouvrir le fichier temp.bmp et temp2.bmp
'   dans un éditeur exadécimal et constater la <>...
'*******************************
Private Sub cmdNext_Click()
    With rsCategories
        .MoveNext
        If .EOF Then .MoveLast
    End With
    '----
    getPicture rsCategories, Image1
    lblProduit.Caption = rsCategories!Description
End Sub
'-----------------------------
Private Sub cmdPrevious_Click()
    With rsCategories
        .MovePrevious
        If .BOF Then .MoveFirst
    End With
    '----
    getPicture rsCategories, Image1
    lblProduit.Caption = rsCategories!Description
End Sub
'------------------------------
Private Sub Form_Load()
    Set cnNwind = New ADODB.Connection
    Set rsCategories = New ADODB.Recordset
    '----
    cnNwind.Open STRCONN
    rsCategories.Open "select * from catégories", _
        cnNwind, adOpenKeyset, adLockPessimistic
    '----
    getPicture rsCategories, Image1
    lblProduit.Caption = rsCategories!Description
End Sub
'------------------------------
Public Function getPicture(RS As ADODB.Recordset, objCnt As Object)
    Dim strTemp As String
    Set bStream = New ADODB.Stream
    bStream.Type = adTypeBinary
    bStream.Open
    '----
    bStream.Write RS.Fields("Illustration").Value
    bStream.SaveToFile "C:\Temp.bmp", adSaveCreateOverWrite
    '78 items en trop BM = début du fichier bmp en exa
    Open "C:\Temp.bmp" For Binary As #1 'Source
    Open "C:\Temp2.bmp" For Binary Access Write As #2  'Destination
    Dim data As String
    data = String(BFSIZE, 0)
    Get #1, , data
    data = String(LOF(1) - BFSIZE, 0)
    Get #1, , data
    Put #2, , data
    Close #1, #2
    objCnt.Picture = LoadPicture("c:\temp2.bmp")
End Function