Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 21h00   #1
Membre du Club
 
Jean-Luc
Inscription : mai 2004
Messages : 183
Détails du profil
Informations personnelles :
Nom : Jean-Luc
Âge : 58

Informations forums :
Inscription : mai 2004
Messages : 183
Points : 62
Points : 62
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 :
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
Jean-Luc80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 16h00   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
Bonjour,

tu pourrais essayer avec FileLen.
Code :
  T!Taille = FileLen(repertoire  & fichier)
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 08h06   #3
Membre du Club
 
Jean-Luc
Inscription : mai 2004
Messages : 183
Détails du profil
Informations personnelles :
Nom : Jean-Luc
Âge : 58

Informations forums :
Inscription : mai 2004
Messages : 183
Points : 62
Points : 62
Bonjour
J'ai remplacé par
Code :
 T!Taille = FileLen("c:\photoActeur\" & fichier) / 1000
pour avoir la taille des fichiers en Ko
Ca fonctionne parfaitement
Merci du conseil
A+
Jean-Luc80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 11h22   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
Bonjour,

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

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h22.


 
 
 
 
Partenaires

Hébergement Web