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 :

Récupérer taille des fichiers dans une table [AC-2002]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    303
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 303
    Points : 130
    Points
    130
    Par défaut Récupérer taille des fichiers dans une table
    Bonjour,

    J'ai écrit le code suivant pour récupérer le nom et la taille de fichiers dans une table nommée TbFichiers

    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
    Function RecuperationFichiers()
    Dim ProgressBar As akProgress.akProgressBar
    Fichiers.Visible = True
    DoCmd.SetWarnings False
     
     Dim T As DAO.Recordset, repertoire As String, fichier As String
     Set T = CurrentDb.OpenRecordset("tbFichiers")
     'répertoire des fichiers à récupérer
     repertoire = "C:\PhotoActeur\"
     'vide la table tbFichiers
     DoCmd.RunSQL "DELETE tbFichiers.* FROM tbFichiers;"
     
     fichier = Dir(repertoire & "*.jpg")      'pour les fichiers .jpg
     
     Compteur = 0
                    Dim Dossier As Folder
                    Dim Photo As file
                    Set FSO = New Scripting.FileSystemObject
                    Set Dossier = FSO.GetFolder("C:\PhotoActeur\")
                    Set ProgressBar = Me.ProgressBar.Object
                    For Each Photo In Dossier.Files
                        Compteur = Compteur + 1
                    Next
     
    With ProgressBar
        .BorderStyle = FixedSingle
        .FontColour = 0
        .BackColour = -2147483633
        .Value = 0
        .DotWidth = 1
        .GapWidth = 0
        .MarginSize = 0
        .ReverseGradient = False
        .GradientColour = GradientBlue
        .Min = 0
        .Max = Compteur
    End With
     
     Do Until fichier = ""
      T.AddNew
      ProgressBar.Value = ProgressBar.Value + 1
      Fichiers.Value = "Récupération du fichier : " & fichier
      T!fichier = fichier
      T!Taille = Photo.Size
      T.Update
      fichier = Dir
     Loop
     
     T.Close
     Set T = Nothing
    DoCmd.SetWarnings True
    With ProgressBar
    .BorderStyle = None
    .BackColour = -2147483633
    .FontColour = -2147483633
    .Value = 0
    End With
    Fichiers.Visible = False
     
    End Function
    Je lance ce code via un bouton sur un form avec barre de progression
    Mais j'ai une erreur 91 au niveau de la ligne " T!Taille = Photo.Size "
    Si je vire cette ligne ça marche et je récupère bien le nom de chaque fichier dans ma table
    Comment puis je faire pour récupérer aussi la taille ( par ex 15698 Ko )
    Merci de vos conseils toujours très pertinents

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    tu pourrais essayer avec FileLen.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      T!Taille = FileLen(repertoire  & fichier)
    A+

  3. #3
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    303
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 303
    Points : 130
    Points
    130
    Par défaut
    Bonjour
    J'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     T!Taille = FileLen("c:\photoActeur\" & fichier) / 1000
    pour avoir la taille des fichiers en Ko
    Ca fonctionne parfaitement
    Merci du conseil
    A+

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Pour être puriste, 1Ko vaut 1024 octets .
    Ko

    A+

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

Discussions similaires

  1. Récupérer des noms de fichier dans une table pour les placer en masque du tfilelist
    Par charliplanete dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 24/08/2011, 17h16
  2. CSV fichiers et chargement des données dans une table
    Par Lolitaaa dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2010, 15h21
  3. Réponses: 2
    Dernier message: 26/01/2010, 14h50
  4. [Système]Récupérer un nom de fichier dans une table
    Par denis76000 dans le forum Access
    Réponses: 7
    Dernier message: 04/04/2007, 11h24
  5. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34

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