IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Afficher la photo "blank.jpg" dans état lorsque le champ est vide


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Afficher la photo "blank.jpg" dans état lorsque le champ est vide
    Bonjour à tous,

    Je travaille sous access 2003.

    L'excellent tuto de caféine m'a permis d'insérer des photos de mes formulaires mais lorsque je veux retrouver ces photos dans un état, le code ci dessous ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' si la photo n'est pas définie, on affiche la photo blank.jpg
    If Len(Me.photo) > 0 Then
        Me.imgPhoto.Picture = Me.photo
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg"
    End If
    Qu'est-ce qu'il manque à mon code pour que cette image par défaut s'affiche dans mon état ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
       imgPhoto.Picture = FldPhoto
     
    End Sub
    Grâce à votre/vos réponses, ma base ne contiendra plus les photos comme il se doit, mais j'avoue que je ne sais qu'adapter votre proposition à ma base, n'ayant aucune connaissance du VBA, prenant par ici et par là ce que je ne peux résoudre à l'aide des assistants!

    Merci à vous d'avance...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut
    bonjour

    peut etre que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
       ' si la photo n'est pas définie, on affiche la photo blank.jpg
    If Len(nz(Me.photo,"")) > 0 Then
        Me.imgPhoto.Picture = Me.photo
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg"
    End If
     
    End Sub
    Bonne journée

  3. #3
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut pas mieux
    merci de votre réponse mais le résultat est le même que voici: erreur d'exécution '13' ; incompatibilité de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
       imgPhoto.Picture = FldPhoto
     
     
    If Len(Nz(Me.photo, "")) > 0 Then
        Me.imgPhoto.Picture = Me.photo
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg"
    End If
     
    End Sub

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut
    Bonjour
    pourquoi imgPhoto.Picture = FldPhoto

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
     
     
     
     
    If Len(Nz(Me.photo, "")) > 0 Then
        Me.imgPhoto.Picture = Me.photo
    Else
        Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg"
    End If
     
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    rebonjour,
    tout ce que je connais est le résultat de ce code, à savoir la répétition sur une même page de toute les photos dont le chemin est bien présent dans le champ "photo" de ma table. C'est bien FldPhoto qui pointe sur la source "photo" et mon image "imgPhoto" est par dessus dans la zone détail de l'état. tout fonctionne sauf si la source est vide, c'est pourquoi j'aimerais une condition qui pointe vers "image\blank.jpg" . Pour le reste, c'est tout ce que j'ai compris de la situation. Il est vraiment dommage que je bute sur ce petit détail qui me complique la vie, mais c'est ainsi pour le moment!!!

    Merci encore!

  6. #6
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 111
    Points : 1 612
    Points
    1 612
    Par défaut
    Je te mets un extrait de mon code si ça peut t'inspirer.
    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
    25
    26
    27
    28
    29
        '-----------------------  Vérifier si le fichier existe
        Dim MyFile, Existe As Boolean
        MyFile = Dir(s_CheminPhotos)
        Do While MyFile <> ""
            If s_Employe & ".jpg" = MyFile Then
                img_Photo.Picture = s_CheminPhotos & MyFile
                Existe = True
                Exit Do
            End If
            MyFile = Dir
        Loop
     
        If Existe = True Then
            cmd_PhotoExport.Visible = True
            infos.Visible = False: cmd_Copier.Visible = False
            '-------------------  Afficher la photo
            img_Photo.Picture = s_CheminPhotos & s_Employe & ".jpg"
        Else
            '--------------------  S'il n'y a pas de photo ou si le nom de correspond pas,
            '--------------------  afficher une silhouette et un message
            cmd_PhotoExport.Visible = False
            img_Photo.Picture = s_CheminPhotos & "Vide.jpg"
            '--------------------  Message
            infos.Visible = True: cmd_Copier.Visible = True
            infos.Caption = "Vous devez prendre une photo au format jpg avec une résolution d'environ 400 pixels de large " & _
            "ainsi qu'un rapport entre la hauteur et la largeur de 0,75. Ce fichier, enregistré sur le disque dur, sera nommé :" & vbCrLf _
            & s_Employe & ".jpg et sera intégré avec le bouton ""Intégrer la photo"""
     
        End If
    J'ai créé une silhouette toute simple qui s'appelle vide.jpg

  7. #7
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut bonjour et merci
    je suis loin d'avoir compris, mais j'ai copié le code, modifié le img_Photo en imgPhoto, après j'obtiens une variable non définie sur: MyFile = Dir(s_CheminPhotos)?
    Je ne sais que faire?

    Merci de votre bienveillance

  8. #8
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 111
    Points : 1 612
    Points
    1 612
    Par défaut
    comme je te l'ai dit, c'est un extrait de mon code.
    As tu défini tes variables : s_CheminPhotos, s_Employe etc.... as tu les bonnes références dans ton appli ?
    Mon appli est en ADO

  9. #9
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 13
    Points
    13
    Par défaut changer le fusil d'épaule
    bonjour,

    toujours sous access 2003, je veux cette fois un simple message d'erreur si la photo n'existe pas et qu'ensuite l'état s'ouvre quand même!
    le code suivant fonctionne dans une base autre que la mienne
    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
    25
    Option Compare Database
    Option Explicit
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
       photo.Picture = FldPhoto
     
    End Sub
     
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
     '  photo.Picture = FldPhoto
     On Error GoTo err_Détail_Print
       photo.Picture = FldPhoto
       Exit Sub
    err_Détail_Print:
    MsgBox ("UN ELEVE N'A PAS ENCORE DE PHOTO")
     
    End Sub
     
    Private Sub Détail_Retreat()
       photo.Picture = FldPhoto
    End Sub
     
    Private Sub Report_Page()
       photo.Picture = FldPhoto
    End Sub
    mais lorsque je le copie, il s'arrete sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
       photo.Picture = FldPhoto
    en déclarant une erreur d'exécution '13'
    incompatibilité de type! Que dois-je faire? je ne comprends pas...est ce encore trop ambitieux ?
    C'est mon dernier détail de un grand merci d'avance à toutes vos solutions!!

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2013, 13h25
  2. Réponses: 3
    Dernier message: 28/05/2010, 09h58
  3. vérifier qu'un champ est vide dans un formulaire
    Par dr_feelgood dans le forum IHM
    Réponses: 3
    Dernier message: 08/06/2007, 07h21
  4. Réponses: 1
    Dernier message: 20/03/2006, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo