กระทู้เก่าบอร์ด อ.Yeadram
1,467 8
URL.หัวข้อ /
URL
รายงานช่วงวันเวลา
ผมเก็บรายงานวันที่ เป็นรูปแบบเต็ม คือ 24/6/2556 11:30:00
ถ้าผมจะใช้แบบสอบถามข้อมูลผ่านฟอร์มชื่อ Form1 โดย Date_Start เป็นวันเริ่มต้น
Date_End เป็นวันสิ้นสุด ต้องใช้ยังงัยครับ
Between [forms]![Form1 ]![date_Start] And [forms]![Form1 ]![date_End]
อันนี้เป็นแบบเดิมที่ผมใช้ มันจะใช้ได้ถ้าไม่มีเวลาเข้ามาเกี่ยว
ถ้าผมจะใช้แบบสอบถามข้อมูลผ่านฟอร์มชื่อ Form1 โดย Date_Start เป็นวันเริ่มต้น
Date_End เป็นวันสิ้นสุด ต้องใช้ยังงัยครับ
Between [forms]![Form1 ]![date_Start] And [forms]![Form1 ]![date_End]
อันนี้เป็นแบบเดิมที่ผมใช้ มันจะใช้ได้ถ้าไม่มีเวลาเข้ามาเกี่ยว
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R16456
สร้างฟิลด์ใหม่อีกฟิลด์ในคิวรี่ โดยดึงฟิลด์ที่เก็บค่า วันที่และเวลามา และใช้ฟังก์ชั่น DateValue แสดงเฉพาะวันที่อย่างเดียว ดังนี้:
aDate: DateValue([วันเวลา])
จากนั้นที่ช่องเงื่อนไขของฟิลด์นี้ก็ใส่
Between [forms]![Form1 ]![date_Start] And [forms]![Form1 ]![date_End]
aDate: DateValue([วันเวลา])
จากนั้นที่ช่องเงื่อนไขของฟิลด์นี้ก็ใส่
Between [forms]![Form1 ]![date_Start] And [forms]![Form1 ]![date_End]
3 @R16457
ขอบคุณครับอาจารย์ api ผมลองใช้
Between DateValue([forms]![Form1 ]![date_Start]) And DateValue([forms]![Form1 ]![date_End])
มาแล้ว แต่มันไม่ออก ก็เลยบันทึกข้อมูลไปเรื่อยๆ ก่อน มาพบว่า แบบเก่ามันก็ออกรายงานให้ครับ
เพียงแต่ว่าวันสุดท้าย มันไม่ออก วันที่ที่มีเวลา ดังนี้
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
24/6/2556 11:30
ผมเลือกช่วงเวลาวันที่ 20-24
มันออกมาแบบนี้
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
กำลังหาอยู่ว่ามันน่าจะเกิดจากอะไร ชนิดของฟิลด์ เป็น Datetime
ฟอร์มที่เลือกช่วงเวลา เป็น Text ผมเลยใช้ Between DateValue([forms]![Form1 ]![date_Start]) And DateValue([forms]![Form1 ]![date_End])
ประมาณนี้ครับ
Between DateValue([forms]![Form1 ]![date_Start]) And DateValue([forms]![Form1 ]![date_End])
มาแล้ว แต่มันไม่ออก ก็เลยบันทึกข้อมูลไปเรื่อยๆ ก่อน มาพบว่า แบบเก่ามันก็ออกรายงานให้ครับ
เพียงแต่ว่าวันสุดท้าย มันไม่ออก วันที่ที่มีเวลา ดังนี้
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
24/6/2556 11:30
ผมเลือกช่วงเวลาวันที่ 20-24
มันออกมาแบบนี้
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
กำลังหาอยู่ว่ามันน่าจะเกิดจากอะไร ชนิดของฟิลด์ เป็น Datetime
ฟอร์มที่เลือกช่วงเวลา เป็น Text ผมเลยใช้ Between DateValue([forms]![Form1 ]![date_Start]) And DateValue([forms]![Form1 ]![date_End])
ประมาณนี้ครับ
4 @R16459
ถ้าเป็น DateTime ผมจะใช้แบบนี้ครับ
Where (MyDate >= DateValue([forms]![Form1 ]![date_Start])
And MyDate < (DateValue([forms]![Form1 ]![date_End]) + 1) )
Where (MyDate >= DateValue([forms]![Form1 ]![date_Start])
And MyDate < (DateValue([forms]![Form1 ]![date_End]) + 1) )
5 @R16463
แปลกจัง +1 แล้วถึงจะออก อาจารย์ พิชัย อธิบายให้หน่อยนะครับ เพราะอะไรถ้าเป็นเวลา มันถึงต้อง +1
6 @R16464
แล้วถ้าเราจะเลือก เฉพาะวันนั้น เราจะใช้ยังยังครับ
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
ถ้าผมเลือกวันที่ 21 มันออกแต่ 21/6/2556 ซึ่งจริงๆ มันน่าจะออก
21/6/2556
21/6/2556 12:30
20/6/2556
21/6/2556
21/6/2556 12:30
22/6/2556 14:30
24/6/2556
ถ้าผมเลือกวันที่ 21 มันออกแต่ 21/6/2556 ซึ่งจริงๆ มันน่าจะออก
21/6/2556
21/6/2556 12:30
7 @R16465
โพสไม่ได้อีกแล้ว
8 @R16466
ถ้าต้องการ ดูข้อมูลระหว่างวันที่ 20/6/2556 ถึง 24/6/2556
ผมก็จะใช้เงื่อนไขว่าทางคณิตศาสตร์ว่า
20/6/2556 <= MyDate < 25/06/2556
คือเอา 24/6/2556 + 1
ซึ่ง 24/6/2556 11:30 ก็ยังน้อยกว่า 25/6/2556 ซึ่งก็จะอยู่ในเงื่อนไขด้วย
ส่วนที่ว่า 21/6/2556 12:30 ไม่ออก กรณีเลือก เฉพาะวันนั้น คงต้องขอข้อมูลแบบละเอียดครับว่า code ไว้อย่างไร
ผมเดาว่าคุณอาจจะไม่ได้รวมเงื่อนไข
And MyDate < (DateValue([forms]![Form1 ]![date_End]) + 1)
ผมก็จะใช้เงื่อนไขว่าทางคณิตศาสตร์ว่า
20/6/2556 <= MyDate < 25/06/2556
คือเอา 24/6/2556 + 1
ซึ่ง 24/6/2556 11:30 ก็ยังน้อยกว่า 25/6/2556 ซึ่งก็จะอยู่ในเงื่อนไขด้วย
ส่วนที่ว่า 21/6/2556 12:30 ไม่ออก กรณีเลือก เฉพาะวันนั้น คงต้องขอข้อมูลแบบละเอียดครับว่า code ไว้อย่างไร
ผมเดาว่าคุณอาจจะไม่ได้รวมเงื่อนไข
And MyDate < (DateValue([forms]![Form1 ]![date_End]) + 1)
Time: 0.2366s
ทำให้ต้องแก้ Query มากมาย หรือจะเปลี่ยนเป็นเก็บแต่เวลา ใน ฟิลด์ใหม่แทนดี
ใครพอจะให้ประสบการณ์ได้มั่งครับ