所以我有一个多选下拉列表。我想在子表单中过滤搜索条件。在我的父母表格上,我有一个名为[cboTicketStatus]的组合框。我的子窗体是[SubHelpdeskTickets],源对象是[sfrm_Helpdesk_Ticket_Filter_Search]。在名为[cboTicketStatus]的组合框中,我要选择几个项目:打开,关闭,进行中的工作,保留,需要批准,已批准。我希望能够选择多个项目,然后通过[cboTicketStatus]中选择的项目来选择子窗体过滤器。然后,如果未选择任何主题,我希望它显示表[tbl_Helpdesk_Ticket_Tracker]中的所有项目。我不确定如何编写代码来更改记录源以执行此操作。
Function SearchCriteria()
Dim strDepartment As String
Dim strTicketNumber As String
Dim strTicketStatus As String
Dim strStartDate As String
Dim strEndDate As String
Dim task As String
Dim strCriteria As String
If IsNull(Me.cboDepartments) Then
strDepartment = "[Comptroller Department] like '*'"
Else
strDepartment = "[Comptroller Department] = '" & Me.cboDepartments.Column(1) & "'"
End If
If IsNull(Me.cboTicketNumber) Then
strTicketNumber = "[Helpdesk Ticket Number] like '*'"
Else
strTicketNumber = "[Helpdesk Ticket Number] = '" & Me.cboTicketNumber.Column(1) & "'"
End If
If IsNull(Me.cboTicketStatus) Then
strTicketStatus = "[Status of Ticket] like '*'"
Else
strTicketStatus = "[Status of Ticket] = '" & Me.cboTicketStatus.Column(1) & "'"
End If
If IsNull(Me.txtStartDate) Then
strStartDate = "[Date Opened] like '*'"
Else
strStartDate = "([Date Opened] >= #" & Me.txtStartDate & "#)"
End If
If IsNull(Me.txtEndDate) Then
strEndDate = "[Date Opened] like '*'"
Else
strEndDate = "([Date Opened] <= #" & Me.txtEndDate & "#)"
End If
strCriteria = strDepartment & "And" & strTicketNumber & "And" & strStartDate & "And" & strEndDate & "And" & strTicketStatus
task = "Select * from tbl_Helpdesk_Ticket_Tracker where " & strCriteria
Me.SubHelpdeskTickets.Form.RecordSource = task
Me.SubHelpdeskTickets.Form.Requery
End Function
我现在使用的我的代码仅适用于单个选择。
类似这样的东西:
strTicketStatus = "[Status of Ticket] = "
For i = 0 to Me.cboTicketStatus.ListCount - 1
if Me.cboTicketStatus.Selected(i) = True then
selectedStatus = Me.cboTicketStatus.ItemData(i)
strTicketStatus = strTicketStatus & iif(i > 0, " OR ", "") & "'" & selectdStatus & "'"
End If
Next i