สวัสดีครับทุกท่าน ผมต้องการทำ Multiple filter ด้วย Listbox หลายๆอันครับ ให้ Filter ได้ตามเงื่อนไขที่เลือกเลย
โดยผมเขียนโค้ดตามด้านล่างนี้ แล้วลอง filter ดู จากภาพ
1. ที่ Field MonthNum ผมต้องการเลือก Record ของเดือน 9 (September)
2. ที่ Field WorkGroup ผมต้องการเลือก “งานอื่นๆ”
แต่ผลลัพท์คือ ไปเอา “งานอื่นๆ” ของเดือนอื่นมา ซึ่งผมต้องการของเดือน 9 เท่านั้น(ซึ่งผลลัพธ์ที่ถูกต้อง จะต้องไม่มีของเดือน 9 โผล่มา เพราะไม่มี”งานอื่นๆ” ในเดือน 9) ผมจะต้องเพิ่มเติม Code อย่างไรให้ Filter ทำงานทั้งสองตัวครับขอบคุณล่วงหน้าครับผม
Private Sub lstMonthSort_AfterUpdate()
Call Search1
End Sub
--------------------------------------------------------------------------------------------------------
Sub Search1()
Dim varItem As Variant
Dim strsearch As String
Dim Task As String
Me.FilterOn = True
For Each varItem In Me!lstMonthSort.ItemsSelected
strsearch = strsearch & "," & Me!lstMonthSort.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
If Len(strsearch) = 0 Then
Task = "SELECT * FROM qryPerday"
Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
Else
strsearch = Right(strsearch, Len(strsearch) - 1)
'MsgBox (strSearch)
Task = "SELECT * FROM qryPerDay WHERE ([MonthNum] in (" & strsearch & "))"
Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
End If
End Sub
--------------------------------------------------------------------------------------------------------
Private Sub lstWorkGroup_AfterUpdate()
Call Search2
End Sub
--------------------------------------------------------------------------------------------------------
Sub Search2()
Dim varItem As Variant
Dim strsearch As String
Dim Task As String
Me.FilterOn = True
For Each varItem In Me!lstWorkGroup.ItemsSelected
strsearch = strsearch & "," & Me!lstWorkGroup.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
If Len(strsearch) = 0 Then
Task = "SELECT * FROM qryPerday"
Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
Else
strsearch = Right(strsearch, Len(strsearch) - 1)
'MsgBox (strSearch)
Task = "SELECT * FROM qryPerDay WHERE ([WorkGroup] in (" & strsearch & "))"
Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
End If
End Sub