ได้โจทย์มาจากพี่ๆให้สร้างฟอร์มที่สามารถ เเสดงข้อมูลของสินค้าที่นำเข้ามาเเละสินค้าที่ถูกนำออกไปครับ
โดยในฟอร์มนี้ต้องสามารถหาข้อมูลโดย ดูจากเดือนเเละปีเเละสามารถดูเป็นช่วงเลาได้ เช่น อยากทราบว่าระหว่างเดือน 1 ถึง เดือน 3 มีสินค้าเข้า-ออกไปเเล้วกี่ชิ้น
รูปเเบบฟอร์มที่ผมสร้างเป็นเเบบนี้ครับ
เมื่อใส่ช่วงของเดือนเเละปีที่ต้องการค้นหา เเละ กด search เพื่อค้นหา record
คำสั่งปุ่ม Refresh
Private Sub MAYrebut_Click()
Dim strSQL_REFRESH As String
strSQL_REFRESH = "SELECT * from QueryRECORD order by [Month] ASC , [Year] ASC "
Me.FROMmonthtxt.Value = Null
Me.TOmonthtxt.Value = Null
Me.FROMyeartxt.Value = Null
Me.TOyeartxt.Value = Null
Me.RecordSource = strSQL_REFRESH
End Sub
คำสั่งปุ่ม Search
Private Sub MAYrecordbut_Click()
Dim strCriteriaM As String
Dim task 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"
Else
strCriteriaM = "( [Month] >= '" & Me.FROMmonthtxt.Value & "' and [Month] <= '" & Me.TOmonthtxt.Value & "' and [Year] >= '" & Me.FROMyeartxt.Value & "' and [Year] <= '" & Me.TOyeartxt.Value & "')"
task = " SELECT * From QueryRECORD where " & strCriteriaM & " order by [Month] ASC , [Year] ASC "
DoCmd.ApplyFilter task
Me.Requery
End If
End Sub
ตอนนี้ติดปัญหาคือ
1. ไม่สามารถเเสดงได้เมื่อเวลาค้นหาข้อมูลข้ามปี
2. พี่ต้องการเเบบว่า ถ้าให้ค้นหาระหว่างเดือนเก้าถึงเดือนสิบ เเม้ว่าเดือนเก้าจะไม่มีบันทึกข้อมูลเลย เเต่ข้อมูลของเดือนสิบที่มีบันท฿กต้องปรากฏบนฟอร์มเเต่ผมไม่สามารถเขียน vba ให้มันเเสดงได้เลยครับ
ผมลองเเก้ไขเพิ่มเติมเเล้วเเต่ไม่สามารถเเก้ไขปัญหาข้างต้นได้
จึงอยากขอคำเเนะนำในการเขียนโค้ด VBA หรือ การเเก้ไขปรับปรุง form,table,Query นะครับ
ปล.ผมได้ทำการอัปโหลดไฟล์ตัวอย่างไว้ด้วยครับ