OVH Cloud OVH Cloud

Access 2000 - listes de fichiers

8 réponses
Avatar
mission
Bonjour,

Je cherche désespérément à créer une table Access2000 comprenant a priori 2
champs :
le 1er étant une clé auto-incrémentée, le second comprenant le chemin unc
complet des fichiers contenus dans un répertoire partagé et ses
sous-répertoires sur un serveur.

A noter que je bafouille lamentablement en vba, et que je suis guère plus
performant en Access :-(

Est-ce que quelqu'un peut m'aider à réaliser la commande permettant d'une
part la création de cette table et d'autre par à son enrichissement
ultérieur ?

Merci d'avance.

PG

8 réponses

Avatar
Argyronet
Bonjour,

C'est sûr que si vous ne maîtrisez pas VBA et que vous n'êtes pas très à
l'aise avec Access, c'est pas gagné...
En fait, pour lister les chemins partagés, il faut utiliser des API's et la
philiosophie de leur usage est souvent obscure, qui plus est si vous n'avez
pas l'habitude du langage.

La solution serait de vous pondre la procédure toute faite, mais bon...
Est-ce bien raisonable ? ;o)
De mon coté, votre demande est relativement simple.
On parcours l'ensemble des lecteurs, on récupère la lettre attribuée à
chaque partage, on cherche la correspondance UNC et on rempli la table...

Donc...
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,

Je cherche désespérément à créer une table Access2000 comprenant a priori 2
champs :
le 1er étant une clé auto-incrémentée, le second comprenant le chemin unc
complet des fichiers contenus dans un répertoire partagé et ses
sous-répertoires sur un serveur.

A noter que je bafouille lamentablement en vba, et que je suis guère plus
performant en Access :-(

Est-ce que quelqu'un peut m'aider à réaliser la commande permettant d'une
part la création de cette table et d'autre par à son enrichissement
ultérieur ?

Merci d'avance.

PG





Avatar
mission
Bonjour, et, avant tout, merci de votre intérêt.

Quand je dis que je ne bafouille, c'est un peu exagéré. Je commence à me
débrouiller grâce en particulier à ce forum, et aussi à divers sites
francophones que je fréquente assidûment. Mais je me suis rendu compte que
je me dois de rester (très) modeste.....
J'ai trouvé chez 3stone
(http://www.3stone.be/access/articles.php?lng=fr&pg5) une fonction qui
me semble correspondre à ce que je cherche à faire.
Je pense qu'il me faut, ensuite, untiliser cette fonction dans une requête
de type ajout.
Et c'est là que je coince lamentablement.
Avec ceci, je suis un peu court ... :-(
///INSERT INTO Fichiers ( CheminFichier ) SELECT fListFiles("d:jeux") AS
Expr1 FROM Fichiers;///

Seriez-vous disposé à me guider ?
Merci encore.

PG

Dans son message ,
l'honorable Argyronet écrivait
Bonjour,

....

La solution serait de vous pondre la procédure toute faite, mais
bon... Est-ce bien raisonable ? ;o)
.... Non, ce n'est pas ce que je souhaite. J'aime bien comprendre.


Avatar
Argyronet
Le lien est invalide...
Cette page n'existe pas !
Cela vient soit d'une erreur de votre part, soit du lien erroné qui pointe
vers cette page.
Merci de le signaler au sympathique webmestre de ce site.
Que contenait cette page ?
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour, et, avant tout, merci de votre intérêt.

Quand je dis que je ne bafouille, c'est un peu exagéré. Je commence à me
débrouiller grâce en particulier à ce forum, et aussi à divers sites
francophones que je fréquente assidûment. Mais je me suis rendu compte que
je me dois de rester (très) modeste.....
J'ai trouvé chez 3stone
(http://www.3stone.be/access/articles.php?lng=fr&pg5) une fonction qui
me semble correspondre à ce que je cherche à faire.
Je pense qu'il me faut, ensuite, untiliser cette fonction dans une requête
de type ajout.
Et c'est là que je coince lamentablement.
Avec ceci, je suis un peu court ... :-(
///INSERT INTO Fichiers ( CheminFichier ) SELECT fListFiles("d:jeux") AS
Expr1 FROM Fichiers;///

Seriez-vous disposé à me guider ?
Merci encore.

PG

Dans son message ,
l'honorable Argyronet écrivait
Bonjour,

.....

La solution serait de vous pondre la procédure toute faite, mais
bon... Est-ce bien raisonable ? ;o)
..... Non, ce n'est pas ce que je souhaite. J'aime bien comprendre.







Avatar
3stone
"Argyronet"
| Le lien est invalide...
| Cette page n'existe pas !
| Cela vient soit d'une erreur de votre part, soit du lien erroné qui pointe
| vers cette page.
| Merci de le signaler au sympathique webmestre de ce site.
| Que contenait cette page ?


????


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Argyronet
Ben oui, désolé, Pierre mais cette page persiste avec le message "inconnue -
Cette page n'existe pas !"
Que suis-je censé trouver comme fonction dont me parle PG ?
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



"Argyronet"
| Le lien est invalide...
| Cette page n'existe pas !
| Cela vient soit d'une erreur de votre part, soit du lien erroné qui pointe
| vers cette page.
| Merci de le signaler au sympathique webmestre de ce site.
| Que contenait cette page ?


????


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"Argyronet"
| Cette page n'existe pas !"

Ce lien fonctionne parfaitement...

| Que suis-je censé trouver comme fonction dont me parle PG ?

La fonction montre comment remplir une liste à l'aide de .FileSearch


Function fListFiles(strDir As String, Optional SubDir As Boolean = False) As String
Dim intFile As Integer
intFile = 0
With Application.FileSearch
.LookIn = strDir
.SearchSubFolders = (SubDir = True)
.FileName = "*.*"
If .Execute > 0 Then
For intFile = 1 To .FoundFiles.Count
fListFiles = IIf(fListFiles = "", .FoundFiles(intFile), _
fListFiles & ";" _
& .FoundFiles(intFile))
Next intFile
End If
End With
End Function


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Argyronet
Bon, après cette périlleuse expérience ou je dois être handicapé de l'index
pour les liens http, voilà ce que je propose...

Function fListFiles(strDir As String, Optional SubDir As Boolean = False) As
String
Dim intFile As Integer

intFile = 0
With Application.FileSearch
.LookIn = strDir
.SearchSubFolders = (SubDir = True)
.Filename = "*.*"
If .Execute > 0 Then
For intFile = 1 To .FoundFiles.Count
fListFiles = IIf(fListFiles = "", .FoundFiles(intFile),
fListFiles & ";" & .FoundFiles(intFile))
Next intFile
End If
End With
End Function

Sub FillTable()
Dim astrFiles() As String
Dim oRS As DAO.Recordset
Dim oDB As DAO.Database
Dim strDriveLetter As String
Dim strTempPath As String
Dim strTempListUNC As String
Dim I As Integer

astrFiles = Split(fListFiles("M:UnServeurUnPartage"), ";")
If UBound(astrFiles) Then
Set oDB = CurrentDb()
For I = LBound(astrFiles) To UBound(astrFiles)
Set oRS = oDB.OpenRecordset("TableFichiers", 2)
strDriveLetter = GetUNCPath(Left(astrFiles(I), 2))
strTempPath = Mid(astrFiles(I), 3)
strTempListUNC = strDriveLetter & strTempPath
With oRS
.AddNew
.Fields("NomFichier") = strTempListUNC
.update
.Close
End With
Next I
End If
Set oRS = Nothing
Set oDB = Nothing
End Sub

La fonction "GetUNCPath()" est à mettre en place selon les modalités
expliquées ici :
http://support.microsoft.com/kb/q192689/

Espérant vous avoir aidé...
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour, et, avant tout, merci de votre intérêt.

Quand je dis que je ne bafouille, c'est un peu exagéré. Je commence à me
débrouiller grâce en particulier à ce forum, et aussi à divers sites
francophones que je fréquente assidûment. Mais je me suis rendu compte que
je me dois de rester (très) modeste.....
J'ai trouvé chez 3stone
(http://www.3stone.be/access/articles.php?lng=fr&pg5) une fonction qui
me semble correspondre à ce que je cherche à faire.
Je pense qu'il me faut, ensuite, untiliser cette fonction dans une requête
de type ajout.
Et c'est là que je coince lamentablement.
Avec ceci, je suis un peu court ... :-(
///INSERT INTO Fichiers ( CheminFichier ) SELECT fListFiles("d:jeux") AS
Expr1 FROM Fichiers;///

Seriez-vous disposé à me guider ?
Merci encore.

PG

Dans son message ,
l'honorable Argyronet écrivait
Bonjour,

.....

La solution serait de vous pondre la procédure toute faite, mais
bon... Est-ce bien raisonable ? ;o)
..... Non, ce n'est pas ce que je souhaite. J'aime bien comprendre.







Avatar
mission
Réponses dans le message....

Dans son message ,
l'honorable Argyronet écrivait
Bon, après cette périlleuse expérience ou je dois être handicapé de
l'index pour les liens http, voilà ce que je propose...
J'ai lu le fil avec 3stone. :-)

On m'a toujours dit qu'il n'y a que ceux qui ne fichent rien qui ne se
trompent jamais....
;-) ;-)

Function fListFiles(strDir As String, Optional SubDir As Boolean > False) As String
........

End Sub
Mouais ! je comprends pourquoi je ne comprenais pas.

Je pouvais chercher des heures.
En fait, c'est drôlement compliqué cette affaire !
Merci pour le code.


La fonction "GetUNCPath()" est à mettre en place selon les modalités
expliquées ici :
http://support.microsoft.com/kb/q192689/
Et un lien direct en prime. Que demander de mieux.


Espérant vous avoir aidé...
Je suis obligé d'aller au bout de ma démarche maintenant.

Je ne pourrai mettre en oeuvre que vendredi ou lundi.
Mais je le ferai

Merci encore de tout coeur. Et bonne continuation.
Ah ! l'entraide...

PG
.