การแปลง ตัวอักษร เป็นตัวเลข ใน Crosstab Query
ปัญหาอย่างหนึ่งในการการส่งออกข้อมูล จากฐานข้อมูลเป็น ไฟล์ XML ก็คือเรื่อง data type เพราะ XML ไฟล์ ส่งออกข้อมูลออกมาในลักษณะ Text เท่านั้น แม้ข้อมูลในฐานข้อมูลเดิมจะเป็นประเภท Integer หรือ ตัวเลขประเภท อื่น ๆ ก็ตาม ปัญหาที่ตามมาก็คือ ถ้าจะมีการนำมาคำนวณ หรือจัดการด้านตัวเลข ค่าอาจจะผิดพลาดได้ เช่น การหาค่าสูงสุด หรือต่ำสุด เพราะการเรียนแบบ Text กับการเรียงแบบตัวเลข จะไม่เหมือนกัน
ถ้าเรียงแบบ Text ตัวเลข 2 จะมากกว่า 100
ถ้าเรียงแบบ ตัวเลข ค่าตัวเลข 2 จะน้อยกว่า 100
ข้อมูลข้างล่างนี้ สมมุติว่าเอาเข้ามาจาก XML โดยมี Data Type เป็น Text
การแก้ปัญหาง่าย ๆ คือ เปลี่ยน Data Type ของฟิลด์ จำนวนรวม ให้เป็น Number เสียก่อน แล้วจึงจัดการด้านการคำนวณต่อไป
ถ้านำข้อมูลเดิม มาจัดทำ Crosstab Query เพื่อดูว่า ใคร ซื้อสินค้าอะไร ไปจำนวนสูงสุดเท่าไร
จากข้อมูล จะเห็นว่า
ถ้าเรียงแบบ Text ตัวเลข 2 จะมากกว่า 100
ถ้าเรียงแบบ ตัวเลข ค่าตัวเลข 2 จะน้อยกว่า 100
ข้อมูลข้างล่างนี้ สมมุติว่าเอาเข้ามาจาก XML โดยมี Data Type เป็น Text
การแก้ปัญหาง่าย ๆ คือ เปลี่ยน Data Type ของฟิลด์ จำนวนรวม ให้เป็น Number เสียก่อน แล้วจึงจัดการด้านการคำนวณต่อไป
ถ้านำข้อมูลเดิม มาจัดทำ Crosstab Query เพื่อดูว่า ใคร ซื้อสินค้าอะไร ไปจำนวนสูงสุดเท่าไร
จากข้อมูล จะเห็นว่า
- สมหมาย ซื้อปากกาจำนวนมากที่สุด คือ จำนวน 100 แท่ง
- ประกอบ ซื้อดินสอมากที่สุด คือ 100 แท่ง
วิธีการแก้ปัญหา ก็คือ สั่งเปลี่ยน Data Type โดยใช้ฟังก์ชัน CInt() เปลี่ยนเป็น ตัวเลขจำนวนเต็ม เพราะการซื้อสินค้า คงซื้อเป็นจำนวนเต็ม ไม่มีทศนิยมแน่นอน ดังนี้
ข้อควรระวังอย่างหนึ่ง ในการแปลงตัวอักษรเป็นตัวเลข ด้วยคำสั่ง CInt() CDbl() หรืออื่น ๆ ก็คือ ถ้าข้อมูลเดิม ไม่ใช่ตัวเลข แต่เป็นตัวอักษร เช่น เครื่องหมาย - เป็นต้น โปรแกรม Access จะไม่สามารถทำงานได้ และจะแสดงข้อผิดพลาด ดังนี้
ความคิดเห็น
แสดงความคิดเห็น