Newsgroup: it.comp.appl.access
Titolo: utilizzo di DIR

Dal sito comune ho preso questo codice per l'utilizzo di DIR:
Option Compare Database
Option Explicit
Option Base 1
Private matrice() As String
Public Function creamatrice(PATDINIZIO As String) As Variant
   ReDim matrice(2, 1)
   If PATDINIZIO Like "?:\" Then
      caricamatrice PATDINIZIO, True
   Else
      caricamatrice PATDINIZIO
   End If
   If UBound(matrice, 2) > 1 Then
      ReDim Preserve matrice(2, UBound(matrice, 2) - 1)
   End If
   creamatrice = matrice
   Erase matrice
End Function
Private Sub caricamatrice(strpercorso As String, Optional blnIsRoot As
Boolean = False)
   Dim lngcnt2 As Long, lngcnt1 As Long, strnome As String
   strnome = Dir(strpercorso, vbDirectory)
   Do While strnome <> ""
      If blnIsRoot = True And lngcnt1 = 0 Then
         strnome = Dir(strpercorso, vbDirectory)
      Else
         strnome = Dir
      End If
      lngcnt1 = lngcnt1 + 1
      If strnome <> "" And strnome <> "." And strnome <> ".." Then
         If GetAttr(strpercorso & strnome) <> vbDirectory Then
            matrice(1, UBound(matrice, 2)) = strpercorso
            matrice(2, UBound(matrice, 2)) = strnome
            ReDim Preserve matrice(2, UBound(matrice, 2) + 1)
         Else
            caricamatrice (strpercorso & strnome & "\")
            strnome = Dir(strpercorso, vbDirectory)
            lngcnt2 = IIf(blnIsRoot = False, 0, 1)
            Do While lngcnt2 < lngcnt1
               strnome = Dir
               lngcnt2 = lngcnt2 + 1
            Loop
         End If
      End If
   Loop
End Sub
Questo dice che crea in una tabella 2 colonne: 1 con la path del file e 1
con il nome del file.
Per prima cosa come faccio ad utilizarlo?
devo creare una taballe di nome PATDINIZIO con due colonne chiamate
strpercorso e strnome?
matrice, creamatrice e caricamatrice cosa sono?
grazie a tutti

 0 Then
        Debug.Print "Trovati " & .FoundFiles.Count & " file"
        For i = 1 To .FoundFiles.Count
            rst.AddNew
            nomeFile = fso.getfilename(.FoundFiles(i))
            pathFile = Left(.FoundFiles(i), Len(.FoundFiles(i)) -
Len(nomeFile) - 1)
            rst!Path = pathFile
            rst!nomeFile = nomeFile
            rst.Update
            'Debug.Print .FoundFiles(i) & ": " & pathFile & ", " & nomeFile
        Next i
    Else
        MsgBox "Nessun file trovato"
    End If
End With
rst.Close
Set rst = Nothing
Set fso = Nothing
Set fs = Nothing
la tabella si chiama "pathEFile", ha due campi "path" - testo - 255 e
"nomeFile" - testo - 255.
Ciao.
-- 
Sergio MAZZA


provo subito grazie


scusa ho creato la tabella, ma il codice dove lo inserisco?
devo creare una maschera o una macro o altro?
grazie del disturbo
ciao ciao

 > Set fs = Nothing
non bastava  "rst.Close"?
quale fonzione ha  "Set rst = Nothing"
Grazie
Brando

 Brando
Non basta chiudere il recordset, devi rilasciare la memoria utilizzata
dall'oggetto; di qualsiasi oggetto si parla. Comunque la "distruzione" (=
nothing) dell'oggetto equivale alla sua chiusura...
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:54Joc.183493$Kc3.5...@twister2.libero.it...

Dipende da come la vuoi utilizzare; se vuoi scatenare l'elaborazione sul
clic di un bottone o all'apertura di una maschera.
Decidi tu...
Ciao.
--
Sergio MAZZA
--
Sergio MAZZA


allora ho creato la tabella, una maschera con stesso nome con un pulsante,
ho inserito il codice sul pulsante, ma quando lo premo mi da : Errore d
irun-time 13, tipo non corrispondente
col debug mi visualizza in giallo questa riga:
Set rst = CurrentDb.OpenRecordset("pathEfile")
come risolvo?
grazie


Io avevo specificato in testa al codice che č un esempio DAO; se utilizzi
una delle versioni (di access) successive alla '97 devi inserire i
riferimenti alla libreria DAO prima di quella ADO o indicando il tipo di
recordset (Dim rst As DAO.Recordset)
Ciao.
-- 
Sergio MAZZA

 Sergio MAZZA
Grazie
io uso A2000
appena posso provo a inserirlo
ciao

 0 Then
        Debug.Print "Trovati " & .FoundFiles.Count & " file"
        For i = 1 To .FoundFiles.Count
            rst.AddNew
            nomeFile = fso.GetFileName(.FoundFiles(i))
            pathFile = Left(.FoundFiles(i), Len(.FoundFiles(i)) -
Len(nomeFile) - 1)
            rst!path = pathFile
            rst!nomeFile = nomeFile
            rst.Update
            'Debug.Print .FoundFiles(i) & ": " & pathFile & ", " & nomeFile
        Next i
    Else
        MsgBox "Nessun file trovato"
    End If
End With
End Sub
ma non funziona...

 ha scritto nel messaggio
news:Qqfrc.65030$Qc.26...@twister1.libero.it...

"Non funziona" significa che ti presenta lo stesso errore sulla stessa riga?
Ciao.
-- 
Sergio MAZZA


sulla riga in giallo: Private Sub Comando6_Click()
e una freccia a :
Dim rst As DAO.Recordset
Tipo definito dall'utente non definito
Ecco di nuovo tutto il mio codice:

End Sub
Grazie ancora a tutti
ciao ciao

 ha scritto nel messaggio
news:nCHrc.67340$Qc.27...@twister1.libero.it...

Hai messo il riferimento alla libreria DAO prima di quella ADO?
Ciao.
-- 
Sergio MAZZA


no
come si fa?
io ho messo solo il codice qui sopra
ciao ciao

 ciao ciao
(cacchio non vedo le mie risposte inviate con 
tin.it
)
Nello stesso posto dove hai inserito i riferimenti hai i bottoni che
spostano in alto o in basso il riferimento...
Ciao.
-- 
Sergio MAZZA