Images incorporées et objet BoundObjectFrame

Le
J-Pierre
Bonjour tout le monde,

J'ai des images incorporées dans une base Access, type de champ "objet OLE".
J'ouvre la table en mode feuille de données, clic droit sur le champ OLE, puis insérer un objet, ça marche.Toujours en mode de
feuille de données, même méthode, je peux modifier l'image qui est enregistrée dans chaque ligne de la table.

Par contre, quand j'affiche l'image dans un formulaire, pas moyen de modifier l'image enregistrée, la doc MS se contente de
dire:
"Vous pouvez créer ou modifier ce type d'objet à partir du formulaire ou de l'état dans lequel il est inséré, en utilisant le
serveur OLE. "
Oui, bien sûr, Bill, et pour utiliser le serveur OLE, je fais comment ?

Le modèle d'objet BoundObjectFrame n'offre que peu de méthodes, ce qui est logique, puisque c'est le serveur OLE qui fait le
boulot..

Alors, si vous avez un bout de code
Et si aussi, vous avez des précisions sur le "serveur OLE", et son modèle d'objet..
Peut-être suffit-il de rajouter une référence pour y avoir accès, mais laquelle ?

Merci
J-Pierre
Vos réponses Page 1 / 2
Trier par : date / pertinence
Raymond [mvp]
Le #6106421
Bonjour.

il faudrait connaître la version Access utilisée pour pouvoir répondre à
cette question.
quoi qu'il en soit, c'est une très mauvaise idée d'incorporer des images
dans un contrôle OLE car la base va grossir inconsidérément et va devenir
ingérable très rapidement.
je te conseille de lire la page
http://officesystem.access.free.fr/images.htm
ainsi que http://officesystem.access.free.fr/objets_ole.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Bonjour tout le monde,
|
| J'ai des images incorporées dans une base Access, type de champ "objet
OLE".
| J'ouvre la table en mode feuille de données, clic droit sur le champ OLE,
puis insérer un objet, ça marche.Toujours en mode de
| feuille de données, même méthode, je peux modifier l'image qui est
enregistrée dans chaque ligne de la table.
|
| Par contre, quand j'affiche l'image dans un formulaire, pas moyen de
modifier l'image enregistrée, la doc MS se contente de
| dire:
| "Vous pouvez créer ou modifier ce type d'objet à partir du formulaire ou
de l'état dans lequel il est inséré, en utilisant le
| serveur OLE. "
| Oui, bien sûr, Bill, et pour utiliser le serveur OLE, je fais comment ?
|
| Le modèle d'objet BoundObjectFrame n'offre que peu de méthodes, ce qui est
logique, puisque c'est le serveur OLE qui fait le
| boulot.....
|
| Alors, si vous avez un bout de code......
| Et si aussi, vous avez des précisions sur le "serveur OLE", et son modèle
d'objet.....
| Peut-être suffit-il de rajouter une référence pour y avoir accès, mais
laquelle ?
|
| Merci
| J-Pierre
|
|
J-Pierre
Le #6106391
Bonjour Raymond,

Je connais les réserves relatives à l'incorporation des images dans une base, mais il ne s'agit que de quelques images.

Bref, la version d'Access est 2002 XP.

Merci
J-Pierre

"Raymond [mvp]"
Bonjour.

il faudrait connaître la version Access utilisée pour pouvoir répondre à
cette question.
quoi qu'il en soit, c'est une très mauvaise idée d'incorporer des images
dans un contrôle OLE car la base va grossir inconsidérément et va devenir
ingérable très rapidement.
je te conseille de lire la page
http://officesystem.access.free.fr/images.htm
ainsi que http://officesystem.access.free.fr/objets_ole.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Bonjour tout le monde,
|
| J'ai des images incorporées dans une base Access, type de champ "objet
OLE".
| J'ouvre la table en mode feuille de données, clic droit sur le champ OLE,
puis insérer un objet, ça marche.Toujours en mode de
| feuille de données, même méthode, je peux modifier l'image qui est
enregistrée dans chaque ligne de la table.
|
| Par contre, quand j'affiche l'image dans un formulaire, pas moyen de
modifier l'image enregistrée, la doc MS se contente de
| dire:
| "Vous pouvez créer ou modifier ce type d'objet à partir du formulaire ou
de l'état dans lequel il est inséré, en utilisant le
| serveur OLE. "
| Oui, bien sûr, Bill, et pour utiliser le serveur OLE, je fais comment ?
|
| Le modèle d'objet BoundObjectFrame n'offre que peu de méthodes, ce qui est
logique, puisque c'est le serveur OLE qui fait le
| boulot.....
|
| Alors, si vous avez un bout de code......
| Et si aussi, vous avez des précisions sur le "serveur OLE", et son modèle
d'objet.....
| Peut-être suffit-il de rajouter une référence pour y avoir accès, mais
laquelle ?
|
| Merci
| J-Pierre
|
|




Raymond [mvp]
Le #6106381
en version 2002 tu dois pouvoir modifier directement ton objet OLE.
si tu fais un click droit sur l'objet, tu vas afficher le menu contextuel et
tu dois avoir une ligne de modification. si non qu'as-tu dans ce menu ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Bonjour Raymond,
|
| Je connais les réserves relatives à l'incorporation des images dans une
base, mais il ne s'agit que de quelques images.
|
| Bref, la version d'Access est 2002 XP.
|
| Merci
| J-Pierre
J-Pierre
Le #6106331
Dans le menu contextuel, j'ai les possibilités suivantes:
Afficher tous les enregistrements (qui provoque une ferrmeture de la base)
Objet Image bitmap->
Modifier (qui ouvre l'image plein écran dans Paint et ferme Access)
Ouvrir (qui ouvre l'image dans Paint avec une fenêtre 1/2 écran sans fermer access)
Convertir (pour convertir en image indépendante)

Mais ce n'est pas ce que je désire, je veux sélectionner l'image moi-même avec l'API GetOpenFileName, puis redimensionner mon
objet OLE en fonction de la nouvelle image et faire diverses autres bricoles, j'ai donc besoin du code VBA pour changer la
"valeur" de mon contrôle.

J-Pierre

"Raymond [mvp]" %
en version 2002 tu dois pouvoir modifier directement ton objet OLE.
si tu fais un click droit sur l'objet, tu vas afficher le menu contextuel et
tu dois avoir une ligne de modification. si non qu'as-tu dans ce menu ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Bonjour Raymond,
|
| Je connais les réserves relatives à l'incorporation des images dans une
base, mais il ne s'agit que de quelques images.
|
| Bref, la version d'Access est 2002 XP.
|
| Merci
| J-Pierre




Raymond [mvp]
Le #6106321
Si tu veux charger de cette façon tu as tout ce qu'il faut sur:
http://officesystem.access.free.fr/apiopenfile.htm
pour sélectionner le nomp du fichier par GetOpenFileName
et sur
http://officesystem.access.free.fr/objets_ole.htm
chapitre: Charger un objet OLE dans le formulaire et le copier sous Word
pour charger un objet OLE dans le formulaire
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Dans le menu contextuel, j'ai les possibilités suivantes:
| Afficher tous les enregistrements (qui provoque une ferrmeture de la base)
| Objet Image bitmap->
| Modifier (qui ouvre l'image plein écran dans Paint et ferme Access)
| Ouvrir (qui ouvre l'image dans Paint avec une fenêtre 1/2 écran
sans fermer access)
| Convertir (pour convertir en image indépendante)
|
| Mais ce n'est pas ce que je désire, je veux sélectionner l'image moi-même
avec l'API GetOpenFileName, puis redimensionner mon
| objet OLE en fonction de la nouvelle image et faire diverses autres
bricoles, j'ai donc besoin du code VBA pour changer la
| "valeur" de mon contrôle.
|
| J-Pierre
J-Pierre
Le #6106311
Quelle rapidité !!!!!!!!

Pour l'API, merci, mais j'avais déjà, elle est très utilisée. Pour l'objet OLE, je vais étudier ça et je reviens te dire.
J'avais déjà cherché sur ton site, mais sans trouver.....

Ta formulation est ambigüe...... Le charger dans le formulaire pour le charger dans Word pour le charger dans le formulaire
??????

Inutile de répondre avant que j'ai regardé de plus près

Merci et à plus tard
J-Pierre


"Raymond [mvp]"
Si tu veux charger de cette façon tu as tout ce qu'il faut sur:
http://officesystem.access.free.fr/apiopenfile.htm
pour sélectionner le nomp du fichier par GetOpenFileName
et sur
http://officesystem.access.free.fr/objets_ole.htm
chapitre: Charger un objet OLE dans le formulaire et le copier sous Word
pour charger un objet OLE dans le formulaire
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Dans le menu contextuel, j'ai les possibilités suivantes:
| Afficher tous les enregistrements (qui provoque une ferrmeture de la base)
| Objet Image bitmap->
| Modifier (qui ouvre l'image plein écran dans Paint et ferme Access)
| Ouvrir (qui ouvre l'image dans Paint avec une fenêtre 1/2 écran
sans fermer access)
| Convertir (pour convertir en image indépendante)
|
| Mais ce n'est pas ce que je désire, je veux sélectionner l'image moi-même
avec l'API GetOpenFileName, puis redimensionner mon
| objet OLE en fonction de la nouvelle image et faire diverses autres
bricoles, j'ai donc besoin du code VBA pour changer la
| "valeur" de mon contrôle.
|
| J-Pierre




J-Pierre
Le #6106301
Me revoilà,

Si si, j'avais bien lu ta page, mais comme tu parles de contrôle indépendant, j'étais passé tout droit....

Bref, j'ai copié ton code, ça marche pour les cadres d'objet indépendants, mais pas pour les cadres d'objet dépendants.....

"Un problème est survenu durant la communication entre DB1 et le serveur OLE ou le contrôle ActiveX" sur l'instruction:
If Me.T905_logoParDefaut.OLEType = acOLEEmbedded Then Me.T905_logoParDefaut.Action = acOLECreateEmbed
Pour Me.T905_logoParDefaut.OLEType, VBA dit = 1
Pour Me.T905_logoParDefaut.Action , VBA dit "Impossible d'obtenir la valeur de cette propriété"

Je sens que je vais encore avoir une sacrée nuit.....

J-Pierre



"J-Pierre"
Quelle rapidité !!!!!!!!

Pour l'API, merci, mais j'avais déjà, elle est très utilisée. Pour l'objet OLE, je vais étudier ça et je reviens te dire.
J'avais déjà cherché sur ton site, mais sans trouver.....

Ta formulation est ambigüe...... Le charger dans le formulaire pour le charger dans Word pour le charger dans le formulaire
??????

Inutile de répondre avant que j'ai regardé de plus près

Merci et à plus tard
J-Pierre


"Raymond [mvp]"
Si tu veux charger de cette façon tu as tout ce qu'il faut sur:
http://officesystem.access.free.fr/apiopenfile.htm
pour sélectionner le nomp du fichier par GetOpenFileName
et sur
http://officesystem.access.free.fr/objets_ole.htm
chapitre: Charger un objet OLE dans le formulaire et le copier sous Word
pour charger un objet OLE dans le formulaire
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"J-Pierre" news:
| Dans le menu contextuel, j'ai les possibilités suivantes:
| Afficher tous les enregistrements (qui provoque une ferrmeture de la base)
| Objet Image bitmap->
| Modifier (qui ouvre l'image plein écran dans Paint et ferme Access)
| Ouvrir (qui ouvre l'image dans Paint avec une fenêtre 1/2 écran
sans fermer access)
| Convertir (pour convertir en image indépendante)
|
| Mais ce n'est pas ce que je désire, je veux sélectionner l'image moi-même
avec l'API GetOpenFileName, puis redimensionner mon
| objet OLE en fonction de la nouvelle image et faire diverses autres
bricoles, j'ai donc besoin du code VBA pour changer la
| "valeur" de mon contrôle.
|
| J-Pierre








3stone
Le #6106251
Salut,

"J-Pierre"
| "Un problème est survenu durant la communication entre DB1 et le serveur OLE ou le contrôle
ActiveX" sur l'instruction:
| If Me.T905_logoParDefaut.OLEType = acOLEEmbedded Then Me.T905_logoParDefaut.Action =
acOLECreateEmbed
| Pour Me.T905_logoParDefaut.OLEType, VBA dit = 1
| Pour Me.T905_logoParDefaut.Action , VBA dit "Impossible d'obtenir la valeur de cette propriété"
|
| Je sens que je vais encore avoir une sacrée nuit.....


Perso, le OLE me donne des coliques, même pour quelques images...

Si tu as 5 minutes, lis ce fil...
http://minilien.com/?qTzLuRdIOr


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
J-Pierre
Le #6106241
Ca marche..... après rebootage du PC, comprenne qui pourra.

Raymond, je confirme que la ligne:
Me.monObjetOLE.Class = "MSPhotoed.3"
est inutile, je l'ai enlevée, ça marche très bien.

Prochaine étape: adapter la dimension du contrôle OLE à l'image, et non l'inverse...... Je reviendrai si je n'y arrive pas.

Merci infiniment
J-Pierre
J-Pierre
Le #6106231
Salut Pierre,

J'ai lu les 24 premiers posts du fil, je suis d'accord, c'est vraiment prise de tête, mais mon cas est relativement simple.
L'appli imprime des documents pour différentes sociétés, ce qui veut dire logo différents pour un même document en fonction de
la société éditrice. je veux donc juste afficher/imprimer quelques fichiers images de petites taille..... Pas question
d'éditer, de modifier et tout ça. Et dans ce cas, cette solution me semble vraiment simple à mettre en oeuvre.

C'est aussi pour ça que j'ai besoin d'adapter la taille du contrôle au logo et pas l'inverse, les gens n'aiment pas que leur
logo soit déformé, sont chiants, les gens....

Bon, je vais chercher, si je n'ai pas trouvé au milieu de la nuit, je poste, je vais dormir, et j'attends que vous vous
réveilliez :-)

J-Pierre
Publicité
Poster une réponse
Anonyme