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 27/11/2011, 23h59   #1
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Par défaut Intégration de photo dans un état

Bonjour,

Dans ma base de données de gestion des membres de mon association, dans le formulaire "Membres" j'intégre la photo du membre. La photo n'est pas dans la base de données, seul le nom du fichier est présent dans la table [Membres], champ [Act_Photo].

Dans l'état Fiche d'inscription, je souhaite intégrer la photo du membre. Dans cet état j'ai :
  • le champ [Act_Photo], nom du fichier,
  • une zone texte [ImgLogo] destinée à recevoir la photo,
  • sur l'évennement Détail, Au Formatage introduit le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
 
    Dim sPath As String
    Dim sFichier As String
    Dim sNoImage As String
    '/ Définition des accès aux images
    sPath = Application.CurrentProject.path
    sFichier = sPath & "\Photos\" & Me.Act_Photo
    sNoImage = sPath & "\Photos\NoImage.jpg"
    msgBox sFichier
    msgBox sNoImage
 
    '/ Test sur l'existance d'un nom d'image
    If IsNull(Me.txt_Act_Photo) Then
        If Dir(sNoImage) <> "" Then 'Si absent
            Me.ImgLogo.Picture = sNoImage
        Else
            Me.ImgLogo.Picture = ""
        End If
    Else
        If Dir(sFichier) <> "" Then 'Si présent
            Me.ImgLogo.Picture = sFichier
        End If
    End If
 
End Sub
Lors de l'éxécution, j'ai une "erreur d'éxécution '438' : propriété ou méthôde non gérée par cet objet." sur la ligne 16 ou 22 alors que le chemin et le nom du fichier sont corrects et que le même code fonctionne sur le formulaire [Membres].

Comment résoudre cette difficulté?

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 04h58   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 958
Points : 30 958
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Dans cette instruction :

Code :
sNoImage = sPath & "\Photos\NoImage.jpg"
Qu'est-ce que NoImage.jpg ? Si c'est une variable il faut :

Code :
sNoImage = sPath & "\Photos\" & NoImage & ".jpg"
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h45   #3
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonjour,

Le fichier "NoImage.jpg" est une photo, fond blanc, avec l'inscription "Photo d'identité". Cette photo est à insérer lorsque je n'ai pas de photo d'identité du membre.

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h20   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 225
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 225
Points : 9 928
Points : 9 928
Envoyer un message via Skype™ à Domi2
Bonjour,

Citation:
Envoyé par jeanpierre78 Voir le message
  • une zone texte [ImgLogo] destinée à recevoir la photo
Il s'agit bien d'une zone de texte ? Si oui, elle n'a pas de propriété "Picture".

Il te faut utiliser un contrôle Image.

D'autre part, tu as une fois Me.Act_Photo et une fois Me.txt_Act_Photo dans ton code.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h01   #5
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonjour,

Merci, grâce à tes remarques, j'ai pu orienter mes recherches et j'ai trouvé comment créer un contrôle image :
  • dans la section Détail de l'état, je pose un objet "Image" (menu Insertion, Image...), une image quelconque,
  • dans les propriétés du cadre image et dans l'onglet Format, je supprime le chemin vers l'image,
  • je nomme ce cadre [Ctrl_Image]
  • je pose le champ [Act_Image] dans la section détail de mon état,
  • dans la section Détail de l'état, sur l'événement Au formatage, je pose mon code mis à jour :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        '/
        '/ Le controle image est actualisé lors
        '/ du passage à l'enregistrement suivant
        '/
        Dim sPath As String
        Dim sFichier As String
        Dim sNoImage As String
        '/ Définition des accès aux images
        sPath = Application.CurrentProject.path
        sFichier = sPath & "\Photos\" & Me.Act_Photo
        sNoImage = sPath & "\Photos\NoImage.jpg"
        '/ Test sur l'existance d'un nom d'image
     
        If IsNull(Me.Act_Photo) Then
            If Dir(sNoImage) <> "" Then 'Si absent
                Me.Ctrl_Image.Picture = sNoImage
            Else
                Me.Ctrl_Image.Picture = ""
            End If
        Else
            If Dir(sFichier) <> "" Then 'Si présent
                Me.Ctrl_Image.Picture = sFichier
            End If
        End If
Et cela fonctionne. L'erreur venait donc de l'absence de contrôle image.

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h23   #6
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 225
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 225
Points : 9 928
Points : 9 928
Envoyer un message via Skype™ à Domi2
C'est normal que tu aies toujours une erreur. Une étiquette n'a pas de propriétés "Picture", donc tu ne peux pas afficher une image dedans.

Extrait de l'aide :

Citation:
La propriété Image (Picture) vous permet de spécifier une image bitmap ou tout autre type de graphique à afficher sur un bouton de commande, un contrôle d'image, un bouton bascule, la page d'un contrôle Onglet ou comme image d'arrière-plan dans un formulaire ou un état.
Il te faut donc utiliser un contrôle image. Pour l'insérer, en mode modification de ton état, tu ouvres la boîte à outils et tu sélectionnes le petit icone représentant une montagne avec un soleil.
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 22h42   #7
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonsoir,

Merci pour la réponse.

J'ai trouvé comment faire un contrôle image et tout fonctionne.

Jean-Pierre
jeanpierre78 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 07h51.


 
 
 
 
Partenaires

Hébergement Web