Bonjour à tous,
Je réalise actuellement un petit outil Acces qui, à partir d'une base de donnée remplie sur le terrain permet de générer des fiches de viste. Jusque-là, aucun souci, tout se passe comme prévue (gestion des tables, des requêtes et des états). Se pose à moi une problématique assez nouvelle (pour moi) : je dois inclure des images (des photos et des plans de localisation) dans ma base. Les tables de ma base contiennent des champs pour stocker le nom du fichier image à insérer (avec l'extension)
L'image à insérer est donc variable en fonction de la fiche. A priori, rien de bien compliqué, il suffit de mettre à jour la propriété "Picture" de mes objets image avec le chemin d'accès issu de la table au moment de la composition de l'état (sur l'évènement "OnOpen" donc)
Exemple : les plan de localisation
J'ai donc un champ dans ma base de donnée (le champ photo_localisation) qui comprends les noms des fichiers images correspondants à chaque plan de localisation, extensions comprise (.jpeg). L'état qui me sert de base pour mes fiches de visite fait appel à ce champ et pour appeler les images, j'ai mis en place un objet de type image ainsi que la procédure suivante sur l'évènement "OnOpen" de l'état, où [image152] est l'objet image :
NB : les partie liées à la reconstitution du chemin d'accès (pour travailler en relatif car la base doit être portable) fonctionnent correctement et renvoient le bon chemin d'accès relatf.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub Report_Open(Cancel As Integer) 'Dimensionnement des variables Dim CheminBase As String Dim CheminRel As String Dim Chemin_loc As String Dim I As Integer 'Compteur de boucle 'Attribution du chemin de base CheminBase = CurrentDb().Name 'Calcul du chemin relatif For I = 1 To Len(CheminBase) If Mid(CheminBase, I, 1) = "\" Then CheminRel = Left(CheminBase, I) Next I 'Constitution des chemins d'accès complets Chemin_loc = CheminRel & "LOCALISATION\" & Me!Photo_localisation 'Attribution des images Me![Image152].Picture = Chemin_loc End Sub
Le truc c'est que quand j’exécute ce code, j’obtiens l'erreur suivante :
"Erreur 2465 : Microsoft Access ne trouve pas le champ "Photo_localisation" dont il est fait référence dans votre expression"
Je ne comprend pas l'erreur puisque ce champ existe, est bien appelé dans mon état et la syntaxe est correcte : pur tout dire, VBA me propose même la saisie automatique du nom du champ en question ....
Précision, l'état n'est pas indépendant mais bien basé sur une requête, qui appelle tous les champs de ma table servant à la fiche.
Avez-vous une idée ?
EDIT 11/02 : Après relecture à tête reposée, je me suis rendu compte que la description du problème n'était pas très claire. J'ai donc travaillé cette partie pour mieux donner le contexte.
Partager