[Access] : afficher une image selon critère

Résolu/Fermé
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 - 29 mars 2007 à 15:06
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 - 2 avril 2007 à 16:16
Bonjour :-)

Bon je commence à etre habitué quotidiennement au forum :p... soit je me démerde mal, soit je sais pas chercher lol

Mon souci, qui en soit est simple. Avant de commencer, sachez que je penche pour un simple problème de syntaxe...

J'ai un formulaire qui m'affiche des infos (N° de switch, modèle, S/N etc.....)
dessous j'ai un cadre d'image dans lequel je veux afficher le chainage de switchs. Ces images sont des .jpg et contenu dans un dossier Images à la racine de C:\.
Ce que je veux faire, c'est qu'en fonction du N° de switch afficher dans mon formulaire, qu'access me cherche le fichier image correspondant sachant que mes nom de switch et mes noms d'images sont les memes (sauf l'extension lol).

voilà le code que j'ai appliqué sur la zone image :

Pivate Sub Image34_Click()
Dim image
Me.image34.Picture = "%systemroot% & [Switch d'Etage] & .jpg"
image34.Picture = image


Rien qu'en le réécrivant je vois que le code est mauvais mais je cherche depuis ce matin à droite et à gauche et je ne trouve pas la bonne syntaxe..... après tout c'est peut etre la facon dont je m'y prend qui est fausse... lol

13 réponses

blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
29 mars 2007 à 15:30
Salut,

je ferais plutôt un truc comme ça :
Private Sub Image34_Click()
zone_image.Picture = "%systemroot%" & "\Switch d'Etage\" & .jpg"
Mais je ne suis pas sûr qu'ACCESS connaisse %systemroot%
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
29 mars 2007 à 15:42
merci blux pour ta réponse, tu es toujours là pour me sauver lol

mais je me pose une question sur ton code :
tu met "\Switch d'Etage\" mais ceci n'est pas un repertoire, c'est un champ d'une de mes tables....

mais je vais tester

merci :-)
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
29 mars 2007 à 15:54
Ah voui, j'ai pas percuté... C'est parce que j'ai pas vu [Switch d'Etage].Value...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
29 mars 2007 à 15:46
Disons plutot que Switch d'Etage est une zone de texte de mon formulaire
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
29 mars 2007 à 15:58
Oui en gros pour etre tout à fait clair :

J'ai mon switch AAAAA01 dans mon champ Switch d'Etage de mon formulaire et le chemin correspondant est C:\Images\AAAAA01.jpg par exemple.

Je veux faire ca pour eviter d'intégrer des objets OLE dans ma base car avec les objets OLE, ma base passe de 400ko à 150Mo mdrrrr, et c'est pas top je trouve
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
30 mars 2007 à 12:45
Bonjour

Quelqu'un sait comment m'aider ??
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
30 mars 2007 à 13:18
Pourquoi, tu coinces où ?
J'ai cru que c'était réglé...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
31 mars 2007 à 13:19
Non lol c'est pas réglé...

En fait je bloque toujours au meme endroit c'est-à-dire la facon de faire pour qu'il m'affiche l'image correspondant au switch concerné... Avec des onjets OLE, y'a aucun souci mais avec de simples images qui doivent etre affichées en fonction du switch choisi, je bloque.

Je pense que ça doit simplement etre un souci au niveau de la syntaxe du code VBA mais j'ai fait pas mal d'essais et je ne trouve pas le bon code.
Je te met ci dessous un certain nombre de possibilités de code que j'ai testé...

Private Sub Image34_Click()

'Image34.Picture = "C:\Images\ & [Switch d'Etage].Value & .jpg"
'Image34.Picture = "C:\Images\ & [Switch d'Etage] & .jpg"
'Image34.Picture = "C:\Images\" & [Switch d'Etage] & ".jpg"
'Image34.Picture = "C:\Images\" & "'[Switch d'Etage]'" & ".jpg"
'Image34.Picture = "C:\Images\ &  '[Switch d'Etage]' & .jpg"
'Image34.Picture = "C:\Images\ & [Switch d'Etage] & ".jpg"
'Image34.Picture = "C:\Images\ & [Switch d'Etage.value] & .jpg"
'Image34.Picture = "C:\Images\" & [Switch d'Etage.value] & ".jpg"
'Image34.Picture = "C:\Images\" & "'Switch d'Etage.value'" & ".jpg"
'Image34.Picture = "C:\Images\" & [Switch d'Etage].Value & ".jpg"
'Image34.Picture = "C:\Images\ & [Switch d'Etage].value & .jpg"
'Image34.Picture = "C:\Images\ & Switch d'Etage.Value & .jpg"

End Sub
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
31 mars 2007 à 21:58
Pour moi, voici ce qu'il faut mettre :
Image34.Picture = "C:\Images\" & [Switch d'Etage].Value & ".jpg"
Maintenant, si ça ne correspond pas, essaye de faire afficher la valeur avant de modifier la propriété...
toto = "C:\Images\" & [Switch d'Etage].Value & ".jpg"
msgbox toto
--
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13 > blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024
2 avril 2007 à 00:09
Bonsoir blux et merci pour ta reponse

le code que tu me propose
Image34.Picture = "C:\Images\" & [Switch d'Etage].Value & ".jpg"
, je l'ai déjà essyé et aucun affichage

quant à ta deuxieme suggestion, je testerai ca demain matin vu que je n'ai que mon portable et que Access2007 a la gentillesse de mettre le brodel dans ma base faite sous Access2000, donc d'ici là... bonne nuit !! :-)
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13 > blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024
2 avril 2007 à 11:04
Bonjour Blux

Je viens de faire ton test :

Access me ressort une msgbox "C:\Images\.jpg"
il n'arrive donc pas à interpreter [Switch d'Etage].Value, il faut donc que je trouve la bonne syntaxe :-)

Tiens moi au courant si tu as une idée...

@ ++
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289 > blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024
2 avril 2007 à 11:22
La syntaxe est correcte, elle n'est peut-être pas placée au bon endroit...

L'affichage doit se faire quand tu appuies sur un bouton ou à l'ouverture du formulaire ? Parce qu'il est possible qu'à ce moment [Switch d'Etage].Value ne soit pas renseigné...

Ton code est sur quel évènement du formulaire...

Faudrait peut-être le mettre sur [Switch d'Etage] 'change' ?
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 11:31
Bon avec cette syntaxe la msgbox me ressort le bon chemin avec le nom de l'image qui doit apparaitre :

toto="C:\Images\" & [Switch d'Etage] & ".jpg"


malheuresement aucun affichage du schéma malgré les propriétés de l'image qui sont bonnes.

je vois pas pourquoi, quelqu'un aurait-il une idée ??
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 11:35
L'affichage doit se faire à l'ouverture du formulaire car c'est simplement un formulaire qui donne des infos détaillée sur le switch concerné et à l'ouverture tous mes champs sont renseignés, et c'est ce que je veux.
Mon code est sur le formulaire F_DETAIL_SWITCH qui, comme dit est juste un formulaire qui donne des infos, je ne veux toucher à aucun champ dans ce formulaire sauf si, les infos sur le switch changent (si on change de switch ou d'IP par exemple)...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 11:58
Tiens je me pose une question : la syntaxe correcte ne serai-t-elle pas un truc du genre :

Load.("C:\Images\" & [Switch d'Etage] & ".jpg" as kelkechoz)


??
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
2 avril 2007 à 12:46
Non, load sert à charger des objets sans les afficher (utile pour travailler en asynchrone)...

Pour ma part, je pense qu'il faut que tu mettes ton code, non pas sur le load du form, mais sur le current du form (propriété 'sur activation')
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 14:01
Je suis pas totalement sûr d'avoir fait ce que tu pense mais avec le code ci-dessous, cela ne m'affiche rien non plus :

Private Sub Form_Current()
Dim toto

toto = ("C:\Images\" & [Switch d'Etage] & ".JPG")

End Sub


si je met une msgbox, ce qu'il me retourne est correct mais toujours pas d'affichage...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 14:10
Merci blux j'ai trouvé, voici la soluce :

Private Sub Form_Current()

'on veut afficher l'image en fonction du switch
Dim image
'on lui indique le chemin avec le nom du champ à la place du nom de l'image (les noms etants pareils et le choix de l'image doit etre dynamique)
image = ("C:\Images\" & [Switch d'Etage] & ".JPG")
'on précise qu'il faut afficher l'image dans le cadre prévu pour...
Me.Image34.Picture = image

End Sub


donc encore une fois merci pour ton aide
Maintenant j'aurai encore une petite question rapide mais pas sur le meme sujet, dois-je créer un nouveau topic ou on peut faire une exeption ?? :p
0
blux Messages postés 26033 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 12 mai 2024 3 289
2 avril 2007 à 16:12
Je préfèrerais un nouveau topic avec un titre explicite...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
2 avril 2007 à 16:16
ok ca roule, merci encore sincèrement pour ton aide, je planche déjà sur un souci d'une toute autre envergure !!!
0