ตัวเลขและสตริงที่เก็บไว้ในเขตข้อมูลข้อความสั้น (ข้อความ) หรือข้อความยาว (บันทึกช่วยจํา) ใน Access จะเรียงลําดับตามตัวอักษร กล่าวอีกนัยหนึ่งตัวเลขจะถูกเรียงลําดับตามตัวเลขแต่ละหลักที่ประกอบเป็นค่าแทนที่จะเป็นค่าตัวเลข ตัวอย่างเช่น ค่า 11 จะปรากฏก่อน 2 และค่า 12 จะปรากฏก่อนค่า 3 ดังที่แสดงในตารางต่อไปนี้
ชื่อนักเรียน |
หมายเลขนักเรียน |
John |
1 |
Maria |
10 |
วิลเลียม |
11 |
Mary |
1.2 |
เจน |
2 |
ลินน์ |
3 |
เจสัน |
4 |
Mary |
5 |
เมื่อต้องการตรวจสอบให้แน่ใจว่าตัวเลขถูกเรียงลําดับโดยยึดตามค่าตัวเลขแทนที่จะเรียงลําดับตามตัวอักษร ให้เลือกทําอย่างใดอย่างหนึ่งต่อไปนี้:
-
ถ้าเขตข้อมูลมีค่าตัวเลขเท่านั้น ให้พิจารณาเปลี่ยนชนิดข้อมูลของเขตข้อมูลเป็นตัวเลขหรือสกุลเงิน
-
ใช้ขั้นตอนต่อไปนี้ถ้า:
-
เขตข้อมูลมีค่าตัวเลขเท่านั้น แต่คุณไม่ต้องการเปลี่ยนชนิดข้อมูลของเขตข้อมูล
-
เขตข้อมูลมีค่าตัวเลขและสตริง แต่คุณต้องการละเว้นค่าสตริงเมื่อเรียงลําดับ
-
ขั้นตอนนี้ใช้ฟังก์ชัน Val เพื่อรับค่าตัวเลขของตัวเลขที่จัดเก็บเป็นข้อความ นิพจน์ยังใช้ฟังก์ชัน IIf เพื่อจัดการค่า Null ที่อาจอยู่ในเขตข้อมูลการเรียงลําดับ
-
บนแท็บ หน้าแรก ในกลุ่ม เรียงลําดับ & ตัวกรอง ให้คลิก ขั้นสูง แล้วคลิก ตัวกรอง/เรียงลําดับขั้นสูง บนเมนูทางลัด
-
พิมพ์นิพจน์ Expr1: IIf([ชื่อเขตข้อมูล] Is Null, 0, Val([ชื่อเขตข้อมูล])) ในแถว เขตข้อมูล ในคอลัมน์แรก
ฟังก์ชัน IIf จะตรวจสอบเพื่อดูว่าค่าเขตข้อมูลเป็น Null หรือไม่ ถ้าเป็นเช่นนั้น จะถือว่าเป็น 0 หรือไม่ ถ้าค่าไม่ใช่ Null ฟังก์ชัน IIf จะเรียกใช้ฟังก์ชัน Val เพื่อรับค่าตัวเลขที่เทียบเท่ากัน
-
ในเซลล์ เรียงลําดับ ให้เลือก จากน้อยไปหามาก หรือ จากมากไปหาน้อย
การเรียงลําดับจากน้อยไปหามากจะแสดงระเบียนที่มีค่าน้อยที่สุดอยู่ด้านบน และระเบียนที่มีค่ามากที่สุดที่ด้านล่าง การเรียงลําดับจากมากไปหาน้อยจะตรงกันข้าม
-
บนแท็บ หน้าแรก ในกลุ่ม เรียงลําดับ & ตัวกรอง ให้คลิก สลับตัวกรอง
ถ้าขั้นตอนก่อนหน้าไม่ได้ผลสําหรับคุณ มีวิธีอื่นที่คุณสามารถลองทําได้เพื่อหลีกเลี่ยงการเปลี่ยนแปลงโครงสร้างของตาราง ซึ่งเกี่ยวข้องกับค่า "ช่องว่างภายใน" ที่มีตัวเลขน้อยกว่าด้วยเลขศูนย์นําหน้า ตัวอย่างเช่น คุณเปลี่ยนค่า 11, 2, 2000 และ 3 เป็น 0011, 0002, 2000 และ 0003 ก่อนที่คุณจะนําการเรียงลําดับไปใช้