toddy_101
Messages postés91Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 7 août 2006
-
23 juin 2005 à 11:48
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 2011
-
24 juin 2005 à 02:10
bonjour, je voudrais savoir comment afficher une image à partir d'une base de donnée. un truc simple si vous permettez.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 24 juin 2005 à 02:10
Je vais faire une hypothèse ^^
Supposons que tu veuilles afficher une image à partir du clic sur le nom d'une image dans un ComboBox.
Ce que je ferai, c'est mettre toutes toutes images à un même endroit/dans un même répertoire.
Dans la base de données, je créerai une table avec des enregistrements qui reprennent le Nom de l'image et son chemin
Par ex. :
Table Image.
Champs Nom, Chemin
Enregistrements : Toto c:\Images\Toto.jpg
Titi c:\Images\Titi.jpg
etc ...
On alimente le ComboBox avec cette table.
Mon code est bien entendu loin d'être parfait (et je ne teste rien là, je le fais de tête ^^), mais c'est à peu près comme ça que je fonctionnerai.
Une feuille, un ComboBox et un contrôle Image ou PictureBox
Sub Comb_Click()
'Définition des variables
Dim MaBase as Database
Dim MaTable as Recordset
Dim SQL as String
Dim Temp as String
'Ouverture de la base et alimentation du ComboBox
Set MaBase = OpenDatabase("c:\ ... chemin") 'si tu pars d'une feuille VB
Set MaBase = Currentdb() ' si tu pars d'un formulaire de ta base Accès
'Création de la requête
SQL = "Select * FROM Image WHERE Nom=" & """" & Combo.text & """"
Set MaTable = Mabase.openrecordset(SQL)
MaTable.movefirst
Temp = MaTable.fields("Chemin")
'Ouverture de l'image
PictureBox.Picture = loadPicture(Temp)
'Fermeture
Matable.close
MaBase.close
End sub
Si toutes tes images sont au même endroit et que tu veux pouvoir les déplacer en même temps que ta base, le plus simple c'est de mettre un sous répertoire Images au niveau de la base de données.
Dans ta table, au lieu de mettre le chemin complet, tu n'as plus qu'à mettre le Nom du fichier image ( "Toto.jpg" pour garder mon ex. de tout à l'heure au lieu de "C:\Images\Toto.jpg").
Et dans le code, au lieu de Temp = MaTable.fields("Chemin"), il suffit de mettre
Temp = App.path & "\Sous-répertoire" & MaTable.fields("Chemin")
(en Acces, il faut marquer Application.path en entier si je me souviens bien)
Comme ça, tu peux déplacer le répertoire contenant la base et les images sans avoir besoin de modifier le code.
Si ma supposition est fausse et que ce n'est pas du tout ce que tu voulais faire et bien ... Désolée :p