While designing a database in Access 2000 recently, I decided the most intuitive way for my users to be able to look at the data they wanted was to let them use extended multi-select list boxes to pick the information they wanted. The function below converted their selections into a clause that appended to an SQL WHERE statement, creating or modifying a query. This function can also be used as a filter to open a form or report. Since the values passed were always strings, and the first column of the list boxes always contained unique values, I built the column number and delimiters into the function, where they could easily be replaced by Optional variables. If nothing is selected, this function will return an empty string. While this code was written specifically for Access 2000, it should also work in Access 97, Excel 5.0 on up, and Visual Basic.
Public Function WHEREFromListbox(lst As ListBox,strField As String) As String' Created by Carolyn J. Howorth, August 29, 2000' Returns a SQL WHERE Clause from a multi-selectlistbox' Note that WHERE is not included so that thisfunction can' be used as a filter in Access For intLp = 0 To lst.ListCount If lst.Selected(intLp) = True Then If Len(strResult) > 1 Then WHEREFromListbox = WHEREFromListbox &