ให้รายงานเรียงตาม วัน/เดือน/ปี



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

13 ธ.ค. 61 , 14:50:50
อ่าน 518 ครั้ง

aekkxborno

  • สมาชิกไท.Access
  • กระทู้: 5

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

ให้รายงานเรียงตาม วัน/เดือน/ปี ตอนนี้ผมกำหนดให้มันเรียงจากน้อยไปหามาก แต่มันไม่เรียงตามวันเดือนปี


 

13 ธ.ค. 61 , 16:40:37
ตอบกลับ #1

ปิ่นณรงค์

: ให้รายงานเรียงตาม วัน/เดือน/ปี
« ตอบกลับ #1 เมื่อ: 13 ธ.ค. 61 , 16:40:37 »
ให้รายงานเรียงตาม วัน/เดือน/ปี ตอนนี้ผมกำหนดให้มันเรียงจากน้อยไปหามาก แต่มันไม่เรียงตามวันเดือนปี


ปกติที่เกิดปัญหาไม่ยอมเรียงลำดับ ใหม่สุดไปหาเก่าสุดใน ข้อมูลวันที่อาจจะเกิดจาก  Field นั้น Datatype ไม่ได้เป็น Date And Time
จากที่ดู type น่าจะเป็น text ครับ วิธีจึงควรใช้ CVDate เพื่อแปลงเป็นวันที่ ผมมีตัวอย่างของการเก็บ Field วันที่ แต่ Datatype เป็น text โดยให้คิวรี่เปรียบเทียบครับระหว่างแปลงกับไม่แปลง  โดยการแก้ก็ไปแก้ที่คิวรี่ที่นำมาออกรายงานนะคับ

« แก้ไขครั้งสุดท้าย: 13 ธ.ค. 61 , 16:47:09 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: aekkxborno

13 ธ.ค. 61 , 17:32:43
ตอบกลับ #2

aekkxborno

  • สมาชิกไท.Access
  • กระทู้: 5

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: ให้รายงานเรียงตาม วัน/เดือน/ปี
« ตอบกลับ #2 เมื่อ: 13 ธ.ค. 61 , 17:32:43 »
ให้รายงานเรียงตาม วัน/เดือน/ปี ตอนนี้ผมกำหนดให้มันเรียงจากน้อยไปหามาก แต่มันไม่เรียงตามวันเดือนปี


ปกติที่เกิดปัญหาไม่ยอมเรียงลำดับ ใหม่สุดไปหาเก่าสุดใน ข้อมูลวันที่อาจจะเกิดจาก  Field นั้น Datatype ไม่ได้เป็น Date And Time
จากที่ดู type น่าจะเป็น text ครับ วิธีจึงควรใช้ CVDate เพื่อแปลงเป็นวันที่ ผมมีตัวอย่างของการเก็บ Field วันที่ แต่ Datatype เป็น text โดยให้คิวรี่เปรียบเทียบครับระหว่างแปลงกับไม่แปลง  โดยการแก้ก็ไปแก้ที่คิวรี่ที่นำมาออกรายงานนะคับ



ผมทำตามแล้วไม่ได้อะครับ

Date: CVDate([ใช่ชื่อฟิวที่ต้องการใช่มั้ยครับ])

 

13 ธ.ค. 61 , 19:28:55
ตอบกลับ #3

ปิ่นณรงค์

: ให้รายงานเรียงตาม วัน/เดือน/ปี
« ตอบกลับ #3 เมื่อ: 13 ธ.ค. 61 , 19:28:55 »
อ่อ ของท่านมีใส่ตัวอักษรเข้าไปด้วยตรงที่เขียนว่า (ลูกค่ารอรับกลับ)  มันเลยไม่ยอมให้แปลงเป็นวันที่
งั้นถ้าเราจะใช้การสร้างเงื่อนไขการตรวจสอบค่า แบบนี้ได้ไหมครับ

ConvertDate: IIf(IsDate([stringDate]),CVDate([stringDate]),CVDate(Left([stringDate],10)))

คือถ้าเป็นข้อมูลในรูปแบบแปลงวันที่ได้ก็ให้แสดงวันที่นั้นมา แต่ถ้าไม่ใช่รูปแบบวันที่ก็ให้ตัดเอาเฉพาะส่วนด้านซ้ายที่เป็นวันที่มาแปลง
โดยปกติเครื่องผมกำหนดวันที่เป็น 01/01/2561 พอนับจำนวนตัวอักษรแล้วได้ = 10 ผมเลยกำหนด 10 ลงในสูตรครับ แต่ดูแล้วของคุณ เท่ากับ 8 ครับก็ใส่ไปแบบนี้  ConvertDate: IIf(IsDate([stringDate]),CVDate([stringDate]),CVDate(Left([stringDate],8)))
พอได้ค่ามาแล้วในรายงาน เอาฟิลล์ ConvertDate ใส่เข้าไปด้วยและกรองวันที่จากฟิลล์นี้ในรายงานแล้วซ่อนฟิลล์นี้ไป แล้วให้แสดงฟิลล์เดิมที่เรามีแทน


ตัวอย่างด้านล่างครับ
« แก้ไขครั้งสุดท้าย: 13 ธ.ค. 61 , 19:36:51 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: aekkxborno


บอร์ดเรียนรู้ Access สำหรับคนไทย