Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 17h50   #1
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 936
Points : 7 936
Par défaut Images dans un formulaire continu avant 2007

Bonjour à tous,

Je vous propose un module pour afficher des images dans un formulaire continu avec les versions antérieures à partir de Access 2000.
L'image reste stockée à l'extérieur de la base de données.
Pas de problème donc de taille de base de données.

Ne fonctionne pas avec Access 97.

J'ai testé ce module avec Access 2003, Windows XP.
edit : et Access 2007 Windows 7

1 - Téléchargez ce module et importez-le dans votre projet VBA :
ftp://ftp-developpez.com/arkham46/fi...odImageOLE.bas
Mirroir HTTP
ALT-F11 pour ouvrir l'éditeur VBA puis Fichier => Importer un fichier... (ou faites glisser le fichier dans l'explorateur)

1 bis - Si vous souhaitez utiliser les miniatures exif des photos (plus rapide) ou des images png ou gif avec transparence, utilisez ce module :
ftp://ftp-developpez.com/arkham46/fi...ageOLEPlus.bas
Mirroir HTTP

Pour ce module 1 bis, gdiplus.dll est requis (à mettre dans le répertoire de l'application si nécessaire)

2 - Déposez ensuite un cadre d'objet dépendant sur votre formulaire continu.
Nommez par exemple ce contrôle OleImg
La propriété source contrôle de ce cadre d'objet est de cette forme :
- Pour une utilisation du module ModImageOLE :
Code :
=ImageToOLE([chemin];[OleImg];Vrai;Vrai)
- Pour une utilisation du module ModImageOLEPlus :
Code :
=ImageToOLEPlus([chemin];[OleImg];Vrai;Vrai)
Les 4 paramètres sont :
- pFile : un chemin de fichier complet (ici le champ "chemin" de la table source du formulaire)
- pCtrlResize : le contrôle (ici OleImg) qui servira à redimensionner l'image
- pCenter : Mettre à Vrai pour centrer l'image (sinon elle est affichée en haut à gauche)
- pRepaintForm : Mettre à Vrai pour raffraichir le formulaire après chaque chargement d'image

Si l'image est plus grande que le contrôle, elle est redimensionnée (même en mode découpage).
Cela permet d'accélérer l'affichage qui sinon peut devenir très lent.

Un exemple d'utilisation :
ftp://ftp-developpez.com/arkham46/fi...e/imageole.zip
Mirroir HTTP
A l'ouverture, le formulaire remplit une table avec le chemin des images contenues dans le sous-dossier Images.
L'exemple montre également l'utilisation de fonctions personnalisées (ImageToOLECustom et ImageToOLEPlusCustom dans chacun des formulaires de démo) pour afficher une image en cas de fichier incorrect ou inexistant.

Pour les curieux :
- le module charge l'image avec LoadPicture
- l'image est convertie en 24 bits (sinon je galère avec les palettes de couleurs ) et redimensionnée pour accélérer l'affichage
- puis elle est encapsulée dans un objet OLE de type DIB (device independant bitmap).
- Vous trouverez en en-tête du module le lien vers les docs msdn pour l'OLE. (C'est plutôt indigeste...)

N'hésitez pas à faire part de vos remarques et retour d'expérience.

__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 14/12/2010, 10h06   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour Arkham46,

Citation:
J'ai testé ce module avec Access 2003, Windows XP.
edit : et Access 2007 Windows 7
J'ai Access2000, Windows XP et c'est OK.

Merci pour cette contribution.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 06h30   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 605
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 605
Points : 30 955
Points : 30 955
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Salut

Juste une chose à dire

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h11   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 204
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 204
Points : 5 255
Points : 5 255
Très intéressant,

J'ai testé avec Access 2003 et Windows 7 (et oui ça fonctionne )
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h32   #5
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 936
Points : 7 936
Merci pour vos retours.

Il ne manque plus que des tests sur Access 97 ([edit] : tests KO) et Office 2010 (64 bits?).

J'ai quand même testé avec des grandes images (prises par appareil photo 12Mp je crois), c'est un peu lent mais ce n'est pas étonnant vu le poids des images.

Pour rappel pour Access 2007 et 2010, si vous n'avez pas besoin de compatibilité descendante :
Access 2007 par l'exemple : Intégration d'images dans les Formulaires Continus
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 20h53   #6
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 936
Points : 7 936
bjr,

Modif sur le module ModImageOLE :
- passage de pImgCtrl en optionnel
- ajout de 4 bytes pour le checksum (non calculé) en fin d'objet OLE car petit soucis sinon dans de très rares cas

Nouveau module ModImageOLEPlus qui utilise gdiplus.dll au lieu de gdi32.dll :
- Lit les images PNG et ICO
- Applique la transparence des images PNG, ICO et GIF (sur contrôle ou formulaire avec fond uni uniquement)
- Utilise les miniatures Exif des photos pour un affichage plus rapide
- Peut nécessiter la librairire gdiplus.dll en fonction du système d'exploitation (win 2000 notamment)

Ajout dans la démo de fonctions personnalisées (ImageToOLECustom et ImageToOLEPlusCustom dans chacun des formulaires de démo) pour exemple d'affichage d'une image en cas de fichier incorrect ou inexistant.

Bilan des tests Access 97 (merci Claude) => ça ne semble pas fonctionner avec cette version.

Cela reste utile pour Access 2000, 2002 et 2003 et c'est déjà pas mal.
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web