กระทู้เก่าบอร์ด อ.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" ครับ ข้อมูลมีเป็นหมื่นเร็คคอร์ด หาลำบาก
มีวิธีการตรวจเช็คหรือเรียงลำดับข้อมูลมั๊ยครับ
ปัญหาก็คือเวลาเรียงลำดับในคิวรี่ มันจะเรียงตามวันที่ก่อน เช่น
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
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 วันครับ
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 น่าจะง่ายกว่า
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
ขอบคุณทุกท่านมากครับ
เรียงตามที่คุณสันติสุขแนะนำก็ง่ายดีนี่หน่า ผมก็ดันพยายามให้แปลงให้เป็น
วันที่อยู่นั่นแหละ ใช้แปลงเป็นจูเลี่ยนเดท ก็ยังไม่ได้
เข้าใจว่าน่าจะมีบางเร็คคอร์ดที่ยูสเซอร์คีย์เอาไว้ผิด
ทำให้แปลงไม่ได้ ส่วนที่ว่าทำไมผมใช้ฟิลด์เก็บข้อมูลแบบวันที่เหรอครับ
มันเป็นความเคยชินนะครับ จำไม่ได้แล้วว่าผมเคยเขียนอะไรสักอย่าง
แล้วเกิดปัญหา ในการนำข้อมูลไปคิวรี่ในภายหลัง เลยเคยชินในการ
เก็บข้อมูลแบบเท็กซ์ไฟล์ ครับ ค่อนข้างจะเขียนแบบลูกทุ่งซักหน่อย....
ขอบคุณอีกครั้งครับ...
เรียงตามที่คุณสันติสุขแนะนำก็ง่ายดีนี่หน่า ผมก็ดันพยายามให้แปลงให้เป็น
วันที่อยู่นั่นแหละ ใช้แปลงเป็นจูเลี่ยนเดท ก็ยังไม่ได้
เข้าใจว่าน่าจะมีบางเร็คคอร์ดที่ยูสเซอร์คีย์เอาไว้ผิด
ทำให้แปลงไม่ได้ ส่วนที่ว่าทำไมผมใช้ฟิลด์เก็บข้อมูลแบบวันที่เหรอครับ
มันเป็นความเคยชินนะครับ จำไม่ได้แล้วว่าผมเคยเขียนอะไรสักอย่าง
แล้วเกิดปัญหา ในการนำข้อมูลไปคิวรี่ในภายหลัง เลยเคยชินในการ
เก็บข้อมูลแบบเท็กซ์ไฟล์ ครับ ค่อนข้างจะเขียนแบบลูกทุ่งซักหน่อย....
ขอบคุณอีกครั้งครับ...
Time: 0.3332s
ปัญหาก็คือเวลาเรียงลำดับในคิวรี่ มันจะเรียงตามวันที่ก่อน เช่น
01/06/2008
01/07/2008 ........
??? แล้วมันจะเป็นปัญหาได้อย่างไร มันก็ "เรียงตามวันที่ก่อน" ไม่ใช่เหรอ หรือต้องการเรียงอย่างไร
???ส่วนข้อความนี้
แต่ติดตรงที่ข้อมูลบางตัวยูสเซอร์อาจจะ คีย์ข้อมูลเอาไว้ผิด เช่น 31/06/2008 ......
???น่าจะขัดแย้งกับบรรทัดแรก คุณเก็บ วัน/เดือน/ปี เค้าคีย์มา อย่างนี้ ก็ถูกอีกล่ะ แล้วมันเป็นปัญหาอย่างไร
ขอให้ทบทวนคำถามใหม่ครับ ผมเองเหมือนๆ จะเข้าใจปัญหาแต่ว่าไม่กล้าแนะนำ เพราะ
1 ...แน่ใจ.......ว่าคุณเขียนโจทย์ผิดบางช่วง
2 ..ไม่แน่ใจ... ว่าช่วงไหน ที่ผิด