Newsgroup: it.comp.appl.access
Titolo: ricerca files e popolamento tabella

Chi non muori si rivede... e come ogni volta che non so da che parte
sbattere la testa chiedo aiuto ai saggi docenti del gnus...
Vorrei sapere se esiste una procedura che mi permetta di popolare una
tabella con i files presenti in una directory.
Il mio problema č che vorrei trovare, per esempio, tutti i files che
iniziano per abc e popolare una tabella che abbia i seguenti campi:
id_files: abc
nome_files: abc-lettera.doc ... abc-bilancio.xls ... etc etc
posizione: g:\documenti\bilanci
data_files: 01/01/04
eliminare: flag sě/no
un passo successivo č quello di eliminare i files che abbiano il flag
settato a sě...
qualcuno sa suggerirmi la strada?
grazie
skipper dixit...

"skipper" <NOskip...@GRAZIEsuperskipper.it> ha scritto nel messaggio
news:k7I_b.380$w_3...@tornado.fastwebnet.it...

mi cospargo il capo di cenere... sul sito comune c'č un bell'aiuto... la
procedura bell'č fatta...
ok... ma se volessi che la ricerca comprendesse anche le sottocartelle?
grazie
skipper dixit...

"skipper" <NOskip...@GRAZIEsuperskipper.it> ha scritto nel messaggio
news:35L_b.775$w_3...@tornado.fastwebnet.it...

Ricorsiva nelle Sottocartele quando le individui.......!!!
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------


il problema che non so un accidenti di linguaggio VB... quindi non so cosa
scrivere per fare ciň....
se qualcuno mi scrivesse la stringa da inserire la copiaincollerei... dopo 5
riverenti inchini di gratitudine
skipper dixit...


Ti passo un esempio che uso io per popolare una Combo
con FIle.MDB presenti da una certa Path in giů, cerca
nelle sotto cartelle dall'Origine.....!!!
Me.TuaCombo.RowSourceType = "Elenco valori"
Me.TuaCombo.RowSource=RetCataloghi("C:\")
Me.TuaCombo.Requery
In un Modulo:
Dim strFileCatalogo As String
Public Function RetCataloghi(strPath As String) As String
    strFileCatalogo = vbNullString
    Call ScansioneCartelle(strPath)
    RetCataloghi = strFileCatalogo
End Function
Sub ScansioneCartelle(ByVal ActPath$)
    Dim AttributiFile  As Integer
    Dim ElencoCartelle$
    Dim file$
    Dim ElaboraFile As String
    ElencoCartelle$ = ""
    If right$(ActPath$, 1) <> "\" Then ActPath$ = ActPath$ & "\"
    On Error Resume Next
    file$ = Dir$(ActPath$ & "*.*", vbDirectory + vbNormal)
    Do While Len(file$)
        If file$ <> "." And file$ <> ".." Then
            err = 0
            ' Ricavo gli attributi del file per vedere se č una cartella e
se il file č valido ed accessibile
            ' inoltre se vi serve conoscere gli attributi, sono in
AttributiFile
            AttributiFile = GetAttr(ActPath$ & file$)
            If err = 0 Then
                If (AttributiFile And vbDirectory) Then
                    ' File$ č una cartella
                    ' Mi ricordo che questa cartella la dovro' scandire
                    ElencoCartelle$ = ElencoCartelle$ & file$ & vbCrLf
                Else
                    ' File$ č un file
                    ' LO analizzo
                    If right$(file$, 3) = "mdb" Then _
                        strFileCatalogo = strFileCatalogo & Mid$(file$, 1,
InStr(file$, ".") - 1) & ";"
                    'CreaFile file$
                End If
            End If
        End If
        file$ = Dir$
    Loop
    On Error GoTo 0
    ' Tutte le sottocartelle in modo ricorsivo
    Dim pos%
    Do While Len(ElencoCartelle$)
        pos% = InStr(ElencoCartelle$, vbCrLf)
        If pos% Then
            file$ = ActPath$ & left$(ElencoCartelle$, pos% - 1)
            ElencoCartelle$ = Mid$(ElencoCartelle$, pos% + Len(vbCrLf))
        Else
            file$ = ActPath$ & ElencoCartelle$
            ElencoCartelle$ = ""
        End If
        Call ScansioneCartelle(file$)
    Loop
    ElencoCartelle$ = ElaboraFile
End Sub

 0 Then
        Debug.Print "Trovati " & .FoundFiles.Count & " file"
        For i = 1 To .FoundFiles.Count
            Debug.Print .FoundFiles(i)
        Next i
    Else
        MsgBox "Nessun file trovato"
    End If
End With
Ciao.
--
Sergio MAZZA


scusa ma la mia massima ignoranza non mi fa capire...
io parto dalla procedura trovata sul sito comune per creare la tabella:
        Private Sub Comando1_Click()
                Call elencafile(cartella, file)
        End Sub
questa parte l'ho aggiunta io in modo da avviare la procedura con un
pulsante in una maschera con due campi (uno per la definire la cartella e
l'altro per i tipi di files da ricercare) quindi ho inserito la procedure
del sitocomune...
Public Sub elencafile(Optional d As String, Optional j As String)
   'Autore: Lorenzo Coronati
   'Argomenti:
   ' d=directory
   ' j=maschera di match
   Dim t As TableDef
   Dim r As Recordset
   Dim s As String
   If d = "" Then d = CurDir ' se non specificata usa la dir corrente
   If j = "" Then j = "*.*" ' se non specificato, lista tutti i file
   If Right(d, 1) <> "\" Then d = d & "\"
   s = "Files presenti in " & d
   Set t = CurrentDb.CreateTableDef(s)
   t.Fields.Append t.CreateField("NomeFile", dbText)
   CurrentDb.TableDefs.Append t
   Set r = CurrentDb.OpenRecordset(s, dbOpenTable)
   s = Dir(d & j)
   With r
      Do While s <> "" ' cicla per ogni file nella directory
         .AddNew
         !NomeFile = s
         s = Dir
         .Update
      Loop
   End With
End Sub
Onestamente vorrei modificare questa procedura per far sě che cerchi anche
nelle sottocartelle perchč con altri esempio non capisco (ok č un mio
problema...)
grazie
skipper dixit