[Access] : afficher une image selon critère

Résolu/Fermé
Signaler
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
-
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
-
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

Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
Ah voui, j'ai pas percuté... C'est parce que j'ai pas vu [Switch d'Etage].Value...
0
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
Disons plutot que Switch d'Etage est une zone de texte de mon formulaire
0
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
Bonjour

Quelqu'un sait comment m'aider ??
0
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
Pourquoi, tu coinces où ?
J'ai cru que c'était réglé...
0
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13 >
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022

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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13 >
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022

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
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161 >
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022

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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
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
Messages postés
23846
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
15 janvier 2022
3 161
Je préfèrerais un nouveau topic avec un titre explicite...
0
Messages postés
401
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
10 décembre 2019
13
ok ca roule, merci encore sincèrement pour ton aide, je planche déjà sur un souci d'une toute autre envergure !!!
0