Soyez le premier à donner votre avis sur cette source.
Vue 12 632 fois - Téléchargée 1 204 fois
'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
5 nov. 2003 à 16:36
Cependant, serait t'il possible de faire la meme chose directement en mémoire (sans passer par une fichier temp) ?
15 mai 2002 à 21:06
Si Dans projet références il n'y a pas Microsoft activeX data objects 2.5 de 'sélectionnable', ça ne marchera pas !! -:)
@+
15 mai 2002 à 20:42
15 mai 2002 à 20:36
a+
reivon
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.