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 :

Apparition de  (carrés) dans le chemin des photos


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Apparition de  (carrés) dans le chemin des photos
    Bonjour à tous!
    Je me sert beaucoup de la FAQ et de tous les msg postés pour m'aider dans l'avancement de mon projet access (et j'essaye de donner des conseils quand j'ai trouvé qqchose d'intéressant!! ), mais là je bloque...alors je vous soumet mon probleme en espérant que vous pourrez m'aider...
    J'ai une base de données ACCESS 2003 dans laquelle j'ai un formulaire qui va chercher le chemin de 10 images (photo1 à photo10) et stocke ce chemin relatif dans une table (Tuto ouvrir fichier). Puis avec un bouton je fais afficher l'image (encore un bon tuto!!) du genre :

    Me.imgPhoto1.Picture = CurrentProject.Path & "\" & Photo1 , où photo1 est le chemin de la photo du genre "Photos\2006\Canon123.jpeg".

    Cela marche très bien, la base de données reste de taille acceptable vu que seulement le chemin des photos est stocké.
    Mais mon boss qui as la base sur son ordi du bureau veux transferer une partie de la base sur son laptop. Jai donc fais un formulaire de transfert (lier les tables, puis supprimer - trouvé sur la FAQ).

    Mais là les photos ne s'affichent plus.....Pourtant le dossier "Photos\2006" est également copié dans le même répertoire que la base; et il se passe le même problème si je copie/colle la base manuellement....
    En ouvrant la table des photos de la base de donnée copiée je vois l'enregistrement de chaque photos: le chemin est conservé mais il y a apparition de sigles bizarres; exemple:
    Photo1 : Photos\2006\Canon123.jpeg

    En effacant manuellement les , la photo se réaffiche dans mon formulaire.

    En fait les  apparaissent dans ma table originelle...mais les photos s'affichent...

    Alors deux questions :

    - Pourquoi cela arrive-t-il ?
    - Comment l'éviter OU comment supprimer par le code tous les  intempestifs AVANT ou APRES un déplacement de la base?


    Merci d'avance de votre aide !



    Code pour chercher le chemin de l'image1 et l'afficher:

    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
     
    Private Sub cmdPhoto1_Click()
    Dim strLink As String
    On Error Resume Next
     
    strLink = OuvrirUnFichier(Me.Hwnd, _
                             "Sélection de la 1ère photo pour l'évaluation en cours", _
                             1)
     
    If Len(strLink) > 0 Then
        Photo1 = Right(strLink, Len(strLink) - Len(CurrentProject.Path))
            DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
        Me.imgPhoto1.Picture = CurrentProject.Path & "\" & Photo1
        Me.txtPhoto1.Visible = False
        End If
    Err.Clear
    End Sub


    Ma base est compactée automatiquement à la fermeture je vais tester si cela peut influer....

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Hypothèse invalidée
    J'ai essayé en ne compactant pas la base de données...mais le résultat est le même : les maudits petits  apparaissent.
    Par contre j'ai trouvé une personne qui enregistre le non de chemin des photos différement que celle proposée dans le tutoriel avec la fonction MID...Pensez-vous que mon problème viendrais de là ???

    http://www.developpez.net/forums/sho...d.php?t=268690

  3. #3
    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
    Apparement, il y a un soucis dans la fonction Ouvrirunfichier. Tu peux poster son code ?

    D'autre part, tu essayes de récupérer le nom du fichier sans le chemin

    Photo1 = Right(strLink, Len(strLink) - Len(CurrentProject.Path))

    Or c'est ce que qui serait fait automatiquement dans strLink si tu fixais le troisième paramètre à 2 au lieu de 1

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Code du module OUVRIRFICH
    Merci de ta réponse rapide! Le code que tu demande est situé dans un module...je l'ai pris sur la FAQ. Le voici :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    Option Compare Database
    Option Explicit
     
    'Déclaration de l'API
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
                       "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
     'Structure du fichier
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
     
     'Constantes
    Private Const OFN_READONLY = &H1
    Private Const OFN_OVERWRITEPROMPT = &H2
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_NOCHANGEDIR = &H8
    Private Const OFN_SHOWHELP = &H10
    Private Const OFN_ENABLEHOOK = &H20
    Private Const OFN_ENABLETEMPLATE = &H40
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
    Private Const OFN_NOVALIDATE = &H100
    Private Const OFN_ALLOWMULTISELECT = &H200
    Private Const OFN_EXTENSIONDIFFERENT = &H400
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_CREATEPROMPT = &H2000
    Private Const OFN_SHAREAWARE = &H4000
    Private Const OFN_NOREADONLYRETURN = &H8000
    Private Const OFN_NOTESTFILECREATE = &H10000
     
    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHARENOWARN = 1
    Private Const OFN_SHAREWARN = 0
     
     
    Public Function OuvrirUnFichier(Handle As Long, _
                                    Titre As String, _
                                    TypeRetour As Byte, _
                                    Optional TitreFiltre As String, _
                                    Optional TypeFichier As String, _
                                    Optional RepParDefaut As String) As String
     'OuvrirUnFichier est la fonction a utiliser dans votre formulaire pour ouvrir _
    la boîte de dialogue de sélection d'un fichier.
     'Explication des paramètres
        'Handle = le handle de la fenêtre (Me.Hwnd)
        'Titre = Titre de la boîte de dialogue
        'TypeRetour (Définit la valeur, de type String, renvoyée par la fonction)
            '1 = Chemin complet + Nom du fichier
            '2 = Nom fichier seulement
        'TitreFiltre = Titre du filtre
            'Exemple: Fichier Access
            'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        'TypeFichier = Extention du fichier (Sans le .)
            'Exemple: MDB
            'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
     
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String
     
     'Construction du filtre en fonction des arguments spécifiés
    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
      sFiltre = sFiltre & TitreFiltre & " (*." & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
     
    Else: sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
     
    End If
     
     
     
     'Configuration de la boîte de dialogue
      With StructFile
        .lStructSize = Len(StructFile) 'Initialisation de la grosseur de la structure
        .hwndOwner = Handle 'Identification du handle de la fenêtre
        .lpstrFilter = sFiltre 'Application du filtre
        .lpstrFile = String$(254, vbNullChar) 'Initialisation du fichier '0' x 254
        .nMaxFile = 254 'Taille maximale du fichier
        .lpstrFileTitle = String$(254, vbNullChar) 'Initialisation du nom du fichier '0' x 254
        .nMaxFileTitle = 254  'Taille maximale du nom du fichier
        .lpstrTitle = Titre 'Titre de la boîte de dialogue
        .flags = OFN_HIDEREADONLY  'Option de la boite de dialogue
      End With
     
      If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(StructFile.lpstrFile)
          Case 2: OuvrirUnFichier = Trim$(StructFile.lpstrFileTitle)
        End Select
      End If
     
    End Function

  5. #5
    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
    Pour les carrés c'est normal, tu as oublié un bout de code dans cette partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(StructFile.lpstrFile)
          Case 2: OuvrirUnFichier = Trim$(StructFile.lpstrFileTitle)
        End Select
      End If
    Re vérifie la FAQ

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Tofalu
    Pour les carrés c'est normal, tu as oublié un bout de code dans cette partie
    Ok merci je vais voir dans la FAQ avec ce que tu m'as donné...Je te tiens au courant si cà marche...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Cà marche !!!
    Et oui tu avais raison, il manquait une partie du code...J'ai complété et disparu les carrés, et je peux déplacer ma base de données sans problème! Trop cool ce site quand même!!!

    Le code corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
     
          Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
     
        End Select
      End If


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

Discussions similaires

  1. [Batch] Caractères spéciaux (©) dans le chemin des fichiers lors d'un script copy
    Par SylvainM dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 02/09/2014, 16h48
  2. Réponses: 6
    Dernier message: 26/04/2014, 16h35
  3. [URL rewriting] & dans le chemin des URL
    Par transgohan dans le forum Apache
    Réponses: 6
    Dernier message: 30/05/2011, 08h27
  4. Sauver une image automatiquement dans un dossier des photos
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 14/03/2009, 08h14
  5. Réponses: 10
    Dernier message: 03/09/2004, 17h26

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