-----Message d'origine-----
bonjour,
J'ai etudié les exps des sites des MVP mais j'ai pas
trouvé...
j'essaye d'apprendre a me servir de FileSearch afin
d'ecrire dans une table
les fichiers presents dans un rep et ses sous rep...
jusque la tout va bien mais il y a deux trucs qui
m'embetent un peu.
primo, FoundFile renvoie le chemin complet + le nom du
fichier ... mais j'ai
une magouille avec x y z pour me dépatouiller...
si il ya une methode pour ne renvoyer que le nom du
fichier, je suis
evidemment interesse !
secondo, y a t'il une methode qui renvoie le nom du
*dossier* ou le fichier
a ete trouve, a part avec des mids et etc..?
Ci dessous une partie de mon code.
With Application.FileSearch
.LookIn = MyPath
.SearchSubFolders = True
.FileName = "*.htm"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
rst.AddNew
x = Len(.LookIn)
y = Len(.FoundFiles(I))
z = (y - x) - 1
rst.Fields("NomDossier") = 'le nom du dossier
ou du sous-dossier
rst.Fields("NomFichier") = Right(.FoundFiles
(I), z)
Merci.
--
.
-----Message d'origine-----
bonjour,
J'ai etudié les exps des sites des MVP mais j'ai pas
trouvé...
j'essaye d'apprendre a me servir de FileSearch afin
d'ecrire dans une table
les fichiers presents dans un rep et ses sous rep...
jusque la tout va bien mais il y a deux trucs qui
m'embetent un peu.
primo, FoundFile renvoie le chemin complet + le nom du
fichier ... mais j'ai
une magouille avec x y z pour me dépatouiller...
si il ya une methode pour ne renvoyer que le nom du
fichier, je suis
evidemment interesse !
secondo, y a t'il une methode qui renvoie le nom du
*dossier* ou le fichier
a ete trouve, a part avec des mids et etc..?
Ci dessous une partie de mon code.
With Application.FileSearch
.LookIn = MyPath
.SearchSubFolders = True
.FileName = "*.htm"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
rst.AddNew
x = Len(.LookIn)
y = Len(.FoundFiles(I))
z = (y - x) - 1
rst.Fields("NomDossier") = 'le nom du dossier
ou du sous-dossier
rst.Fields("NomFichier") = Right(.FoundFiles
(I), z)
Merci.
--
jc.humbert@bigfoot.com
.
-----Message d'origine-----
bonjour,
J'ai etudié les exps des sites des MVP mais j'ai pas
trouvé...
j'essaye d'apprendre a me servir de FileSearch afin
d'ecrire dans une table
les fichiers presents dans un rep et ses sous rep...
jusque la tout va bien mais il y a deux trucs qui
m'embetent un peu.
primo, FoundFile renvoie le chemin complet + le nom du
fichier ... mais j'ai
une magouille avec x y z pour me dépatouiller...
si il ya une methode pour ne renvoyer que le nom du
fichier, je suis
evidemment interesse !
secondo, y a t'il une methode qui renvoie le nom du
*dossier* ou le fichier
a ete trouve, a part avec des mids et etc..?
Ci dessous une partie de mon code.
With Application.FileSearch
.LookIn = MyPath
.SearchSubFolders = True
.FileName = "*.htm"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
rst.AddNew
x = Len(.LookIn)
y = Len(.FoundFiles(I))
z = (y - x) - 1
rst.Fields("NomDossier") = 'le nom du dossier
ou du sous-dossier
rst.Fields("NomFichier") = Right(.FoundFiles
(I), z)
Merci.
--
.
InStr(1,"abc12","") renvoie 4
InStrRev("abc12", "", -1) renvoie 4 alors qu'on aurait pû s'attendre à ce qu'il renvoie 3 en
partant de la fin.
Mais il part de la fin du string inversé !! ce qui revient donc au même que le premier.
InStr(1,"abc12","") renvoie 4
InStrRev("abc12", "", -1) renvoie 4 alors qu'on aurait pû s'attendre à ce qu'il renvoie 3 en
partant de la fin.
Mais il part de la fin du string inversé !! ce qui revient donc au même que le premier.
InStr(1,"abc12","") renvoie 4
InStrRev("abc12", "", -1) renvoie 4 alors qu'on aurait pû s'attendre à ce qu'il renvoie 3 en
partant de la fin.
Mais il part de la fin du string inversé !! ce qui revient donc au même que le premier.
Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Salut 3stone
3stone <3stone@skynet.be> a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%23pFXDHA.2648@TK2MSFTNGP09.phx.gbl...
Salut 3stone
3stone <3stone@skynet.be> a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche ;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
enfin je trouves que tout ça sent la magouille , et si je cherchais a
passer
par FileSearch c'est que je pensais qu'il y avait des methodes integrees
pou
gerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça vaut
peut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
juste
choper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" a écrit dans le
message de news:3f3171cf$0$9625$Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
enfin je trouves que tout ça sent la magouille , et si je cherchais a
passer
par FileSearch c'est que je pensais qu'il y avait des methodes integrees
pou
gerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça vaut
peut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
juste
choper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" <jhumbert@club-internet.fr> a écrit dans le
message de news:3f3171cf$0$9625$7a628cd7@news.club-internet.fr...
Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%23pFXDHA.2648@TK2MSFTNGP09.phx.gbl...
Salut 3stone
3stone <3stone@skynet.be> a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
enfin je trouves que tout ça sent la magouille , et si je cherchais a
passer
par FileSearch c'est que je pensais qu'il y avait des methodes integrees
pou
gerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça vaut
peut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
juste
choper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" a écrit dans le
message de news:3f3171cf$0$9625$Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) - InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Salut
Copies ce qui suit dans nouveau module
Voici dans ton prog commment l'utiliser
Exemple :
Dim strDrive As String
Dim strPath As String
Dim strFileName As String
Dim strExt As String
CheminFichier = "......."
'Recherche du renseignment du fichier
adhSplitPath CheminFichier, strDrive, _
strPath, strFileName, strExt
la tu as tout le nom du disque , le repertoire, le nom du fichier
sans extension et l'extension
Qui c'est qui dit merci à ANDRE et ca fait pleinS d'autreS trucs
mais ce n'est pas de moi
'=============Þbut de copie ================= > Option Compare Database
Option Explicit
Private Declare Function GetFullPathName _
Lib "kernel32" Alias "GetFullPathNameA" _
(ByVal lpFileName As String, ByVal nBufferLength As Long, _
ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
Public Function adh_accFileExists(strName As String) As Boolean
' Vérifie l'existence d'un fichier
' NOTE: Cette fonction est conservée pour des
' raisons de compatibilité. Utilisez adhFileExists
' si vous écrivez du nouveau code.
adh_accFileExists = adhFileExists(strName)
End Function
Public Function adhCurrentDBPath() As String
' Retourne le chemin d'accès à la base courante
' NOTE: Pour DAO. Avec ADO, utilisez CurrentProject.Path
On Error GoTo HandleErrors
Dim intPos As Integer
Dim strFullPath As String
strFullPath = CurrentDb.Name
' Trouve le dernier "" dans le nom
intPos = InStrRev(strFullPath, "")
If intPos > 0 Then
adhCurrentDBPath = Left$(strFullPath, intPos)
Else
adhCurrentDBPath = strFullPath
End If
ExitHere:
Exit Function
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, _
Err.Description, Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Function
Public Function adhFileExists(strName As String) As Boolean
' Vérifie l'existence du fichier passé en paramètre
On Error Resume Next
Dim strTemp As String
' Quel que soit l'attribut...
strTemp = Dir(strName, _
vbHidden Or vbSystem Or _
vbArchive Or vbReadOnly)
adhFileExists = ((Len(strTemp) > 0) And _
(Err.Number = 0))
Err.Clear
End Function
Public Function adhFullPath(strName As String) _
As String
' Retourne une chemin d'accès complet à partir d'une valeur relative.
' Aucun contrôle n'est effectué sur l'existance du fichier.
' MAX_PATH is defined by the Windows API.
Const MAX_PATH = 260
Dim lngLen As Long
Dim lngFilled As Long
Dim strBuffer As String
lngLen = MAX_PATH
Do
strBuffer = Space(lngLen)
lngFilled = GetFullPathName( _
strName, lngLen, strBuffer, vbNullString)
' Ne négligeons aucune précaution...
If lngFilled > lngLen Then
lngLen = lngFilled
End If
Loop Until lngFilled < lngLen
adhFullPath = Left$(strBuffer, lngFilled)
End Function
Public Sub adhSplitPath(ByVal FullPath As String, _
Optional ByRef Drive As String, _
Optional ByRef Folder As String, _
Optional ByRef FileName As String, _
Optional ByRef Extension As String)
' Retourne chaque partie d'un chemin d'accès.
' Aucun contrôle n'est effectué sur la validité du paramètre.
Dim strItems() As String
Dim strPrefix As String
Dim intUBound As Integer
Dim intI As Integer
Dim intPos As Integer
On Error GoTo HandleErrors
' Initialise les valeurs de retour
Drive = vbNullString
Folder = vbNullString
FileName = vbNullString
Extension = vbNullString
' Première partie de la chaîne
If Left$(FullPath, 2) = "" Then
' Dans le cas d'un chemin UNC path,
' supprime "" et le garde pour la suite
strPrefix = ""
FullPath = Mid$(FullPath, 3)
End If
' strItems va contenir au moins un élément
strItems = Split(FullPath, "")
intUBound = UBound(strItems)
' Soit le tableau contient plus éléments,
' soit il n'y a rien à faire.
If intUBound >= 1 Then
' Disque ou ressource partagée
Drive = strPrefix & strItems(0)
' Dossier complet
For intI = 1 To intUBound - 1
Folder = Folder & strItems(intI) & ""
Next intI
Folder = "" & Folder
End If
' Nom du fichier et extension
FileName = strItems(intUBound)
intPos = InStrRev(FileName, ".")
If intPos > 0 Then
Extension = Mid$(FileName, intPos)
FileName = Left$(FileName, intPos - 1)
End If
ExitHere:
Exit Sub
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Sub
--
@+
André
Quelques liens avec des exemples, des utilitaires et des compléments pour
Access
http://access.seneque.free.fr/
http://www.self-access.com/
http://www.mvps.org/accessfr/
http://mypage.bluewin.ch/w.stucki/
http://access.jessy.free.fr/
http://www.anor.fr.st
"jean christophe Humbert" a écrit dans le
message de news:3f3176da$0$9620$Filesystem ne me sera papparemment d'aucune aide... OK on va magouiller
avecles len et autres... :-(
"jean christophe Humbert" a écrit dans le
message de news:3f317620$0$9624$enfin je trouves que tout ça sent la magouille , et si je cherchais a
passerpar FileSearch c'est que je pensais qu'il y avait des methodes
integrees
pougerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça
vautpeut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
justechoper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" a écrit dans le
message de news:3f3171cf$0$9625$Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la
gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) -
InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Salut
Copies ce qui suit dans nouveau module
Voici dans ton prog commment l'utiliser
Exemple :
Dim strDrive As String
Dim strPath As String
Dim strFileName As String
Dim strExt As String
CheminFichier = "......."
'Recherche du renseignment du fichier
adhSplitPath CheminFichier, strDrive, _
strPath, strFileName, strExt
la tu as tout le nom du disque , le repertoire, le nom du fichier
sans extension et l'extension
Qui c'est qui dit merci à ANDRE et ca fait pleinS d'autreS trucs
mais ce n'est pas de moi
'=============Þbut de copie ================= > Option Compare Database
Option Explicit
Private Declare Function GetFullPathName _
Lib "kernel32" Alias "GetFullPathNameA" _
(ByVal lpFileName As String, ByVal nBufferLength As Long, _
ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
Public Function adh_accFileExists(strName As String) As Boolean
' Vérifie l'existence d'un fichier
' NOTE: Cette fonction est conservée pour des
' raisons de compatibilité. Utilisez adhFileExists
' si vous écrivez du nouveau code.
adh_accFileExists = adhFileExists(strName)
End Function
Public Function adhCurrentDBPath() As String
' Retourne le chemin d'accès à la base courante
' NOTE: Pour DAO. Avec ADO, utilisez CurrentProject.Path
On Error GoTo HandleErrors
Dim intPos As Integer
Dim strFullPath As String
strFullPath = CurrentDb.Name
' Trouve le dernier "" dans le nom
intPos = InStrRev(strFullPath, "")
If intPos > 0 Then
adhCurrentDBPath = Left$(strFullPath, intPos)
Else
adhCurrentDBPath = strFullPath
End If
ExitHere:
Exit Function
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, _
Err.Description, Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Function
Public Function adhFileExists(strName As String) As Boolean
' Vérifie l'existence du fichier passé en paramètre
On Error Resume Next
Dim strTemp As String
' Quel que soit l'attribut...
strTemp = Dir(strName, _
vbHidden Or vbSystem Or _
vbArchive Or vbReadOnly)
adhFileExists = ((Len(strTemp) > 0) And _
(Err.Number = 0))
Err.Clear
End Function
Public Function adhFullPath(strName As String) _
As String
' Retourne une chemin d'accès complet à partir d'une valeur relative.
' Aucun contrôle n'est effectué sur l'existance du fichier.
' MAX_PATH is defined by the Windows API.
Const MAX_PATH = 260
Dim lngLen As Long
Dim lngFilled As Long
Dim strBuffer As String
lngLen = MAX_PATH
Do
strBuffer = Space(lngLen)
lngFilled = GetFullPathName( _
strName, lngLen, strBuffer, vbNullString)
' Ne négligeons aucune précaution...
If lngFilled > lngLen Then
lngLen = lngFilled
End If
Loop Until lngFilled < lngLen
adhFullPath = Left$(strBuffer, lngFilled)
End Function
Public Sub adhSplitPath(ByVal FullPath As String, _
Optional ByRef Drive As String, _
Optional ByRef Folder As String, _
Optional ByRef FileName As String, _
Optional ByRef Extension As String)
' Retourne chaque partie d'un chemin d'accès.
' Aucun contrôle n'est effectué sur la validité du paramètre.
Dim strItems() As String
Dim strPrefix As String
Dim intUBound As Integer
Dim intI As Integer
Dim intPos As Integer
On Error GoTo HandleErrors
' Initialise les valeurs de retour
Drive = vbNullString
Folder = vbNullString
FileName = vbNullString
Extension = vbNullString
' Première partie de la chaîne
If Left$(FullPath, 2) = "\" Then
' Dans le cas d'un chemin UNC path,
' supprime "\" et le garde pour la suite
strPrefix = "\"
FullPath = Mid$(FullPath, 3)
End If
' strItems va contenir au moins un élément
strItems = Split(FullPath, "")
intUBound = UBound(strItems)
' Soit le tableau contient plus éléments,
' soit il n'y a rien à faire.
If intUBound >= 1 Then
' Disque ou ressource partagée
Drive = strPrefix & strItems(0)
' Dossier complet
For intI = 1 To intUBound - 1
Folder = Folder & strItems(intI) & ""
Next intI
Folder = "" & Folder
End If
' Nom du fichier et extension
FileName = strItems(intUBound)
intPos = InStrRev(FileName, ".")
If intPos > 0 Then
Extension = Mid$(FileName, intPos)
FileName = Left$(FileName, intPos - 1)
End If
ExitHere:
Exit Sub
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Sub
--
@+
André
Quelques liens avec des exemples, des utilitaires et des compléments pour
Access
http://access.seneque.free.fr/
http://www.self-access.com/
http://www.mvps.org/accessfr/
http://mypage.bluewin.ch/w.stucki/
http://access.jessy.free.fr/
http://www.anor.fr.st
"jean christophe Humbert" <jhumbert@club-internet.fr> a écrit dans le
message de news:3f3176da$0$9620$7a628cd7@news.club-internet.fr...
Filesystem ne me sera papparemment d'aucune aide... OK on va magouiller
avec
les len et autres... :-(
"jean christophe Humbert" <jhumbert@club-internet.fr> a écrit dans le
message de news:3f317620$0$9624$7a628cd7@news.club-internet.fr...
enfin je trouves que tout ça sent la magouille , et si je cherchais a
passer
par FileSearch c'est que je pensais qu'il y avait des methodes
integrees
pou
gerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça
vaut
peut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
juste
choper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" <jhumbert@club-internet.fr> a écrit dans le
message de news:3f3171cf$0$9625$7a628cd7@news.club-internet.fr...
Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%23pFXDHA.2648@TK2MSFTNGP09.phx.gbl...
Salut 3stone
3stone <3stone@skynet.be> a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la
gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)
End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) -
InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------
Salut
Copies ce qui suit dans nouveau module
Voici dans ton prog commment l'utiliser
Exemple :
Dim strDrive As String
Dim strPath As String
Dim strFileName As String
Dim strExt As String
CheminFichier = "......."
'Recherche du renseignment du fichier
adhSplitPath CheminFichier, strDrive, _
strPath, strFileName, strExt
la tu as tout le nom du disque , le repertoire, le nom du fichier
sans extension et l'extension
Qui c'est qui dit merci à ANDRE et ca fait pleinS d'autreS trucs
mais ce n'est pas de moi
'=============Þbut de copie ================= > Option Compare Database
Option Explicit
Private Declare Function GetFullPathName _
Lib "kernel32" Alias "GetFullPathNameA" _
(ByVal lpFileName As String, ByVal nBufferLength As Long, _
ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
Public Function adh_accFileExists(strName As String) As Boolean
' Vérifie l'existence d'un fichier
' NOTE: Cette fonction est conservée pour des
' raisons de compatibilité. Utilisez adhFileExists
' si vous écrivez du nouveau code.
adh_accFileExists = adhFileExists(strName)
End Function
Public Function adhCurrentDBPath() As String
' Retourne le chemin d'accès à la base courante
' NOTE: Pour DAO. Avec ADO, utilisez CurrentProject.Path
On Error GoTo HandleErrors
Dim intPos As Integer
Dim strFullPath As String
strFullPath = CurrentDb.Name
' Trouve le dernier "" dans le nom
intPos = InStrRev(strFullPath, "")
If intPos > 0 Then
adhCurrentDBPath = Left$(strFullPath, intPos)
Else
adhCurrentDBPath = strFullPath
End If
ExitHere:
Exit Function
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, _
Err.Description, Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Function
Public Function adhFileExists(strName As String) As Boolean
' Vérifie l'existence du fichier passé en paramètre
On Error Resume Next
Dim strTemp As String
' Quel que soit l'attribut...
strTemp = Dir(strName, _
vbHidden Or vbSystem Or _
vbArchive Or vbReadOnly)
adhFileExists = ((Len(strTemp) > 0) And _
(Err.Number = 0))
Err.Clear
End Function
Public Function adhFullPath(strName As String) _
As String
' Retourne une chemin d'accès complet à partir d'une valeur relative.
' Aucun contrôle n'est effectué sur l'existance du fichier.
' MAX_PATH is defined by the Windows API.
Const MAX_PATH = 260
Dim lngLen As Long
Dim lngFilled As Long
Dim strBuffer As String
lngLen = MAX_PATH
Do
strBuffer = Space(lngLen)
lngFilled = GetFullPathName( _
strName, lngLen, strBuffer, vbNullString)
' Ne négligeons aucune précaution...
If lngFilled > lngLen Then
lngLen = lngFilled
End If
Loop Until lngFilled < lngLen
adhFullPath = Left$(strBuffer, lngFilled)
End Function
Public Sub adhSplitPath(ByVal FullPath As String, _
Optional ByRef Drive As String, _
Optional ByRef Folder As String, _
Optional ByRef FileName As String, _
Optional ByRef Extension As String)
' Retourne chaque partie d'un chemin d'accès.
' Aucun contrôle n'est effectué sur la validité du paramètre.
Dim strItems() As String
Dim strPrefix As String
Dim intUBound As Integer
Dim intI As Integer
Dim intPos As Integer
On Error GoTo HandleErrors
' Initialise les valeurs de retour
Drive = vbNullString
Folder = vbNullString
FileName = vbNullString
Extension = vbNullString
' Première partie de la chaîne
If Left$(FullPath, 2) = "" Then
' Dans le cas d'un chemin UNC path,
' supprime "" et le garde pour la suite
strPrefix = ""
FullPath = Mid$(FullPath, 3)
End If
' strItems va contenir au moins un élément
strItems = Split(FullPath, "")
intUBound = UBound(strItems)
' Soit le tableau contient plus éléments,
' soit il n'y a rien à faire.
If intUBound >= 1 Then
' Disque ou ressource partagée
Drive = strPrefix & strItems(0)
' Dossier complet
For intI = 1 To intUBound - 1
Folder = Folder & strItems(intI) & ""
Next intI
Folder = "" & Folder
End If
' Nom du fichier et extension
FileName = strItems(intUBound)
intPos = InStrRev(FileName, ".")
If intPos > 0 Then
Extension = Mid$(FileName, intPos)
FileName = Left$(FileName, intPos - 1)
End If
ExitHere:
Exit Sub
HandleErrors:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
End Select
Resume ExitHere
End Sub
--
@+
André
Quelques liens avec des exemples, des utilitaires et des compléments pour
Access
http://access.seneque.free.fr/
http://www.self-access.com/
http://www.mvps.org/accessfr/
http://mypage.bluewin.ch/w.stucki/
http://access.jessy.free.fr/
http://www.anor.fr.st
"jean christophe Humbert" a écrit dans le
message de news:3f3176da$0$9620$Filesystem ne me sera papparemment d'aucune aide... OK on va magouiller
avecles len et autres... :-(
"jean christophe Humbert" a écrit dans le
message de news:3f317620$0$9624$enfin je trouves que tout ça sent la magouille , et si je cherchais a
passerpar FileSearch c'est que je pensais qu'il y avait des methodes
integrees
pougerer tout ça dans cet objet...
je vais donc me pencher un petit peu sur FileSystem et ses membres ça
vautpeut etre le coup.
ça commence à me casser les noix de faire des len, mid et autres pour
justechoper un nom de dossier.... :-)
a+ merci encore...
"jean christophe Humbert" a écrit dans le
message de news:3f3171cf$0$9625$Merci pour ton aide Anor, je vais esssayer d'adapter ça...
a+
"Anor" <http://minilien.com/?8RfQLiXHOe> a écrit dans le message de
news:%23cNH%Salut 3stone
3stone a élucidé :
|
| InStrRev, cherche bien le caractère en partant de la fin,
|
| mais.... indique sa position en comptant à partir de... la
gauche
;-)
euh.... ah oui :
Sub test()
msgbox InStrRev("1234561212", "", -1, vbTextCompare)
msgbox InStr(1, "1234561212", "", vbTextCompare)
msgbox Len("1234561212") - InStrRev("1234561212", "", -1,
vbTextCompare)End Sub
Donc à partir de Access2000, au lieu de
Right(.FoundFiles(i), InStr(1, fStrReverse(.FoundFiles(i)), "",
vbTextCompare) - 1)
avec la fonction fStrReverse,
on peut faire
Right(.FoundFiles(i), Len(.FoundFiles(i)) -
InStrRev(.FoundFiles(i),
"", -1, vbTextCompare))
--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - www.anor.fr.st
----------------------------------------------