1
ห้อง MS Access / : มีวิธีสร้าง Form ที่ค้นหาข้อมูลด้วยเดือนเเละปีไหมครับ
« เมื่อ: 15 พ.ย. 63 , 11:48:55 »
สามารถใช้กับการค้นหาภายในปีได้ตามต้องการครับ ขอบคุณสำหรับคำเเนะนำครับ
เเต่ตอนนี้กำลังหาทางให้สามารถ filter ข้อมูลข้ามปีครับ
Private Sub MAYrecordbut_Click()
Dim strCriteriaM1 As String
Dim strCriteriaM2 As String
Dim strCriteriaMA As String
Dim strCriteriaMB As String
Dim task1 As String
Dim task2 As String
Me.Refresh
If IsNull(Me.FROMmonthtxt) Or IsNull(Me.TOmonthtxt) Then
MsgBox " Please enter the month range", vbInformation, "Month Range Required"
Me.SetFocus
ElseIf IsNull(Me.FROMyeartxt) Or IsNull(Me.TOyeartxt) Then
MsgBox " Please enter the year range", vbInformation, "Year Range Required"
End If
'ใช้ค้นหาข้อมูลภายในปีนั้นๆ เมื่อ Me.FROMyeartxt.Value = 2020 เเละ Me.TOyeartxt.Value = 2020
If Me.FROMyeartxt.Value = Me.TOyeartxt.Value Then
strCriteriaM1 = "([Month] between " & Me.FROMmonthtxt.Value & " and " & Me.TOmonthtxt.Value & ") and ([Year] between " & Me.FROMyeartxt.Value & " and " & Me.TOyeartxt.Value & ")"
task1 = " SELECT * From QueryRECORD where " & strCriteriaM1 & " order by [Month] ASC , [Year] ASC "
DoCmd.ApplyFilter task1
Me.Requery
'ใช้ค้นหาข้อมูลข้ามปี เมื่อ Me.FROMyeartxt.Value = 2020 เเละ Me.TOyeartxt.Value = 2021
ElseIf Me.FROMyeartxt.Value < Me.TOyeartxt.Value Then
'ให้หาข้อมูลจาก Query ภายในปี 2020 จากเดือนที่ต้องการใน textbox ชื่อ FROMmonthtxt จนถึงเดือน 12
strCriteriaMA = " ([Month] between " & Me.FROMmonthtxt.Value & " and " & 12 & ") and ([Year] = " & Me.FROMyeartxt.Value & ") "
'ให้หาข้อมูลจาก Query ภายในปี 2021 จากเดือน 1 จนถึงเดือรที่ต้องการใน textbox ชื่อ TOmonthtxt
strCriteriaMB = " ([Month] between " & 1 & " and " & Me.TOmonthtxt.Value & ") and ([Year] = " & Me.TOyeartxt.Value & ") "
'รวมคำสั่ง
strCriteriaM2 = " '" & strCriteriaMA & "' And '" & strCriteriaMB & "' "
task2 = " SELECT * From QueryRECORD where " & strCriteriaM2 & " order by [Month] ASC , [Year] ASC "
DoCmd.ApplyFilter task2
Me.Requery
End If
End Sub
ใช้โค้ดตามนี้เเต่ยังไม่สามารถเเสดงข้อมูลข้ามปีได้ครับ พอมีคำเเนะนำในการเขียนโค้ดไหมครับ
เเต่ตอนนี้กำลังหาทางให้สามารถ filter ข้อมูลข้ามปีครับ
Private Sub MAYrecordbut_Click()
Dim strCriteriaM1 As String
Dim strCriteriaM2 As String
Dim strCriteriaMA As String
Dim strCriteriaMB As String
Dim task1 As String
Dim task2 As String
Me.Refresh
If IsNull(Me.FROMmonthtxt) Or IsNull(Me.TOmonthtxt) Then
MsgBox " Please enter the month range", vbInformation, "Month Range Required"
Me.SetFocus
ElseIf IsNull(Me.FROMyeartxt) Or IsNull(Me.TOyeartxt) Then
MsgBox " Please enter the year range", vbInformation, "Year Range Required"
End If
'ใช้ค้นหาข้อมูลภายในปีนั้นๆ เมื่อ Me.FROMyeartxt.Value = 2020 เเละ Me.TOyeartxt.Value = 2020
If Me.FROMyeartxt.Value = Me.TOyeartxt.Value Then
strCriteriaM1 = "([Month] between " & Me.FROMmonthtxt.Value & " and " & Me.TOmonthtxt.Value & ") and ([Year] between " & Me.FROMyeartxt.Value & " and " & Me.TOyeartxt.Value & ")"
task1 = " SELECT * From QueryRECORD where " & strCriteriaM1 & " order by [Month] ASC , [Year] ASC "
DoCmd.ApplyFilter task1
Me.Requery
'ใช้ค้นหาข้อมูลข้ามปี เมื่อ Me.FROMyeartxt.Value = 2020 เเละ Me.TOyeartxt.Value = 2021
ElseIf Me.FROMyeartxt.Value < Me.TOyeartxt.Value Then
'ให้หาข้อมูลจาก Query ภายในปี 2020 จากเดือนที่ต้องการใน textbox ชื่อ FROMmonthtxt จนถึงเดือน 12
strCriteriaMA = " ([Month] between " & Me.FROMmonthtxt.Value & " and " & 12 & ") and ([Year] = " & Me.FROMyeartxt.Value & ") "
'ให้หาข้อมูลจาก Query ภายในปี 2021 จากเดือน 1 จนถึงเดือรที่ต้องการใน textbox ชื่อ TOmonthtxt
strCriteriaMB = " ([Month] between " & 1 & " and " & Me.TOmonthtxt.Value & ") and ([Year] = " & Me.TOyeartxt.Value & ") "
'รวมคำสั่ง
strCriteriaM2 = " '" & strCriteriaMA & "' And '" & strCriteriaMB & "' "
task2 = " SELECT * From QueryRECORD where " & strCriteriaM2 & " order by [Month] ASC , [Year] ASC "
DoCmd.ApplyFilter task2
Me.Requery
End If
End Sub
ใช้โค้ดตามนี้เเต่ยังไม่สามารถเเสดงข้อมูลข้ามปีได้ครับ พอมีคำเเนะนำในการเขียนโค้ดไหมครับ