Newsgroup: it.comp.appl.access
Titolo: CERCA FILE SU DISCO_alternativa a FILESEARCH

Buongiorno a tutti, chiedo scusa se riposto un quesito gi� trattato, ma
avendo avuto problemi al pc non mi son potuto dedicare, l'ho fatto solo
ieri. Allora:
Su una form ho:
1 textbox chiamata PercorsoFile
1 textbox chiamata NomeFile
1 pulsante chiamato Sfoglia
1 pulsante chiamato Cerca
1 listbox chiamata Elenco 
quello che voglio fare � che inserendo il nome di un file nella textbox
chiamata NomeFile e inserendo il percoso cartella in cui cercare
(PercorsoFile), premendo il pulsante Cerca, il programmino mi deve cercare
tale file e quest'ultimo mostrato nella listbox 
(simile al cerca di windows) 
Io ho fatto cosi, modificando un po il codice originale di ALEX@ che mi ha
indicato in precedenza
///////////////////////////////////////////////////////
Private Sub Cerca_Click()
Dim MyPath As String
Dim MyName As String
Me!Elenco.RowSource = ""
MyPath = Me.PercorsoFile & ""
MyName = Dir(MyPath)
Do While MyName <> ""
    MyName = Dir
        If MyName = Me.Nome_File Then
            Me!Elenco.RowSource = Me!Elenco.RowSource & MyName
            Exit Sub
        End If
Loop
MsgBox "FILE NON TROVATO !"
End Sub
////////////////////////////////////////////////////////
Il codice funziona tranne che per un problemino che non riesco a risolvere
e cio�:
Se la directory dove cercare si chiama:
C:DocumentiProva
ed all'interno ci sono i file:
Prova_1.txt
Prova_2.txt
Prova_3.txt
Prova_4.txt
Prova_5.txt
Prova_6.txt
Prova_7.txt
Prova_8.txt
La ricerca funziona, per come ho modificato il codice, bene se provo a
cercare tutti i file dal 2 al 8, ma se provo a cercare il file Prova_1.txt
no mi dice "FILE NON TROVATO" che � l'esito che mi dve dare seil file non
lo trova (ed invece c'�).
Per favore mi sapereste aiutare ??????
PS. Se volessi fare una ricerca nelle sottocartelle qualora esistano come
dovrei modificare il codice?
Vi ringrazio anticipatamente
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Vi ringrazio anticipatamente
*********************************************************
Ok trovato l'errore, posto il codice corretto, ptrebbe essere utile ad
altri:
Faccio notare che il metodo Filesearch da Access 2007 non esiste pi�, la
ricerca ricorsiva � un buon sostituto.
////////////////////////////////////////////////
Private Sub Cerca_Click()
Dim MyPath As String
Dim MyName As String
Me!Elenco.RowSource = ""
If IsNull(Me.PercorsoFile) Then
    MsgBox "E' necessario inserire una directory", vbInformation +
vbOKOnly, "Percorso di Ricerca"
Else
    If IsNull(Me.Nome_File) Then
        MsgBox "E' necessario inserire il nome del file da cercare",
vbInformation + vbOKOnly, "Nome File"
Else
MyPath = Me.PercorsoFile & ""
MyName = Dir(MyPath)
Do While MyName <> ""
 
        If MyName = Me.Nome_File Then
            Me!Elenco.RowSource = Me!Elenco.RowSource & MyName
            Exit Sub
        End If
 
        MyName = Dir
Loop
MsgBox "FILE NON TROVATO !"
    End If
End If
///////////////////////////////////////////////
SE VOLESSI VERIFICARE ANCHE IN SOTTO CARTELLE QUALCUNO SA COME FARE???????


 Vi ringrazio anticipatamente
 
 
*********************************************************
 
Ok trovato l'errore, posto il codice corretto, ptrebbe essere utile ad
altri:
 
Faccio notare che il metodo Filesearch da Access 2007 non esiste più, la
ricerca ricorsiva è un buon sostituto.

Vedi questo esempio di ricerca globale del file WinZip32.exe per effettuare 
un salvataggio:
Saluti
Thomas.az
 
 
Private Sub Comando28_Click()
Dim salva, fs As Variant, strCmd, strProgramma As String
 
If Dir("c:\BustaPaga\BustaPaga_dati.mdb") <> "" And Dir("c:\SalvaBp\", 
vbDirectory) <> "" Then
  FileCopy "c:\BustaPaga\BustaPaga_dati.mdb", 
"c:\SalvaBp\BustaPaga_dati.mdb"
     If MsgBox("Salvataggio su disco fisso effettuato. Per salvare su floppy 
inserire il dischetto e premere SI, altrimenti NO", vbYesNo) = vbYes Then
      If Dir("c:\Programmi\WinZip\WinZip32.exe") = "" Then
       MsgBox "OK per ricerca del programma di compressione WinZip"
       Set fs = Application.FileSearch
       With fs
         .lookin = "c:\\"
         .SearchSubFolders = True
         .FileName = "WinZip32.exe"
         If .Execute() > 0 Then
          MsgBox .foundFiles(1)
          strProgramma = .foundFiles(1)
            strCmd = strProgramma & " -a -ex a:\bp.zip 
c:\BustaPaga\BustaPaga_dati.mdb"
            salva = Shell(strCmd, vbHide)
         Else
          MsgBox "WinZip32.exe non trovato"
         End If
       End With
      Else
       strCmd = "c:\Programmi\WinZip\WinZip32.exe -a -ex a:\bp.zip 
c:\BustaPaga\BustaPaga_dati.mdb"
       salva = Shell(strCmd, vbHide)
      End If
     End If
Else
MsgBox "Banca dati o cartella di salvataggio non trovati"
End If
End Sub
 

thomas.az
 ha scritto:

//////////////////////////
 
Grazie per la risposta, va bene per Access2003 ma nel 2007 Filesearch e
SearchSubFolders non esistono più :-(
Altri suggerimenti?
