OVH Cloud OVH Cloud

taille de fichier (vba)

8 réponses
Avatar
fth
Bonjour,

Je tente (avec le code ci-dessous) d'ajouter dans le champ (SizeDb) la
taille des fichiers.
le path = AppliPath
le fichier = AppliName

Pourquoi cela ne focntionne t'il pas?

D'avance merci pour vos pistes

Frédéric


Private Sub BTUpdateSize_Click()
Dim rst As Recordset
Dim CheminFichier As String

Set rst = Me.Recordset
CheminFichier = AppliPath & "\" & rst!AppliName

While Not rst.EOF
'MsgBox "Taille de " & CheminFichier & " : "
Me.SizeDb = FileLen(CheminFichier)
Wend

rst.MoveNext

End Sub

8 réponses

Avatar
Eric
Bonjour Frédéric,

Ne serait-ce pas :
CheminFichier = rst!AppliPath & "" & rst!AppliName
au lieu de
CheminFichier = AppliPath & "" & rst!AppliName

car AppliPath n'est pas défini dans ta procédure ?


Bonjour,

Je tente (avec le code ci-dessous) d'ajouter dans le champ (SizeDb)
la taille des fichiers.

le path = AppliPath
le fichier = AppliName

Pourquoi cela ne focntionne t'il pas?

D'avance merci pour vos pistes

Frédéric


Private Sub BTUpdateSize_Click()
Dim rst As Recordset
Dim CheminFichier As String

Set rst = Me.Recordset
CheminFichier = AppliPath & "" & rst!AppliName

While Not rst.EOF
'MsgBox "Taille de " & CheminFichier & " : "
Me.SizeDb = FileLen(CheminFichier)
Wend

rst.MoveNext

End Sub



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,

Je tente (avec le code ci-dessous) d'ajouter dans le champ (SizeDb) la
taille des fichiers.
le path = AppliPath
le fichier = AppliName

Pourquoi cela ne focntionne t'il pas?

D'avance merci pour vos pistes

Frédéric


Private Sub BTUpdateSize_Click()
Dim rst As Recordset
Dim CheminFichier As String

Set rst = Me.Recordset
CheminFichier = AppliPath & "" & rst!AppliName

While Not rst.EOF
'MsgBox "Taille de " & CheminFichier & " : "
Me.SizeDb = FileLen(CheminFichier)
Wend

rst.MoveNext

End Sub




--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Gafish
"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:

Bonjour,


Bonjour,

Je tente (avec le code ci-dessous) d'ajouter dans le champ (SizeDb) la
taille des fichiers.
le path = AppliPath
le fichier = AppliName

While Not rst.EOF
'MsgBox "Taille de " & CheminFichier & " : "
Me.SizeDb = FileLen(CheminFichier)
Wend

rst.MoveNext


Deux soucis constatés.
Déja si tu ne mets pas le movenext dans le while...wend, tu dois boucler
indéfiniment.
Sinon tu veux mettre à jour les données de ton recordset dans ta boucle ?
Le Me.SizeDb il fait référence à un champ du form ? Si oui, tu écrases à
chaque passage.
Le mieux serait sans doute à chaque boucle de stocker dans la table non ?

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
fth
Bonjour Gafish,

De fait, en mettant movenext au bon endroit ..
ça boucle moins.
Merci

Oui, je dois mettre la table à jour.
Je pensais le faire avec me.sizedb
Non?

Merci

Frederic



"Gafish" wrote in message
news:
"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:

Bonjour,


Bonjour,

Je tente (avec le code ci-dessous) d'ajouter dans le champ (SizeDb) la
taille des fichiers.
le path = AppliPath
le fichier = AppliName

While Not rst.EOF
'MsgBox "Taille de " & CheminFichier & " : "
Me.SizeDb = FileLen(CheminFichier)
Wend

rst.MoveNext


Deux soucis constatés.
Déja si tu ne mets pas le movenext dans le while...wend, tu dois boucler
indéfiniment.
Sinon tu veux mettre à jour les données de ton recordset dans ta boucle ?
Le Me.SizeDb il fait référence à un champ du form ? Si oui, tu écrases à
chaque passage.
Le mieux serait sans doute à chaque boucle de stocker dans la table non ?

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Gafish
"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:

Bonjour Gafish,

De fait, en mettant movenext au bon endroit ..
ça boucle moins.
Merci

Oui, je dois mettre la table à jour.
Je pensais le faire avec me.sizedb
Non?


Vu que tu veux mettre à jour plusieurs enregistrements de ta table, le
meilleur fonctionnement est à mon sens de mettre à jour la table, d'autant
que tu boucles dessus avec ton recordset.
Le Me fait réference à un form, et vu que tu boucles, tu écrases à chaque
fois la valeur précédente.
Essaie le code suivant :

While Not rst.EOF
rst.Edit
rst.Fields("SizeDb") = FileLen(CheminFichier)
rst.Update
rst.MoveNext
Wend

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
fth
Re bonjour,

ça semble tourner mais qq chose est surprenant:

tous les fichiers ont la mm taille ...
et tous ne sont pas traité, pourtant, ils existent bien (le on error..) by
pass ceux qu in'existent pas(plus)

bizzare non?

F



"Gafish" wrote in message
news:u7MC3$
"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:

Bonjour Gafish,

De fait, en mettant movenext au bon endroit ..
ça boucle moins.
Merci

Oui, je dois mettre la table à jour.
Je pensais le faire avec me.sizedb
Non?


Vu que tu veux mettre à jour plusieurs enregistrements de ta table, le
meilleur fonctionnement est à mon sens de mettre à jour la table, d'autant
que tu boucles dessus avec ton recordset.
Le Me fait réference à un form, et vu que tu boucles, tu écrases à chaque
fois la valeur précédente.
Essaie le code suivant :

While Not rst.EOF
rst.Edit
rst.Fields("SizeDb") = FileLen(CheminFichier)
rst.Update
rst.MoveNext
Wend

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
re,

as-tu tenu compte de mon post ?

Re bonjour,

ça semble tourner mais qq chose est surprenant:

tous les fichiers ont la mm taille ...
et tous ne sont pas traité, pourtant, ils existent bien (le on error..) by
pass ceux qu in'existent pas(plus)

bizzare non?

F



"Gafish" wrote in message
news:u7MC3$

"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:


Bonjour Gafish,

De fait, en mettant movenext au bon endroit ..
ça boucle moins.
Merci

Oui, je dois mettre la table à jour.
Je pensais le faire avec me.sizedb
Non?


Vu que tu veux mettre à jour plusieurs enregistrements de ta table, le
meilleur fonctionnement est à mon sens de mettre à jour la table, d'autant
que tu boucles dessus avec ton recordset.
Le Me fait réference à un form, et vu que tu boucles, tu écrases à chaque
fois la valeur précédente.
Essaie le code suivant :

While Not rst.EOF
rst.Edit
rst.Fields("SizeDb") = FileLen(CheminFichier)
rst.Update
rst.MoveNext
Wend

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
fth
oui oui, j'ai corrigé le rst! qui manquait (ton conseil)
et déplacé le movenext (arnaud)

Vos deux conseils on redonné un peu de "Peps!" à ma procédure
reste maintenant à mettre la table à jour et comprendre pourquoi toutes les
bases ont la mm tailles ...

Merci à vous deux,

Frédéric

Le code est donc actuellement comme suit:

Private Sub BTUpdateSize_Click()

On Error Resume Next

Dim rst As Recordset
Dim CheminFichier As String

Set rst = Me.Recordset
CheminFichier = rst!AppliPath & "" & rst!AppliName


While Not rst.EOF
rst.Edit
rst.Fields("SizeDb") = FileLen(CheminFichier)
rst.Update
rst.MoveNext
Wend



End Sub

"Eric" wrote in message
news:%
re,

as-tu tenu compte de mon post ?

Re bonjour,

ça semble tourner mais qq chose est surprenant:

tous les fichiers ont la mm taille ...
et tous ne sont pas traité, pourtant, ils existent bien (le on error..)
by pass ceux qu in'existent pas(plus)

bizzare non?

F



"Gafish" wrote in message
news:u7MC3$

"fth" <frederic.thiriauxSPAM!@matloc.be> a écrit dans le message de news:


Bonjour Gafish,

De fait, en mettant movenext au bon endroit ..
ça boucle moins.
Merci

Oui, je dois mettre la table à jour.
Je pensais le faire avec me.sizedb
Non?


Vu que tu veux mettre à jour plusieurs enregistrements de ta table, le
meilleur fonctionnement est à mon sens de mettre à jour la table,
d'autant que tu boucles dessus avec ton recordset.
Le Me fait réference à un form, et vu que tu boucles, tu écrases à chaque
fois la valeur précédente.
Essaie le code suivant :

While Not rst.EOF
rst.Edit
rst.Fields("SizeDb") = FileLen(CheminFichier)
rst.Update
rst.MoveNext
Wend

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
Gafish
"fth" a écrit dans le message de news:
43269c67$0$29278$
Vos deux conseils on redonné un peu de "Peps!" à ma procédure
reste maintenant à mettre la table à jour et comprendre pourquoi toutes
les bases ont la mm tailles ...

C'est normal, il faut que tu mettes cette ligne :

CheminFichier = rst!AppliPath & "" & rst!AppliName
dans la boucle, là le chemin est fait avant, donc il reste fixe, donc tu
pointes tout le temps sur le même fichier.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr