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

IHM Discussion :

[état] gestion images


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour et désolé de revenir à la charge, mais je n'ai pas trouvé ma réponse dans les FAQ, codes sources et forum.

    J'ai bien compris la procédure pour une image dans un Etat, en créant un table référençant le chemin d'accès.

    Mon souci, c'est que je ne veux pas créer une table de ce genre. Je voudrais qu'Access aille directement chercher la photo qui correspond au code identifiant de mon enregistrement.
    Je précise que toutes mes photos sont nommées exactement comme le code identifiant, et toutes dans le même répertoire.

    Est-il possible de faire une manip comme sous Excel (macro affectée à un bouton d'affichage : Photo = Application.ActiveWorkbook.Path & "\Photos\" & Id & ".jpg") ?
    ESt-il possible que pour chaque enregistrement de l'état il affiche la photo correspond au code identifiant ?

    En vous remerciant.
    OLIVIER

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello et bienvenue sur le forum,

    merci de ne pas greffer de nouvelles question sur un post existant mais d'en créer un nouveau.

    Pour ta question, ceci se gère sur l'événement Formatage avec la propriété .Picture d'un contrôle de type Image.

    [edit]
    la valeur d'un Controle est : Me.NomControle

    donc je ne vois pas trop la difficulté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.CtlPicture.Picture = CurrentProject.Path & "\un sous rep\" & Me.UnChampId & ".jpg"
    [/edit]

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bien compris la manip.

    Simplement, je suis sous Access97, et lors de l'excution du code VBA, il me met "Variable non définie" en m'indiquant CurrentProject comme source de problème.

    Est ce que la propriété CurrentProject est référencée dans Access97 ?

    Pour info, mon code VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Report_Open(Cancel As Integer)
    Dim CheminApplication As String
    CheminApplication = CurrentProjet.Path
    Me.Photojury.Picture = CheminApplication & "..\Jury\Photos_Fiches-jury\" & Me.Id - Arbre & ".jpg"
    End Sub

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    1- tu n'as pas mis sur formatage ... mais sur ouverture ... donc c'est loupé

    2- currentproject n'existe pas dans Access 97, en triturant CurrentDB.Name tu devrais y arriver ...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    1 OK, j'avais mis sur ouverture car je ne trouvait pas formatage pour l'état. Je l'ai trouvé en affectant la procédure à la section détail où se trouve l'image à insérer.

    2 Merci pour CurrentDB. Il reconnait mieux. Mais il ne connait pas .Name ni .Path : "membre de méthode ou donnée introuvable"

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par OliveT1
    1 OK, j'avais mis sur ouverture car je ne trouvait pas formatage pour l'état. Je l'ai trouvé en affectant la procédure à la section détail où se trouve l'image à insérer.

    2 Merci pour CurrentDB. Il reconnait mieux. Mais il ne connait pas .Name ni .Path : "membre de méthode ou donnée introuvable"
    non, non, CurrentDB.Name renvoie le chemin complet de la base, donc avec le répertoire, à toi de triturer cette chaine pour ne retenir que le répertoire ...

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    depuis 2000


  8. #8
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par Tofalu
    depuis 2000

    Certes mais il est sous Access 97

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Sous Access97, la fonction CurrentDB ne sert qu'à renvoyer le nom de l'application en cours en tant que variable (pour accéder si besoin aux objets de la base). Elle ne peut être associée à des propriétés du type .Path ou autre.

    Je ne trouve pas dans l'aide d'Access97 une fonction ou une propriété pour récupérer le chemin de l'application.

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par OliveT1
    Sous Access97, la fonction CurrentDB ne sert qu'à renvoyer le nom de l'application en cours en tant que variable (pour accéder si besoin aux objets de la base). Elle ne peut être associée à des propriétés du type .Path ou autre.

    Je ne trouve pas dans l'aide d'Access97 une fonction ou une propriété pour récupérer le chemin de l'application.
    Okay, on sait tout ça, mais ça fait déjà deux fois que je t'explique qu'il faut juste travailler sur ce nom complet, puisqu'il contient le chemin de l'appli ...
    par exemple en regardant la fonction ParentDir() qui est dans la FAQ

    http://access.developpez.com/faq/?rechercher=parentdir

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Désolé, je n'avais pas compris que CurrentDB renvoyait le chemin complet en plus du nom de l'appli.

    J'ai donc créé un module pour définir la fonction ParentDir. Mais, je ne saisi pas bien la fonction de la FAQ, notamment l'endroit où j'indique en entrée de la fonction le chemin récupéré. Dois-je remplacer "Fichier" par ma variable contenant le résultat de CurrentDB ?

    Ensuite, pour récupérer le résultat de la fonction ParentDir et le replacer dans ma procédure évènementielle au formatage de l'état, que dois-je replacer dans le code ? str ou ParentDir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    Me.Photojury.Picture = str & "..\Jury\Photos_Fiches-jury\" & Me.Id - Arbre & ".jpg"
    End Sub

  12. #12
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par OliveT1
    Désolé, je n'avais pas compris que CurrentDB renvoyait le chemin complet en plus du nom de l'appli.
    ça aurait été sympa de tester ...

    Citation Envoyé par OliveT1
    J'ai donc créé un module pour définir la fonction ParentDir. Mais, je ne saisi pas bien la fonction de la FAQ, notamment l'endroit où j'indique en entrée de la fonction le chemin récupéré. Dois-je remplacer "Fichier" par ma variable contenant le résultat de CurrentDB ?

    Ensuite, pour récupérer le résultat de la fonction ParentDir et le replacer dans ma procédure évènementielle au formatage de l'état, que dois-je replacer dans le code ? str ou ParentDir
    ... et bien ... je vois ça comme ça ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    Me.Photojury.Picture = ParentDir(CurrentDB.Name) & "Jury\Photos_Fiches-jury\" & Me.Id & " - Arbre.jpg"
    End Sub
    à part que ... qu'est ce que Arbre ? une variable du texte ? là j'ai considéré que c'était du texte.

    Si ça ne fonctionne pas, fais un debug.print pour savoir ce que donne ta chaîne.

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bon, je crois que je vais me faire lincher, mais Debug.Print, ça s'utilise comment ? Je l'ai inséré dans mon code pour voir ce que contenait une variable, mais je ne parviens pas à le faire s'exécuter (pas à pas détaillé ne donne rien).

    Sinon, Arbre est le nom de mon champ, mais je l'ai corrigé car j'ai senti des pbs. Donc Id - Arbre devient IdArbre et représente le champ à prendre en compte dans la recherche de la photo correspondante.

    Pour la procédure formatage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    Dim CheminApplication As Database
    Me.Photojury.Picture = ParentDir(CheminApplication) & "..\Jury\Photos_Fiches-jury\" & Me.IDArbre & ".jpg"
    End Sub
    Ca ne donne rien : type incompatible pour ParentDir et CurrentDb.Name n'existe pas sous Access97

    Pour la fonction :
    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
    Function ParentDir(ByVal str As String) As String
    Dim i As Integer
    Dim CheminApplication As Database
    Set CheminApplication = CurrentDb
     
     ' repère le dernier "\"
    If Right(str, 1) = "\" Then str = Left(str, Len(str) - 1)
     
     ' maintenant regarde le précédent
    For i = Len(str) To 1 Step -1
        If Mid(str, i, 1) = "\" Then
            Debug.Print "CheminApplication " & Right(str, Len(str) - i)
            str = Left(str, i)
            GoTo fin01
        End If
    Next i
     
    fin01:
        Debug.Print "Répertoire " & str
        ParentDir = str
    End Function
    J'ai remplacé Fichier par CheminApplication, je n'ai pas d'erreur à la compilation du module, mais je ne sais pas vérifier le contenu du résultat

    J'avoue être un peu largué, ça fait trop longtemps que je n'ai plus fait de VBA. Désolé.

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Si tu ne sais pas te servir de debug.print, regarde ce tuto :
    http://cafeine.developpez.com/debugprint/

    sinon CurrentDB.Name existe bel et bien dans Access 97 ... donc vérifie ou teste ... sinon essaie avec Application.CurrentDB.Name ...


    Utilise ParentDir ... sans la modifier ... ça sera sympa :
    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
    Function ParentDir(ByVal str As String) As String 
    Dim i as Integer
     
     ' repère le dernier "\" 
    If Right(str, 1) = "\" Then str = Left(str, Len(str) - 1) 
     
     ' maintenant regarde le précédent 
    For i = Len(str) To 1 Step -1 
        If Mid(str, i, 1) = "\" Then 
            str = Left(str, i) 
            GoTo fin01 
        End If 
    Next i 
     
    fin01: 
        ParentDir = str 
    End Function

    et ensuite ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Me.Photojury.Picture = ParentDir(CurrentDB.Name) & "Jury\Photos_Fiches-jury\" & Me.IdArbre & ".jpg"
    End Sub

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    OK, merci pour les tuyaux.

    Pour ParentDir, la FAQ indiquait de renseigner en entrée de fonction le chemin récupéré. Mais comme je ne savais pas où cela s'indiquait, je croyais que c'était dans le code de la fonction ParentDir.

    Désolé pour le .Name, l'aide ne me l'affichait pas systématiquement.

    Par contre, ParentDir renvoie une arboresence MS-DOS en 8.3 (avec les ~1), qui n'est pas reconnue dans ma procédure au formatage.
    Pour que ça marche, j'ai du remplacer ParentDir par le chemin complet (mais la fonction perd toute son utilité).
    Peut-on spécifier de récupérer le nom sans le format 8.3 ?

    Sinon, pour tout simplifier, peut on faire utiliser des chemins relatifs, du genre "../jury/Photos-fiches-jury/" ?

  16. #16
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    je ne suis pas sur que tu puisses utiliser du relatif "../" mais teste avec une autre fonction via les FSO (ajoute la référence)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function GetParentFolder(ByVal Fold As String) As String
     
    Dim fso As New FileSystemObject
     
    GetParentFolder = fso.GetParentFolderName(Fold)
     
    End Function

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci, je vais essayer cette fonction et je te donnerais les résultats.

    Sinon, pour faire fonctionner ParentDir, il y a un moyen de ne pas avoir en retour le chemin en nom MS-DOS, parce que ça bloque dans la procédure ensuite ?
    Ou il faut que je change toute mon arboresence pour la mettre au format 8.3 ?

  18. #18
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Essaie donc cette fonction et tiens nous au courant.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 80
    Points : 53
    Points
    53
    Par défaut
    Salut,

    Je veux faire exactement la meme chose...
    Serait-il possible de mettre un exemple concret sur le site pour que je puisse m'inspirer du code. Merci car je suis un peu paumé là ;-)

  20. #20
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    merci de créer un nouveau sujet en exposant clairement et précisément ta problématique et en postant si besoin des extraits de code posant problème.

    Pour ton info, j'ai réalisé un tuto sur le sujet :
    http://cafeine.developpez.com/access/tutoriel/photos/

Discussions similaires

  1. [erreur 2114] : gestion image dans état
    Par menguygw dans le forum IHM
    Réponses: 5
    Dernier message: 15/11/2007, 11h15
  2. [débutant] Gestion images pour un jeu
    Par superpigeon dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/11/2006, 15h05
  3. Quel langage pour logiciel gui/gestion image ?
    Par Invité(e) dans le forum Langages de programmation
    Réponses: 12
    Dernier message: 18/10/2006, 10h38
  4. gestion images
    Par lynyrd dans le forum Access
    Réponses: 2
    Dernier message: 01/03/2006, 13h23

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