Provided by Allen Browne, updated June 2006
This article describes an old technique of filling a list box via a callback function.
In Access 2000 and later, there is a newer technique that is more efficient and flexible.
To use the callback function:
Function DirListBox (fld As Control, ID, row, col, code) ' Purpose: To read the contents of a directory into a ListBox. ' Usage: Create a ListBox. Set its RowSourceType to "DirListBox" ' Parameters: The arguments are provided by Access itself. ' Notes: You could read a FileSpec from an underlying form. ' Error handling not shown. More than 512 files not handled. Dim StrFileName As String Static StrFiles(0 To 511) As String ' Array to hold File Names Static IntCount As Integer ' Number of Files in list Select Case code Case 0 ' Initialize DirListBox = True Case 1 ' Open: load file names into array DirListBox = Timer StrFileName = Dir$("C:\") ' Read filespec from a form here??? Do While Len(StrFileName) > 0 StrFiles(IntCount) = StrFileName StrFileName = Dir IntCount = IntCount + 1 Loop Case 3 ' Rows DirListBox = IntCount Case 4 ' Columns DirListBox = 1 Case 5 ' Column width in twips DirListBox = 1440 Case 6 ' Supply data DirListBox = StrFiles(row) End Select End Function
Home | Index of tips | Top |