Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB] Popolare combo box in Access

    Salve

    Dovrei popolare una combo box di Access con i nomi dei file contenuti in una cartella specifica.
    In rete ho trovato questo pezzo di codice:

    codice:
    Dim fso        ' il file system object
    Dim folder     ' la cartella (directory)
    Dim file       ' il singolo file
    Dim string     ' per contenere l'elenco
    
    ' N.B. assumo che 'dirName' contenga il nome della 
    '      directory che si vuole 'listare'
    
    ' creo il FSO ed accedo alla singola cartella
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder( dirName )
    
    ' pulisco la stringa
    string = ""
    
    ' ciclo su tutti i file della cartella
    For Each file in folder.Files
       string = string & file.name
       string = string & vbCrLf
    Next
    
    ' a questo punto 'string' contiene l'elenco separato 
    ' da 'ritorni a capo'.
    Set folder=Nothing
    Set fso=Nothing
    Come posso adattarlo alle mie esigenze ?
    Ho visto che Access mette i valori nel campo RowSource delle proprietà della combo box.
    Dovrei modificare questo codice in modo che la variabile string assuma la seguente struttura:

    "primo valore";"secondo valore";"terzo valore";"ecc ecc ecc"

    Saluti.

  2. #2
    Stai attento, le variabili le devi dichiarare completamente (ex dim fso as filesystemobject)
    string è una parola riservata, non puoi usarla come nome di variabile

    detto questo prova questa:
    codice:
    Private Sub popCombo()
        Dim fso As FileSystemObject
        Dim folder As folder
        Dim file As file
        Dim str As String, dirName As String
        Dim i As Integer
        
        dirName = "g:\documenti"
        
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set folder = fso.GetFolder(dirName)
        
        With Me.CasellaCombinata0
        
            .RowSourceType = "value list"
            
            i = 0
            
            For Each file In folder.Files
               .AddItem Item:=file.Name, Index:=i
               i = i + 1
            Next
        
        End With
        
        Set folder = Nothing
        Set fso = Nothing
    
    End Sub
    xxx

  3. #3
    Grazie!
    String era messa lì proprio come esempio... provo e ti so dire.

    Bye

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.