Option Compare Database
Option Explicit
Public Enum dtDataType
dtText = 0
dtNumeric = 1
dtDate = 2
dtBoolean = 3
End Enum
Public Function GetFilter(TheListBox As Access.ListBox, TheFieldName As String, Optional TheDataType As dtDataType = 0, Optional TheColumn = 0) As String
Dim fltr As String
Dim I As Long
Dim val As String
For I = 0 To TheListBox.ItemsSelected.Count - 1
val = TheListBox.Column(TheColumn, TheListBox.ItemsSelected(I))
If TheDataType = dtText Then
val = "'" & Replace(val, "'", "''") & "'"
ElseIf TheDataType = dtDate Then
val = "#" & Format(CDate(val), "mm/dd/yyyy") & "#"
ElseIf TheDataType = dtBoolean Then
Select Case val
Case "Yes", "On", "True"
val = "True"
Case Else
val = "False"
End Select
End If
If fltr = "" Then
fltr = val
Else
fltr = fltr & ", " & val
End If
Next I
If fltr <> "" Then
fltr = TheFieldName & " IN (" & fltr & ")"
End If
GetFilter = fltr
End Function