เกี่ยวกับ วันที่ ด้วยคน
กระทู้เก่าบอร์ด อ.Yeadram

 1,958   6
URL.หัวข้อ / URL
เกี่ยวกับ วันที่ ด้วยคน

ผมใช้ฟิลด์ Text เก็บข้อมูลเป็นวัน/เดือน/ปี ครับ
ปัญหาก็คือเวลาเรียงลำดับในคิวรี่ มันจะเรียงตามวันที่ก่อน เช่น
01/06/2008
01/07/2008
01/08/2008
02/06/2008
02/07/2008
02/08/2008
03/06/2008 ....

ผมลองใช้ฟังก์ชั่น CDate แปลงแล้ว แต่ติดตรงที่ข้อมูลบางตัวยูสเซอร์อาจจะ
คีย์ข้อมูลเอาไว้ผิด เช่น 31/06/2008 ทำให้เวลารันคิวรี่มันขึ้นว่า
"Data type mismatch" ครับ ข้อมูลมีเป็นหมื่นเร็คคอร์ด หาลำบาก
มีวิธีการตรวจเช็คหรือเรียงลำดับข้อมูลมั๊ยครับ

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

1 @R00502
ผมใช้ฟิลด์ Text เก็บข้อมูลเป็นวัน/เดือน/ปี ครับ
ปัญหาก็คือเวลาเรียงลำดับในคิวรี่ มันจะเรียงตามวันที่ก่อน เช่น
01/06/2008
01/07/2008 ........

??? แล้วมันจะเป็นปัญหาได้อย่างไร มันก็ "เรียงตามวันที่ก่อน" ไม่ใช่เหรอ หรือต้องการเรียงอย่างไร

???ส่วนข้อความนี้
แต่ติดตรงที่ข้อมูลบางตัวยูสเซอร์อาจจะ คีย์ข้อมูลเอาไว้ผิด เช่น 31/06/2008 ......
???น่าจะขัดแย้งกับบรรทัดแรก คุณเก็บ วัน/เดือน/ปี   เค้าคีย์มา อย่างนี้ ก็ถูกอีกล่ะ แล้วมันเป็นปัญหาอย่างไร

ขอให้ทบทวนคำถามใหม่ครับ ผมเองเหมือนๆ จะเข้าใจปัญหาแต่ว่าไม่กล้าแนะนำ เพราะ
1 ...แน่ใจ.......ว่าคุณเขียนโจทย์ผิดบางช่วง
2 ..ไม่แน่ใจ... ว่าช่วงไหน ที่ผิด
2 @R00503
เดือน 6 มี 30 วันครับ
3 @R00505
1. ต้องการให้เรียง วัน/เดือน/ปี ครับ
01/06/2008
02/06/2008
03/06/2008
01/07/2008
02/07/2008
03/07/2008
01/08/2008 ....

2. เหมือนคุณ Andy บอกครับ เดือน 6 มี 30 วันครับ
4 @R00506
เอ... แล้วทำไมถึงใช้ฟิลด์ text เก็บข้อมูลแบบวันที่ครับ

5 @R00507
ก็ไม่แตกต่างจากคำถามนี้สักเท่าไหร่

http://www.thai-access.com/yeadram_view.php?topic_id=94

วิธีการทำก็แบบเดียวกันคือ ก็สร้างฟิลด์ในคิวรี่เพิ่มอีก 1 ฟิลด์ สมมุติตั้งชื่อเป็น SortField โดยให้มีค่าของฟิลด์เป็น

SortField : Right$(ชื่อฟิลด์วันที่,4) & Mid$(ชื่อฟิลด์วันที่,4,2) & Left$(ชื่อฟิลด์วันที่,2)

แล้วก็ให้เรียงลำดับตามฟิลด์นี้ เท่านี้แหล่ะครับ

หมายเหตุ : ฟังก์ชั่นนี้กำหนดตำแหน่งของวันเดือนปีที่แน่นอนตายตัว ดังนั้นต้องแน่ใจว่าข้อมูลอยู่ในรูปแบบ วัน2หลัก เดือน2หลัก และปี4หลักเสมอ , ส่วนเรื่องการป้อนวันที่ผิด ก็ต้องเขียนคำสั่งตรวจสอบเอาเองเข้าไปในฟอร์มแหล่ะครับ ไม่ก็เปลี่ยน DataType เป็น Date/Time น่าจะง่ายกว่า

6 @R00509
ขอบคุณทุกท่านมากครับ
เรียงตามที่คุณสันติสุขแนะนำก็ง่ายดีนี่หน่า ผมก็ดันพยายามให้แปลงให้เป็น
วันที่อยู่นั่นแหละ ใช้แปลงเป็นจูเลี่ยนเดท ก็ยังไม่ได้
เข้าใจว่าน่าจะมีบางเร็คคอร์ดที่ยูสเซอร์คีย์เอาไว้ผิด
ทำให้แปลงไม่ได้ ส่วนที่ว่าทำไมผมใช้ฟิลด์เก็บข้อมูลแบบวันที่เหรอครับ
มันเป็นความเคยชินนะครับ จำไม่ได้แล้วว่าผมเคยเขียนอะไรสักอย่าง
แล้วเกิดปัญหา ในการนำข้อมูลไปคิวรี่ในภายหลัง เลยเคยชินในการ
เก็บข้อมูลแบบเท็กซ์ไฟล์ ครับ ค่อนข้างจะเขียนแบบลูกทุ่งซักหน่อย....

ขอบคุณอีกครั้งครับ...

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