Newsgroup: it.comp.appl.access
Titolo: Cosa sostituisce Application.Filesearch?

Buongiorno a tutti,
in un vecchio database mdb utilizzavo la funzione application.filesearch per cercare dei file e poi scrivere il path in una tabella del database.
In azienda siamo passati di recente a office 365 e vedo che filesearch non esiste più. Con cosa è possibile sostituirlo?
Riporto qui sotto il codice, per far capire meglio (spero).
 
Grazie dell'aiuto
 
Alessandro
 
 
Dim RstDest As Recordset, StrQry As String
 
StrQry = "SELECT TblRegistroInvio.Trimestre " & _
            "FROM TblRegistroInvio " & _
            "WHERE (((TblRegistroInvio.Trimestre)='" & Me.TrimestreFiltro & "'));"
 
Set RstDest = CurrentDb.OpenRecordset(StrQry)
 
If IsNull(Me.TrimestreFiltro) Then
    MsgBox "Selezionare un trimestre!", vbCritical, "Errore"
    Exit Sub
End If
 
 
If RstDest.RecordCount = 0 Then
 
 
 
    Set RstDest = CurrentDb.OpenRecordset("TblRegistroInvio")
 
 
 
            With Application.FileSearch
                .NewSearch
                .LookIn = Me.TrimestreFiltro.Column(1)
                .SearchSubFolders = False
                .FileName = "*"
                .MatchTextExactly = True
                .Execute
                If .FoundFiles.Count > 0 Then
                    For i = 1 To .FoundFiles.Count
                            RstDest.AddNew
                            RstDest!Trimestre = Me.TrimestreFiltro
                            RstDest!FornitoreCod = Mid(Dir(.FoundFiles(i)), 15, 5)
                            RstDest!PercorsoFile = .FoundFiles(i)
                            RstDest!Inviare = -1
                            RstDest.Update
                    Next i
                Else
                     MsgBox "Non ci sono schede di valutazione per il trimestre selezionato!", vbExclamation, "Attenzione"
                End If
            End With
 
 
 
RstDest.Close
Set RstDest = Nothing
 
 
 
 
End If
 
 
 
 

Ovviamente non esiste più quello strumento... tuttavia visto che esegui la ricerca in una CARTELLA senza scendere nelle SOTTO-CARTELLE... la soluzione più semplice è quella di usare DIR()...
 
 
    MyPath = Me.TrimestreFiltro.Column(1) 
    MyName = Dir(MyPath)
    Do While MyName <> ""
        RstDest.AddNew
        RstDest!Trimestre = Me.TrimestreFiltro
        RstDest!FornitoreCod = Mid(Dir(MyName), 15, 5) 
        RstDest!PercorsoFile = MyName 
        RstDest!Inviare = -1
        RstDest.Update 
        MyName = Dir
    Loop
 
Saluti
@Alex

 ...
 
Hanno tolto FileSearch già 12 anni fa:
https://support.microsoft.com/en-us/help/935402/error-message-when-you-try-to-run-the-filesearch-function-in-access-20
 
 
Purtroppo 2 delle 3 link nell'articolo sono defunti.
 
Per Dir() esiste
https://support.office.com/article/dir-function-1a1a4275-f92f-4ae4-8b87-41e4513bba2e
 
 
Per link no 3 su
"How to recursively search directories by using FileSystemObject"
non ho trovato una sostituzione dalla MS, ma puoi cercare un po' nel web 
dove ci sono tante.
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 

 
 
Come mai la pappa pronta servito da TE?
 
-- 
:-)



Grazie mille! Sempre super efficienti qui!
 
A.


Grazie anche a te Karl!
 
A.

 Karl
 
Che giorno è oggi...?
Sto invecchiando... 
 
@Alex

 per far capire meglio (spero).
 
Vien dietro a me e lascia dir le genti
    sta' come torre ferma che non crolla
    già mai la cima per soffiar de' venti
 
===========================================
Public Function FileSelect(Optional InitialDir As String) As String
Dim FD As Office.FileDialog
'
' Reference: Microsoft Office 16.0 Object Library
'
Set FD = Application.FileDialog(3)
' msoFileDialogOpen         =   1
' msoFileDialogSaveAs       =   2
' msoFileDialogFilePicker   =   3
' msoFileDialogFolderPicker =   4
 
With FD
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "All Files", "*.*", 1
    .Filters.Add "Documents", "*.doc", 2
    .Filters.Add "Spreadsheets", "*.xls", 3
    .Filters.Add "Databases", "*.md?", 4
    .InitialView = msoFileDialogViewDetails
    .Title = "Select File"
    .InitialFileName = InitialDir
    .Show
End With
 
If FD.SelectedItems.Count = 0 Then
    FileSelect = ""
Else
    FileSelect = FD.SelectedItems(1)
End If
Set FD = Nothing
 
End Function
====================================
 
Bruno