Using Multi-select list boxes as a RecordSource for a form. What you need is a comma separated list in a text box which uses each of the items selected. Here's an example using a hidden text box named txtSelected: With Me!lstElevation If .MultiSelect = 0 Then Me!txtSelected = .Value Else For Each varItem In .ItemsSelected strList = strList & .Column(0, varItem) & "," Next varItem If strList <> "" Then strList = Left$(strList, Len(strList) - 1) End If Me.txtSelected = strList End If End With With this, you change the recordsouce of your form or subform: Then txtSelected is used in an IN clause in your code: strSQL = "SELECT * FROM tblItem WHERE (((CategoryID) In (" & Me.txtSelected & "));" Me.RecordSource = strSQL or: Me.SubformControlName.Form.RecordSource = strSQL