Home  Fees/Services  Microsoft Access Templates  Tutorials  Access Download  Articles  Search  Contact  Privacy  Links

Access VBA Tutorial
   
Access Programming Examples & Code Samples

Directory List in Combo Box & List Box Visual Basic Tutorials, Workarounds & Solutions for VB6
Fill List Box With File List




VBA Tutorials:
Access to Google Earth
VB6 Age Calculation
Change Case VBA
VBA Email via Gmail
VBA Outlook Email
Read Email Access
RTF Report Email
Send Outlook Email Access
Calculate Running Sum
Concatenate Records
VBA Stock Quotes
VBA CreateQueryDef
Database Path Solution
Detail-Master Update
Field Validation VBA
Field Value New-Old
FindFirst Recordset
Get Version Number
VB6 Global Parameters
VBA Global Variables
Labels as Links
List Box Files List
VBA Mail Merge
OutputTo Crosstab
Sort Recordset Trick
VBA Recordset Filters
Reference Form Field
VBA Select Case
Transaction Processing

Visual Basic Function Examples


Fill List Box with Files Directory

If you need to display a directory listing you can fill a list box with each folder or file name. There are three parts needed to accomplish this, a list box control, the VBA Dir$ function, and an array.

To begin you will pull each directory value into the array. Next you will need to sort the array to present the information in a clear manner. Last you will place the directory information into the list box control.

The routine below requires two parameters, the list box control and a string containing the path to the directory you need to display.

To pull all the values in the directory you pull the first file name with

    file_name = Dir$(strDrive & "\*.*", vbDirectory)

The parameter vbDirectory indicates that you are looking at a directory. The value is placed in the array and then each subsequent value is requested using

    file_name = Dir$()

When all values have been placed in the array this routine calls a quick sort routine to sort the values. Last, the sorted listi s placed in the list box control by setting its row source property to the values from the sorted array.


Public Sub FillList(cmbList As ListBox, strDrive As String)

Const ArrTop As Integer = 300 ' limit to 300 files, and that is way too many
' list box row source property is limited to
' 2048 characters so at 300 files that is
' about 7 characters per name
Dim MyArray(ArrTop) As String

Dim file_name As String
Dim strRowSource As String ' Build row source string here to get all files
Dim i As Integer ' MyArray index for fill
Dim j As Integer ' MyArray index for move to list box

On Error Resume Next
'list the names of all files in the specified directory

file_name = Dir$(strDrive & "\*.*", vbDirectory)
i = 1
Do While (Len(file_name) > 0) And (i < 101)

    ' See if we should skip this file.
    If Not (file_name = ".") Or (file_name = "..") Then
        MyArray(i) = file_name
        i = i + 1
    End If

    ' Get the next file.
    file_name = Dir$()
Loop

If i > 1 Then

    ' note here is the code for QuickSort subroutine
    QuickSort MyArray, 1, i - 1
    'use sorted array to refill listbox
    cmbList.RowSource = "" 'clears the list
    For j = 1 To i
        strRowSource = strRowSource & MyArray(j) & ";"
    Next j

        ' If there are too many files take the most recent
        'RowSource string length is 2048 characters
        cmbList.RowSource = Left(strRowSource, 2048
    Else
    cmbList.RowSource = MyArray(1)
End If

End Sub


Sample Directory


List Box Control

Contributed by Janet Loch








Have errors?  No doubt we can answer your question quickly and easily.  Simple questions get simple answers at no charge via email.




Popular Database Templates:

Warehouse Inventory Software

Interior Design Project Software

Contact Management Software




Contact Information

VBA runtime tips tricks fix solution

Access Visual Basic/VBA/VBScript/VB6 Tutorials
Visual Basic Error Fix & Problem Solutions