กระทู้เก่าบอร์ด อ.Yeadram
1,352 4
URL.หัวข้อ /
URL
โชว์ข้อมูลวันที่ในรีพอร์ต
เนื่องจากมีการคีย์ข้อมูลเข้าเป็นเวลาทำงานและระบุวันที่ทำงานซึ่งเมื่อเรียกรีพอร์ตจะโชว์เฉพาะข้อมูลและวันที่ที่มีการคีย์ข้อมูลเข้า แต่ความต้องการของผู้ใช้คือให้โชว์วันที่ทุกวันในเดือนนั้นๆด้วย จึงอยากทราบวิธีการว่าจะทำอย่างไรจะให้รีพอร์ตโชว์วันที่ทุกวันแม้จะไม่มีการคีย์ข้อมูลสำหรับวันนั้นๆครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R11590
สร้างอีกเทเบิล สมมุติชื่อ tbDateSeq มีฟิลด์เดียวเป็นฟิลด์วันที่ชื่อ fdDateSeq แล้วป้อนวันที่ที่ต้องการแสดงในรายงานลงไป สร้างคิวรี่ชื่อ qrOutput ให้เป็นการทำ left join ระหว่าง tbDateSeq กับเทเบิลวันที่ทำงานของพนักงานด้วยฟิลด์ fdDateSeq กับฟิลด์วันที่ทำงานของพนักงาน แล้วนำเอา qrOutput ไปเป็น RecordSource ให้แก่รายงานก็จะได้ตามต้องการครับ
2 @R11591
มีวิธีเขียนฟังชั่นหรือมีฟังชั่นไหนที่เขียนเพื่อให้ตัวโปรแกรมประมวลผลอัตโนมัติโดยมองจากแบบสอบถาม เช่นให้ผู้ใช้เลือกเดือนปีที่จะออกรีพอร์ตหลังจากนั้นให้โปรแกรมมองว่าถ้าเป็นเดือนตุลาคม 2011 ก็ให้รันเลขวันเดือนปีชุดหนึ่งขึ้นมาโดยเรียงตั้งแต่วันที่ 01/10/2011-31/10/2011 ได้หรือไม่ครับ แล้วจับมา leftjoin กับข้อมูลจริงอีกทีครับ
3 @R11593
ก็เขียนโค้ดเพื่อลบทุกเรคอร์ดใน tbDateSeq แล้วใส่วันที่ในเดือนที่ต้องการเข้าไปใหม่
Public Sub FillDateSeq(M as integer, Y as integer)
' M = เดือน, Y=ปี 4 หลัก
dim D as Date
Docmd.RunSQL = "delete * from tbDateSeq"
D = DateSerial(Y,M,1)
Loop
DoCmd.RunSQL = "insert into tbDateSeq (fdDateSeq) values (#" & format(D,"dd-mmm-yyyy") & "#)"
DateAdd("d",1,D)
Do Until Month(D) <> M
End Sub
สิ่งเดียวที่ยังไม่มั่นใจคือว่า ถ้าระบบ Windows ของคุณเลือกให้แสดงปีเป็น พ.ศ. แล้วปีที่จะส่งเข้าไปใน procedure นี้จะต้องเป็น พ.ศ. ตามด้วยหรือไม่ ถ้าอยากทดลอง ก็ลองปีที่เดือนกุมภาพันธ์มี 29 วันดูครับ
Public Sub FillDateSeq(M as integer, Y as integer)
' M = เดือน, Y=ปี 4 หลัก
dim D as Date
Docmd.RunSQL = "delete * from tbDateSeq"
D = DateSerial(Y,M,1)
Loop
DoCmd.RunSQL = "insert into tbDateSeq (fdDateSeq) values (#" & format(D,"dd-mmm-yyyy") & "#)"
DateAdd("d",1,D)
Do Until Month(D) <> M
End Sub
สิ่งเดียวที่ยังไม่มั่นใจคือว่า ถ้าระบบ Windows ของคุณเลือกให้แสดงปีเป็น พ.ศ. แล้วปีที่จะส่งเข้าไปใน procedure นี้จะต้องเป็น พ.ศ. ตามด้วยหรือไม่ ถ้าอยากทดลอง ก็ลองปีที่เดือนกุมภาพันธ์มี 29 วันดูครับ
4 @R11600
ขอบคุณครับอาจารย์ที่ใช้อยู่เป็นปี ค.ศ. ครับไม่น่าจะมีปัญหา
Time: 0.3434s