Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Accélérer recherche répertoires ?

1 réponse
Avatar
sonia.gaubert
Bonjour,
J'ai cr=E9=E9 un bouton qui depuis ma base access va v=E9rifier l'existence
de fichiers num=E9riques (documents num=E9ris=E9s dont les descriptions son=
t
enregistr=E9es dans une table) dans des r=E9pertoires : ci-dessous je
recopie le code.
Cela fonctionne sauf que cela mets beaucoup de temps =E0 r=E9pondre !
Sauriez-vous s'il y aurait moyen d'acc=E9l=E9rer le processus ?
Par avance, merci :o)
Sonia.

Private Sub BtnVerifRep_Click()
Dim fs
Dim I As Integer
Dim NomFichier As String
NomFichier =3D Me.CoteDoc
Dim NomRepFonds As String
NomRepFonds =3D "I:\" & Me![Abreviation]
Dim IntFile As Integer
Dim StrFile As String, listeRep As String
Dim strDir As String
IntFile =3D 0
StrFile =3D ""
Set fs =3D Application.FileSearch
With fs
.NewSearch
.LookIn =3D NomRepFonds
.SearchSubFolders =3D True
.filename =3D NomFichier & ".jpg"

If .Execute < 1 Then
MsgBox "Il n'existe aucun fichier num=E9rique portant le nom : "
& NomFichier, vbInformation, "PAS DE FICHIER NUMERIQUE !"
If (Me![Numerise]) =3D True Then
Me![Numerise] =3D False
End If
If Not IsNull(Me![NivIllustr]) Then
Me![NivIllustr] =3D ""
End If
ElseIf .Execute >=3D 1 Then
For IntFile =3D 1 To .FoundFiles.Count
StrFile =3D .FoundFiles(IntFile)
StrFile =3D "I" & Right(StrFile, Len(StrFile) - (Len(strDir) +
1))

listeRep =3D listeRep & vbCrLf & StrFile
Next

MsgBox "Il existe" & .FoundFiles.Count & " fichier(s) jpg d=E9nomm=E9
(s) " & NomFichier & " dans le(s) r=E9pertoire(s) : " & vbCrLf &
listeRep, vbInformation, "PLUSIEURS FICHIERS"

End If
End With


End Sub

1 réponse

Avatar
Michel__D
Bonjour,

a écrit :
Bonjour,
J'ai créé un bouton qui depuis ma base access va vérifier l'existence
de fichiers numériques (documents numérisés dont les descriptions sont
enregistrées dans une table) dans des répertoires : ci-dessous je
recopie le code.
Cela fonctionne sauf que cela mets beaucoup de temps à répondre !
Sauriez-vous s'il y aurait moyen d'accélérer le processus ?
Par avance, merci :o)
Sonia.

Private Sub BtnVerifRep_Click()
Dim fs
Dim I As Integer
Dim NomFichier As String
NomFichier = Me.CoteDoc
Dim NomRepFonds As String
NomRepFonds = "I:" & Me![Abreviation]
Dim IntFile As Integer
Dim StrFile As String, listeRep As String
Dim strDir As String
IntFile = 0
StrFile = ""
Set fs = Application.FileSearch
With fs
.NewSearch
.LookIn = NomRepFonds
.SearchSubFolders = True
.filename = NomFichier & ".jpg"

If .Execute < 1 Then
MsgBox "Il n'existe aucun fichier numérique portant le nom : "
& NomFichier, vbInformation, "PAS DE FICHIER NUMERIQUE !"
If (Me![Numerise]) = True Then
Me![Numerise] = False
End If
If Not IsNull(Me![NivIllustr]) Then
Me![NivIllustr] = ""
End If
ElseIf .Execute >= 1 Then
For IntFile = 1 To .FoundFiles.Count
StrFile = .FoundFiles(IntFile)
StrFile = "I" & Right(StrFile, Len(StrFile) - (Len(strDir) +
1))

listeRep = listeRep & vbCrLf & StrFile
Next

MsgBox "Il existe" & .FoundFiles.Count & " fichier(s) jpg dénommé
(s) " & NomFichier & " dans le(s) répertoire(s) : " & vbCrLf &
listeRep, vbInformation, "PLUSIEURS FICHIERS"

End If
End With


End Sub



Tu pourrais effectuer la recherche à l'ouverture du formulaire
et stocker le résultat.

Autre chose si tu stocke le résultat tu pourrais ensuite vérifier
si le fichier existe et s'il n'existe pas effectuer une recherche.