Elenco cartelle e sottocartelle in tabella

di il
12 risposte

Elenco cartelle e sottocartelle in tabella

Buongiorno a tutti,
vi chiedo un aiuto per un db al quale sto lavorando da autodidatta.
Avrei bisogno di popolare una tabella con l'elenco di cartelle e sottocartelle di una determinata directory, ad esempio "O:\Documenti".

Qualcosina a livello base di VB lo so fare: uso già del codice per ottenere l'elenco dei files in una cartella, ma per questa esigenza non sono riuscito a trovare una soluzione.

Grazie a quanti potranno darmi una mano!

12 Risposte

  • Re: Elenco cartelle e sottocartelle in tabella

    Questa operazione rapida/automatica la devi fare IN PRINCIPIO una volta sola e per l'aggiungersi di file successivi lo farai manualmente nel database?
  • Re: Elenco cartelle e sottocartelle in tabella

    Pensavo ad una macro che ogni volta:
    - pulisce la tabella;
    - esegue la funzione che sto cercando di scrivere;
    - in tal modo ri-popola la tabella ex novo.

    In pratica la tabella non sarà mai popolata manualmente, ma sempre e solo dalla funzione.

    Grazie!

    OsvaldoLaviosa ha scritto:


    Questa operazione rapida/automatica la devi fare IN PRINCIPIO una volta sola e per l'aggiungersi di file successivi lo farai manualmente nel database?
  • Re: Elenco cartelle e sottocartelle in tabella

    Non vedo il senso di "ripulire" la tabella e rifare tutto da capo. Almeno io ragiono dal punto di vista di Access.
    La richiesta che hai proposto è una automatizzazione fuori Access. Solo l'ultimo passaggio potrebbe essere l'accodamento in tabella di Access.

    Faccio un mio ragionamento molto-molto spartano, ma poi non saprei come automatizzare il tutto:
    1. Hai detto che sei riuscito a elencare le directory di una cartella: OK.
    2. Io riverserei quell'elenco in un file di Word.
    3. Word ha una funzione che consente di incasellare con tante righe di tabella tutto il tuo elenco.
    4. Una volta ottenuto il listato come una lista di celle, puoi selezionarle tutte e copiare/incollare in un campo di tabella di Access.

    Tutto questo lo fai manualmente.
  • Re: Elenco cartelle e sottocartelle in tabella

    Prova a vedere se può esserti di spunto https://support.microsoft.com/en-us/help/306666/how-to-recursively-search-directories-by-using-visual-basic-2005-or-vi
  • Re: Elenco cartelle e sottocartelle in tabella

    Purtroppo non posso seguire questa strada. Mi occorre una soluzione che faccia il tutto automaticamente, perché la tabella viene richiamata da una maschera nella quale l’utilizzatore deve scegliere una sottocartella tra quelle disponibili in quel momento.
    Non posso fare passaggi manuali come quelli che suggerisci.

    Di fatto con VB la soluzione c’è... ne ho trovate diverse on Line ma sono tutte per Excel quindi danno come output una cartella di lavoro .xlsx.
    Non sono riuscito a convertirla per Access.

    OsvaldoLaviosa ha scritto:


    Non vedo il senso di "ripulire" la tabella e rifare tutto da capo. Almeno io ragiono dal punto di vista di Access.
    La richiesta che hai proposto è una automatizzazione fuori Access. Solo l'ultimo passaggio potrebbe essere l'accodamento in tabella di Access.

    Faccio un mio ragionamento molto-molto spartano, ma poi non saprei come automatizzare il tutto:
    1. Hai detto che sei riuscito a elencare le directory di una cartella: OK.
    2. Io riverserei quell'elenco in un file di Word.
    3. Word ha una funzione che consente di incasellare con tante righe di tabella tutto il tuo elenco.
    4. Una volta ottenuto il listato come una lista di celle, puoi selezionarle tutte e copiare/incollare in un campo di tabella di Access.

    Tutto questo lo fai manualmente.
  • Re: Elenco cartelle e sottocartelle in tabella

    Mi sembra di capire che la logica sia quella che mi serve, ma sono alle prime armi e non ho idea di come adattarlo a un codice che faccia quello che cerco...

    surfernet ha scritto:


    Prova a vedere se può esserti di spunto https://support.microsoft.com/en-us/help/306666/how-to-recursively-search-directories-by-using-visual-basic-2005-or-vi
  • Re: Elenco cartelle e sottocartelle in tabella

    Vi siete accorti che l'esempio non è per VBA...?
    Mah...
    Non capisco il senso di dare suggerimenti tanto per dare... uno risponde ma no sa la risposta un'altro posta link inutili... ma non è meglio aspettare 5 minuti e pensare prima di rispondere tanto per fare....?

    Spiega quanti livelli hai... se hai FOLDER con solo 1 livello di SUBFOLDER c'è una soluzione... se ogni SUBFOLDER può avere a sua volta delle SUBFOLDER... quindi una struttura gerarchica a n livelli dove n è variabile... serve un merodo differente e ricorsivo.

    Detto questo non ho capito se sai scrivere in tabella... e quando dici che qualcosa di vba conosci... come dobbiamo interpretarlo...? Qualcosa sarebbe...?
  • Re: Elenco cartelle e sottocartelle in tabella

    La struttura ha n sotto livelli e come giustamente dici n è variabile per ogni subfolder.

    Per quanto riguarda il mio grado di conoscenza, meglio stare dalla parte del sicuro e dirti che non mi ritengo in grado di scrivere codice autonomamente, ma solo di adattare qualcosa che trovo alle esigenze del mio Db.

    Grazie comunque per l’aiuto che potrai darmi!

    @Alex ha scritto:


    Vi siete accorti che l'esempio non è per VBA...?
    Mah...
    Non capisco il senso di dare suggerimenti tanto per dare... uno risponde ma no sa la risposta un'altro posta link inutili... ma non è meglio aspettare 5 minuti e pensare prima di rispondere tanto per fare....?

    Spiega quanti livelli hai... se hai FOLDER con solo 1 livello di SUBFOLDER c'è una soluzione... se ogni SUBFOLDER può avere a sua volta delle SUBFOLDER... quindi una struttura gerarchica a n livelli dove n è variabile... serve un merodo differente e ricorsivo.

    Detto questo non ho capito se sai scrivere in tabella... e quando dici che qualcosa di vba conosci... come dobbiamo interpretarlo...? Qualcosa sarebbe...?
  • Re: Elenco cartelle e sottocartelle in tabella

    Leggi queste discussioni:
    https://www.devhut.net/2010/09/19/ms-access-vba-import-directory-listing-into-a-table/
    https://access-programmers.co.uk/forums/showthread.php?t=230253
    https://www.access-programmers.co.uk/forums/showthread.php?t=294665
    https://www.pcreview.co.uk/threads/how-do-i-import-a-directory-file-list-into-an-access-table.1677386/
    https://bytes.com/topic/access/answers/971284-read-list-filenames-folder-into-table
    https://stackoverflow.com/questions/49990421/how-to-insert-file-names-into-access-table-with-vba
  • Re: Elenco cartelle e sottocartelle in tabella

    Purtroppo quasi tutte servono per importare elenco dei files, mentre a me serve importare l'elenco delle sole cartelle e sottocartelle, anche se non contengono files.

    Ho trovato questo:
    Public Function ListSubDirectories(sDirectory As String)
        On Error GoTo Error_Handler
        Dim db                    As Database
        Dim sSQL                  As String
        Dim MyFolder              As String
        
     
        Set db = CurrentDb
     
        MyFolder = Dir$(sDirectory & "*", vbDirectory)
        Do While MyFolder <> ""
            If GetAttr(sDirectory & MyFolder) And vbDirectory Then
                Debug.Print MyFolder
                sSQL = "INSERT INTO [MIATABELLA] (MIOCAMPO) VALUES('" & MyFolder & "');"
                db.Execute sSQL, dbFailOnError
                'dbs.RecordsAffected 'could be used to validate that the
                'query actually worked
            End If
            MyFolder = Dir$
        Loop
     
    Error_Handler_Exit:
        On Error Resume Next
        Set db = Nothing
        Exit Function
     
    Error_Handler:
        MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
               "Error Number: " & Err.Number & vbCrLf & _
               "Error Source: ListSubDirectories" & vbCrLf & _
               "Error Description: " & Err.Description, vbCritical, _
               "An Error has Occurred!"
        Resume Error_Handler_Exit
    End Function
    che però si ferma al primo livello e non va a testare le sottocartelle...
    Qualcuno è in grado di modificarlo perchè vada in routine a cercare anche nelle varie sottocartelle?

    willy55 ha scritto:


    Leggi queste discussioni:
    https://www.devhut.net/2010/09/19/ms-access-vba-import-directory-listing-into-a-table/
    https://access-programmers.co.uk/forums/showthread.php?t=230253
    https://www.access-programmers.co.uk/forums/showthread.php?t=294665
    https://www.pcreview.co.uk/threads/how-do-i-import-a-directory-file-list-into-an-access-table.1677386/
    https://bytes.com/topic/access/answers/971284-read-list-filenames-folder-into-table
    https://stackoverflow.com/questions/49990421/how-to-insert-file-names-into-access-table-with-vba
  • Re: Elenco cartelle e sottocartelle in tabella

    In questo forum non si richiede codice pronto. Devi essere tu a fare le modifiche del codice suggerito.
  • Re: Elenco cartelle e sottocartelle in tabella

    Leop85 ha scritto:


    Purtroppo quasi tutte servono per importare elenco dei files, mentre a me serve importare l'elenco delle sole cartelle e sottocartelle, anche se non contengono files.
    ....
    che però si ferma al primo livello e non va a testare le sottocartelle...
    Qualcuno è in grado di modificarlo perchè vada in routine a cercare anche nelle varie sottocartelle?
    In realtà stai sbagliando... e probabilmente proprio per la tua non preparazione.
    I link, non sono tutti adeguati, ma il secondo, ad esempio, è praticamente perfetto essendo ricorsivo... ovviamente è vero che esegue la scansione dei File... ma quello basta non farlo e fermarsi alla scansione delle SubFolder... quindi è veramente banale, si tratta di togliere...

    Ovviamente per fare qualsiasi modifica serve sapere di cosa si parla... per questo ti chiesi di esplicitare la tua preparazione...
    Come ti è stato detto non forniamo CODICE da COPIA/INCOLLARE, puoi tuttavia provare a lavorare sui suggerimenti dati e la dove ci sono difficoltà specifiche le possiamo affrontare, ma certamente non forniamo codice chiavi in mano.
Devi accedere o registrarti per scrivere nel forum
12 risposte