รายงานช่วงวันเวลา
กระทู้เก่าบอร์ด อ.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]

อันนี้เป็นแบบเดิมที่ผมใช้ มันจะใช้ได้ถ้าไม่มีเวลาเข้ามาเกี่ยว

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R16455
มันเป็นงานเก่า ที่เก็บแบบ 12/06/2556 มานานแล้ว แต่่ตอนนี้อยากเก็บเวลาด้วย
ทำให้ต้องแก้ Query มากมาย หรือจะเปลี่ยนเป็นเก็บแต่เวลา ใน ฟิลด์ใหม่แทนดี
ใครพอจะให้ประสบการณ์ได้มั่งครับ
2 @R16456
สร้างฟิลด์ใหม่อีกฟิลด์ในคิวรี่ โดยดึงฟิลด์ที่เก็บค่า วันที่และเวลามา และใช้ฟังก์ชั่น DateValue แสดงเฉพาะวันที่อย่างเดียว ดังนี้:

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])

ประมาณนี้ครับ
4 @R16459
ถ้าเป็น DateTime ผมจะใช้แบบนี้ครับ

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
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)
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2366s