Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 19/09/2011, 17h42   #1
Invité de passage
 
Inscription : mars 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 11
Points : 2
Points : 2
Par défaut Paramétrage d'images intégrées à un formulaire

Bonjour,

Sur base des tutos pour l'intégration d'images dans un formulaire, j'ai créé une application qui applique les informations contenues dans ceux-ci.
L'application fonctionne très bien et j'ai ainsi plusieurs centaines de photos gérées.

Mais l'adresse de l'image reprend le path complet qui est utilsé lors de l'affichage de l'image.
Code :
Me.Image = CurrentProject.path & "\affiches" & strFichier
Je dois malheureusement muter l'application et le répertoire contenant les photos vers une autre place et là, je n'ai pour l'instant pas d'autre possibilité que de faire un "remplacer" dans le champ de la table qui contient l'adresse des photos pour changer le répertoire initial.

Ma question est donc la suivante :

Y a-t-il moyen de gérer de façon dynamique l'adresse de l'image en préfixant via une variable le chemin lors de l'affichage de l'image à l'ouverture du formulaire?

Merci d'avance pour vos conseils

JP
jprog46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 21h43   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
salut jprog46 et bienvenu,

tu peux mettre dans une variable mais je te conseille plutôt de créer une table de paramètres (Param, Valeur).
ainsi tu auras un enregistrement 'PathImage' avec pour valeur le chemin.
ensuite tu peux faire une requête avec jointure sur la table ou un dlookup() afin de récupérer la valeur pour la concaténer dans un champ calculé et obtenir le chemin complet qui alimentera le formulaire.

une solution externe à access serait d'utiliser un nom de partage ou le lecteur affecté à celui-ci. ton chemin serait alors toujours le même: "Z:\fichier"

sinon pour exploiter une variable il te faudra faire une fonction pour récupérer sa valeur.

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/09/2011, 14h22   #3
Invité de passage
 
Inscription : mars 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 11
Points : 2
Points : 2
Merci Vodiem pour ta rapide réponse et je t'en remercie.

En fait j'avais écrit "utiliser une variable" , ce qui était un raccourci inadéquat.

Effectivement j'utilise un paramètre enregistré dans une table et chargé via autoexec dans une variable Global.
Je peux ainsi construire de façon dynamique l'adresse path (en paramètre)+ filename de l'image (stocké dans une table, sans le path).

exemple :
path = "c\test\"
Table [Test], champ [Image], contenant TestImage.jpg
Table [Test], champ [NomImage] -> un nom permettant d'identifier l'image

Lorsque j'ouvre le formulaire d'affichage, filtré sur [NomImage], je constitue via
Private Sub Form_Current(),
le nom path + [Image]
et je l'affecte à la source de l'image, le champ [Image].

Le problème est alors que le champ [Image] se modifie et ne contient plus TestImage.jpg mais bien
c:\test\TestImage.jpg et ainsi de suite.

J'ai pensé éventuellement travailler avec deux champs,
[Image1] qui ne contiendrait que le nom de l'image et
[Image] qui contiendrait le dernier chemin complet.

Autre idée ?

Merci d'avance
jprog46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 20h47   #4
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
Citation:
Envoyé par jprog46
J'ai pensé éventuellement travailler avec deux champs,
[Image1] qui ne contiendrait que le nom de l'image et
[Image] qui contiendrait le dernier chemin complet.
ce n'est pas utile d'avoir un champ pour le chemin si c'est toujours le même pour toute la table.

si tu as le chemin dans une table, tu peux, comme conseillé, alimenter ton formulaire avec une requête appropriée du style par ex :
Code SQL :
SELECT *, Dlookup("valeurParam","tableParam","paramID='pathImage'") & [image] AS cheminImage FROM test
ainsi tu auras un champ cheminImage auquel tu associera directement au 'Source Controle' de l'image.

tu n'auras plus d'autoexec ni de code.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 17h58   #5
Invité de passage
 
Inscription : mars 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 11
Points : 2
Points : 2
Re-bonjour Vodiem,

Je pense que je n'exprime pas bien le réel problème.

Je reprend ton code :

Code :
SELECT *, Dlookup("valeurParam","tableParam","paramID='pathImage'") & [image] AS cheminImage FROM test
Si je comprends bien, dans cheminImage, qui vient de la table test, je retrouve le lien complet qui est la source pour l'image et dans [image] qui vient éventuellement aussi de test, le nom de l'image.

Ce qui veut dire que j'ai bien deux champs qui identifient l'image, comme je le suggérais dans ma précédente réponse.

Javais imaginé pouvoir ne travailler qu'avec une seule identification.
En bref, que le source control de l'image puisse ne pas contenir le chemin complet.
Or, même si à la première ouverture le champ [Image] ne contient que le nom de l'image, ce champ est mis-à-jour avec le résultat du Dlookup, c.à.d chemin Image, dès affichage de l'image.

Merci pour ton aide
jprog46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 23h20   #6
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
non, c'est pas comme ca que ca marche.

le code permet de rajouter le champ chemin de l'image à la table [test] ;
il récupère avec dlookup le chemin dans la table des paramètres [tableParam] et il fait la concaténation avec le champ image de la table [test] contenant uniquement le nom du fichier.
au final il y aura un champ supplémentaire <cheminImage> constitué du chemin et du nom de fichier qui alimentera le controle source de l'image.
tout est géré automatiquement sans code dès lors que tu spécifies ce sql comme source du formulaire.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h17   #7
Invité de passage
 
Inscription : mars 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 11
Points : 2
Points : 2
Par défaut Un grand merci

Merci.
C'est OK.
jprog46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web