Newsgroup: it.comp.appl.access
Titolo: Visualizzare in una listbox i file presenti in una directory predefinita e aprirli

Ciao a tutti.
Volevo sapere se è possibile (e come si fa)  visualizzare in una listbox o
con altri controlli, i file presenti in una cartelle che ho predefinito io.
Grazie
Ciao
Stefano

r4gtl ha scritto:

Public Function FillListFiles(ctl As Access.ListBox, Startpath As
string)
    Dim MyPath As String
    Dim MyName As String
    ctl .RowSource = ""
    MyPath = Startpath
    MyName = Dir(MyPath)
    Do While MyName <> ""
        With ctl
            .RowSource = .RowSource & MyName & ";"
        End With
        MyName = Dir
    Loop
    ctl.RowSource = Left(ctl.RowSource, Len(ctl.RowSource) - 1)
End Function
Per lanciarli su Evento DBL_CLICK:
Chiama la funzione sotto passando il contenuto della ListBox.
Public Sub ExecuteFile(FilePath As String)
    'Esegue file
    On Error GoTo error
    Dim ret As Integer
    ret = Shell("rundll32.exe url.dll,FileProtocolHandler " &
(FilePath))
    Exit Sub
error:
    MsgBox Err.Description, vbExclamation, "Error"
End Sub
@Alex

 ha scritto nel messaggio
news:1159943566.7...@e3g2000cwe.googlegroups.com...
r4gtl ha scritto:





@Alex
Caspita che velocità.
Adesso, continuando la ricerca ho trovato anche una faq sul sitocomune che
forse può essere utile. Adesso le provo tutte poi ti faccio sapere.
Grazie mille.
Stefano

 ha scritto nel messaggio
news:452358be$0$25885$4faf...@reader1.news.tin.it...

Ciao Alex!
Scusa ma non riesco a farlo funzionare.
Ho messo la funzione in un modulo e l'ho richiamata sull'Origine Controllo
della listbox ma non funziona. Dobe devo preimpostare StartPath? E la
Funzione?
Scusa l'ignoranza
Ciao
Stefano

 Stefano
Non devi richiamarla sull'origine controllo.... ma su evento Load della
Maschera..!
Private Sub Form_Load()
   Call FillListFiles (me!NomeListBox, "C:\Program File\")
End Sub
Ciao
@Alex

 ha scritto nel messaggio
news:1159948891....@i42g2000cwa.googlegroups.com...

Ah!

 ha scritto nel messaggio
news:45236c2f$0$25883$4faf...@reader1.news.tin.it...

Scusami ancora! Sono un pò tordo.
Ho provato ma mi dà questo errore
Errore di runtime '5'
chiamata di routine o argomento non validi.
Questo è tutto il codice.
Option Compare Database
Private Sub Form_Load()
         Call FillListFiles(Me!Elenco0, "C:\Documenti\")
End Sub
Public Function FillListFiles(ctl As Access.ListBox, Startpath As String)
    Dim MyPath As String
    Dim MyName As String
        ctl.RowSource = ""
    MyPath = Startpath
    MyName = Dir(MyPath)
    Do While MyName <> ""
        With ctl
            .RowSource = .RowSource & MyName & ";"
        End With
        MyName = Dir
    Loop
    ctl.RowSource = Left(ctl.RowSource, Len(ctl.RowSource) - 1)
End Function
Se entro in debug dopo l'errore mi evidenzia
ctl.RowSource = Left(ctl.RowSource, Len(ctl.RowSource) - 1)
se mi posiziono sopra rowsource mi esce un "tip" (si chiama così?):
ctl.rowsource=""
Come mai?
Ancora grazie
Stefano

 ha scritto nel messaggio
news:45237507$0$25882$4faf...@reader1.news.tin.it...

Niente da fare! Ho provato a cercare anche istruzioni sulla funzione Dir ma
non è che ci ho capito molto. Oltretutto se mi posiziono su ctl esce un tip
che dice ctl=null.
Bo!?!

 Bo!?!
Ho provato questa che è GEMELLA di quella di prima e funziona:
Private Sub Form_Load()
   Call FillListFiles(Me.Elenco2, "D:\Schemi\")
End Sub
Public Function FillListFiles(ctl As Access.ListBox, Startpath As
String)
    Dim MyPath As String
    Dim MyName As String
    Dim strRow As String
    ctl.RowSource = ""
    MyPath = Startpath
    MyName = Dir(MyPath)
    Do While MyName <> ""
        strRow = strRow & MyPath & MyName & ";"
        MyName = Dir
    Loop
    ctl.RowSource = Left(strRow, Len(strRow) - 1)
End Function
Hai impostato ad "Elenco Valori" la proprietà "Tipo Origine Riga"....?
Mi auguro di si....
@Alex

 ha scritto nel messaggio
news:1159967610.6...@m73g2000cwd.googlegroups.com...
r4gtl ha scritto:





Mi auguro di si....
@Alex
Niente da fare.
Mi segna sempre lo stesso problema. Se mi posiziono su MyName mi
dice:MyName=""
Avevo già impostato (pur non sapendolo) su Elenco Valori.
Come mai mi dà Me.elenco==Nullo?
Scusa se sono un pò duro ma non riesco a capire.

 Scusa se sono un pò duro ma non riesco a capire.
Sei sicuro di avere tutti i riferimenti VBA correttamente impostati...?
@Alex

 [CUT]


@Alex
Ti dico quali sono quelli selezionati:
Visual Basic For Applications
Microsoft Access 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft Activex Data Objects 2.1 Library
Spero che ne manchi qualcuno così so che dipende da questo.

 Spero che ne manchi qualcuno così so che dipende da questo.
Se non hai nessun MANCA:nomerif... direi che è tutto OK.
Mandami una mail che in serata di mando il demo che da me funziona
altrimenti credo che
non si risolva nulla.
@Alex

 @Alex


Hai controllato bene il percorso della cartella di cui vuoi l'elenco dei
file?
Se non sbaglio avevi indicato "C:\Documenti\"... forse "C:\Document and
Settings\MioNome\Documenti\"
L'errore di cui tu parli è dovuta o alla dimenticanza dello slash finale..
Errore 5 .. oppure ad una cartella inesistente  .. MyName=""
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:eg0hl5$nur$1...@news.newsland.it...

Risolto! Intanto è giusto quello che dice sv e cioè che l'errore era dovuto
alla mancanza dello slash finale.
Poi io gli faceco leggere in una directory dove non c'erano files ma solo
altre cartelle e queste non me le fa vedere.
Anzi, si arrabbia! E' possibile vedere anche le cartelle?
Devo comunque fare i miei complimenti e porgere i miei ringraziamenti per la
pazienza che dimostrate nel seguire utenti che (a volte) non sanno neanche
di cosa si parla.

 di cosa si parla.
Ciao
@Alex

 ha scritto nel messaggio
news:1159985550.0...@h48g2000cwc.googlegroups.com...
r4gtl ha scritto:






Ciao
@Alex
Non mi permetterei mai di dire che il tuo esempio era sbagliato. Sono stato
io che a forza di tentativi alla fine ho cominciato a metterlo senza.
Comunque, approfittando spudoratamente della vostra pazienza, ho aggiunto un
livello di difficoltà al gioco.
Siccome nella casella di testo deve uscire l'elenco dei files di cartelle
diverse in base a cosa c'è in una combobox, ho impostato una tabella con i
percorsi in base a questa condizione.
Così, ho pensato, carico una variabile con un dlookup che va a vedere quello
che c'è in corrispondenza nella tabella.
Ho aggiunto il vbDirectory. il problema è che adesso visualizza tutto e non
solo le directory. In effetti andrei benissimo a fare come hai detto cioè
con due listbox.
Questo è il codice:
Private Sub CasellaCombinata0_AfterUpdate()
Dim MioPercorso As String
MioPercorso = DLookup("DescrizionePercorso", "Percorso", "Tipo='" &
CasellaCombinata0.Text & "'")
Call FillListFilesDir(Me.Elenco2, MioPercorso)
End Sub
Public Function FillListFilesDir(ctl As Access.ListBox, Startpath As String)
    Dim MyPath As String
    Dim MyName As String
    Dim strRow As String
    ctl.RowSource = ""
    MyPath = Startpath
    MyName = Dir(MyPath, vbDirectory)
    Do While MyName <> ""
        strRow = strRow & MyPath & MyName & ";"
        MyName = Dir
    Loop
    ctl.RowSource = Left(strRow, Len(strRow) - 1)
End Function
Come si fa a vedere solo le directori?
Sempre grazie mille
Stefano

 Stefano
Guarda Stefano porta pazienza ma questa settimana avete fatto la stessa
domanda in 3, ed ho risposto a tutti la stessa cosa....!
E' possibile che non riusciate a leggere l'Help o il visualizzatore
Oggetti....???
Il centro di tutto è la funzione DIR:
Dall'Help vedo che:
     Function Dir([PathName], [Attributes As VbFileAttribute =
vbNormal]) As String
Come hai notato c'è un Attributo che può assumere valori diversi,
sempre usando il visualizzatore oggetti trovi le varie costanti
Enumerate:
vbDirectory mi pare possa essere interessante....!
Fai qualche prova, se non funziona si deve usare un'altro metodo, con
FileSearch(sempre documentato nell'Help e nel visualizzatore) oppure
FSO.
Saluti
@Alex

 [CUT]








Saluti
@Alex
Hai pienamente ragione. Ti assicuro comunque che ho guardato sulla guida ma
vederle applicate è un'altra cosa. Ringrazio quindi tutto l'NG per
l'assistenza che continua a dare.
Grazie
Stefano