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

Access Discussion :

Gestion photo access lien relatif


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Gestion photo access lien relatif
    Bonjour,

    Une question concernant la gestion des photos et sur le tutoriel de caféine.

    Comment tout en conservant le code donné par caféine peut-on le modifier pour que lorsque l'on clique sur le bouton pour aller chercher le chemin d'une image, le chemin d'accès du fichier ne soit plus en absolu (cad à partir de C:\...\...\ mais en relatif à partir de l'endroit où se trouve ma base de donnée et les répertoires qui se trouvent dans le même répertoire). Le but de la manoeuvre est qu'une fois les chemins de mes fichiers images établis, ils ne soient pas perdus (invalides) si je déplace ma base (un peu comme avec les liens hypertexte).

    Après recherche sur le forum, j'ai bien trouvé une réponse pour la gestion du chemin du répertoire (avec currentproject.path) mais je suis novice et ne comprend pas grand chose (pour le moment, faut espérer) et je suis par avance désolé de reposer une question pour laquelle il existe déjà une réponse. Mais j'ai besoin de votre aise, vraiment pas à pas pour comprendre.

    Merci d'avance...

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Moi je procède comme suit.

    1-je déclare un module où je met ce code
    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
    Function link() As String
     
    'Fonction permettant de recuperer le chemin courant de la base
     
        If Right(Application.CurrentDb.Name, 1) = "\" Then
     
            link = Application.CurrentDb.Name
     
        Else
     
            link = Left(Application.CurrentDb.Name, InStrRev(Application.CurrentDb.Name, "\"))
     
        End If
     
    End Function
    ensuite lorsque je veux accéder à un fichier ou dossier possédant la même racine que la base ouverte =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imgLogo.Picture = link & "Divers\trophy2.jpg"
    la variable link possède le chemin de ta base si il y a des sous dossier comme dans l'exemple tu effectue l'ajout.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse,
    Je précise ma question dans le tutoriel de cafeine sur la gestion des photos, il y a ce code pour un bouton qui ouvre une boite de dialogue "Choix image":

    Private Sub cmdPhoto_Click()
    ' Bouton d'ajout - modification de photo
    Dim strLink As String

    ' Gestion des erreurs
    On Error GoTo Catch01

    ' récupération du chemin physique de la photo
    ' par la boite de dialogue
    strLink = OuvrirUnFichier(Me.Hwnd, _
    "Sélectionner une photo pour le salarié " & Me.Nom, _
    1)

    ' si la boite renvoie une adresse non nulle
    If Len(strLink) > 0 Then
    ' tentative d'affichage de la photo
    Me.imgPhoto.Picture = strLink
    Me.Photo = strLink
    End If

    DisplayPhoto
    Exit Sub

    Est-il possible de rajouter une option dans le strLink = OuvrirUnFichier qui lui indique que le chemin du répertoire est à prendre à partir de la base en cours du style LeCheminDeMesImages=CurrentProjetc.PAth et RepParDefaut.

    Private Sub cmdPhoto_Click()
    Dim strLink As String

    ' Gestion des erreurs
    On Error GoTo Catch01

    ' récupération du chemin physique de la photo
    ' par la boite de dialogue
    LeCheminDeMesImages=CurrentProjetc.PAth & "\Images\"
    strLink = OuvrirUnFichier(Me.hwnd, _
    "Sélectionner une photo pour " & Me.Nom, _
    1,,,LeCheminDeMesImages)

    ' si la boite renvoie une adresse non nulle
    If Len(strLink) > 0 Then
    ' tentative d'affichage de la photo
    Me.imgPhoto.Picture = strLink
    Me.Photo = strLink
    End If
    DisplayPhoto
    Exit Sub


    Je précise que je reprend un post (clos) qui donne cette solution mais que je n'arrive pas à faire fonctionner
    http://www.developpez.net/forums/vie...latif&start=15

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    1 - Mets des balises de Code STP, c'est difficile à lire sinon.

    2 - CurrentProjetc c'est plutôt CurrentProject : c'est juste une erreur de recopie dans le message?

    3 - Idéalement tu devrais déclarer ta variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim LeCheminDeMesImages as string
    (c'est obligatoire si tu as mis <Option Explicit> en haut du module)

    4 - Qu'est ce qui ne marche pas?
    Message d'erreur?
    Ou mauvais répertoire par défaut à l'ouverture de la fenêtre?

    Bye.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oups pour le code.
    Oui c'est bien CurrentProject, et j'ai bien essayé avec la déclaration de varaible.

    Je suis désolé, mais j'ai pas le projet sur mon ordi... pour le message d'erreur.
    J'aimerais juste savoir si je suis sur la bonne voie pour indiquer un chemin relatif pour mon lien vers mon fichier image (pour pouvoir déplacer mon dossier où se trouve ma base et ses images).

    Et que faut-il rajouter pour ne pas préciser un sous-dossier mes des sous dossiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeCheminDeMesImages=CurrentProjetc.PAth & "\Images\"
    donc pas le "& \repertoire\"

  6. #6
    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 : 40
    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
    A priori là, tu as toutes les clés en main, je ne vois pas où tu bloques

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Voilà, finalement après consultation de ma base aujourd'hui, il n'y a pas de message d'erreur, tout fonctionne sauf que le chemin indiqué dans mon champ "lien" est toujours en absolu et non en relatif. Donc bizare !!!????

  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
    Hello,

    ce n'est pas bizarre, l'appli est conçue pour stocker le chemin complet.

    à toi d'adapter le code pour ne stocker que la partie qui "dépasse" de CurrentProject.Path

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminStocke = Right(CheminComplet, Len(CheminComplet) - Len(CurrentProject.Path))
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Salut,


    Alors pourquoi quand on mais un lien hypertexte dans un champ dédié, celui-ci apparait avec un nom de chemin depuis le répertoire où se trouve ma base et non depuis C:\

    l'appli est conçue pour stocker le chemin complet
    Est-il possible de prendre le texte qui est dans mon champs hyperlink pour ma photo et de le mettre dans un code tel que (pour afficher ma photo) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.imgPhoto.Picture = strLink 
    Me.Photo =  CurrentProjetc.PAth & "\" & Me.[ChampLienPhotoHypertexte]
    ou faut-il que je copie mon champ hypertexte dans un champ texte pour pouvoir récupérer la valeur dans mon code. Si oui, quel est le code pour le faire !!!
    Je suis vraiment perdu.

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    CurrentProject

    à moins que tu ne changes exprès en currentProjetc dans chacun de tes messages?

  11. #11
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Mille excuse....

    J'ai encore fait un copier-coller sur ma première erreur du début.
    L'erreur est humaine, persister est diabolique.
    Oups!!!

  12. #12
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je suis un peu perdu.
    Ma question est si avec le tutoriel de cafeine sur la gestion des images sous access, par quelques modifications, on peut transformer ce tutoriel pour que les images que l'on importe (le chemin) ne soit plus à partir de C: mais de l'emplacement où se trouve ma base. Le but étant que si l'on déplace sur le disque dur ou dans une sauvegarde, la base et ses répertoires fils, la structure des lien de fichiers soit toujours valides.
    Pour le moment, si je déplace ma base et ses répertoires, les liens sont les anciens chemins de mes images.
    Quelqu'un a-t-il déjà planché sur la question et aurait donc le tutoriel de cafeine sur la gestion des images avec cette modification ?

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    hello guiget
    la question que tu as posée (il y a mainteant quelques mois) m'interresse aussi donc si jamaie tu as trouver une solution a ce chemin d'accés relatif je suis preneuse en attendant j'y buche aussi.

  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
    Citation Envoyé par batide
    hello guiget
    la question que tu as posée (il y a mainteant quelques mois) m'interresse aussi donc si jamaie tu as trouver une solution a ce chemin d'accés relatif je suis preneuse en attendant j'y buche aussi.
    Tous les éléments de réponse ont été apportés ... il ne reste qu'à les mettre en oeuvre par le code.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  15. #15
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    trés bien, je ne comprend pas tout mais, à force de relire je m'en sortirais... Merci quand même.
    "c'est en marchant ...."

  16. #16
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    désolé d'insister mais j'ai réellement un pb: je récupérer bien le chemin relatif dans le champ de ma table, mais il ma dit qu'il ne les trouves pas: msg d'erreur le fichier n'as pas été trouver à l'emplacement indiqué: "le chemin relatif"
    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
     
    strLink = OuvrirUnFichier(Me.Hwnd, _
                             "Sélectionner une photo pour" & Me.Num_photo, _
                             1)
     
    ' si la boite renvoie une adresse non nulle
    If Len(strLink) > 0 Then
        ' tentative d'affichage de la photo
        Me.image = Right(strLink, Len(strLink) - Len(CurrentProject.Path))
        Me.imgPhoto.Picture = CurrentProject.Path & "Me.image"
     
     
    End If
     
     
    DisplayPhoto
    Exit Sub

    re désolé de possé a nouveau une question qui semble tant vous énéervé mais je pense avoir fait le tour des Faq et forum sans trouver la solution
    Merci d'avance si vous pouvez maider.
    PS: sur Access 2003

  17. #17
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    c'est pas que la question énerve mais sans les détails on ne pouvait pas t'aider

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.imgPhoto.Picture = CurrentProject.Path & "\" & Me.image
    1 - je crois me rappeler que CurrentProject.Path renvoie un chemin sans l'anti-slash à la fin, il faut donc le rajouter
    2 - Me.Image ne doit pas être entre guillemets pour que l'expression soit évaluée

  18. #18
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Merci,

    ça marche parfaitement, merci beaucoup....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2013] Lien relatif entre Access et Word pour publipostage
    Par CrasherSEP dans le forum Word
    Réponses: 14
    Dernier message: 18/02/2015, 13h00
  2. [WD-2007] Publipostage avec Access en utilisant un lien relatif
    Par CrasherSEP dans le forum Word
    Réponses: 0
    Dernier message: 14/05/2014, 14h10
  3. Réponses: 7
    Dernier message: 29/01/2008, 15h21
  4. [FLASH MX] Gestion dynamique de liens
    Par guy2004 dans le forum Flash
    Réponses: 18
    Dernier message: 20/01/2005, 08h21
  5. [VS.NET] Liens relatifs et suivi des sessions ?
    Par Webman dans le forum ASP.NET
    Réponses: 6
    Dernier message: 18/11/2004, 21h21

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