แปลง Data Type Text (ที่ค่าเป็นตัวเลข) ให้เป็น Data Type Number (ที่เป็นค่าตัวเลขจริง ๆ) ได้อย่างไร
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 1,389   3
URL.หัวข้อ / URL
แปลง Data Type Text (ที่ค่าเป็นตัวเลข) ให้เป็น Data Type Number (ที่เป็นค่าตัวเลขจริง ๆ) ได้อย่างไร

คือผม Import Excel File เข้ามา แล้วมันเป็นText ในตอนแรก เช่น 
 35           มันมี Space ข้างหน้า 1 วรรค 
  45          มันมี Space ข้างหน้า 2 วรรค  
   60         มันมี Space ข้างหน้า 3 วรรค 
ก่อนที่จะ import ผมแปลง Cell นั้น จาก Genaral เป็น Number แล้ว  
แล้วพอ import เข้ามาใน Access มันก็เข้ามาเป็น Text แล้วไอ้เจ้า Space มันก็เข้ามาตามด้วย 
พอผมเปลี่ยน Data Type จาก Text เป็น Number  เลขที่มีอยู่มันหายไปเลยครับ  
ทำยังไงผมถึงจะ import ค่าเหล่านั้นเข้ามาเป็น number ได้ครับ  
หรือว่า ทำยังไงใน Access ที่เราสามารถแปลง Data Type จาก Text เป็น Number โดยที่ ค่าเหล่านั้นยังอยู่ 

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

1 @R00567
ไม่ทราบว่าเป็นตัวเลขจำนวนเต็มทั้งหมด หรือว่าเป็นทศนิยมด้วย เราสามารถจะเลือกจัดการกับคอลัมน์นี้ได้ทั้งใน Excel ก่อนนำเข้า หรือ เมื่อนำเข้ามาใน Access แล้วก็ได้ครับ ถ้าทำใน Excel ถ้าเป็นจำนวนเต็มทั้งหมด ให้ใช้ Int() เข้าช่วย เช่น ช่อง A เป็นช่องเก็บข้อมูลที่มีช่องว่างข้างหน้า ให้ใส่ช่อง B1 (อาจเป็นช่องอื่นที่ว่างอยู่) ด้วย =INT(A1) A B 35 35 45 45 60 60 จากนั้นให้ Copy ช่อง B1 นี้ไปวางในช่อง B2, B3, B4, ..., Bn โดยการลากดำ แล้วกด Enter จะเป็น copy สูตรใส่ให้ทุกช่อง จากนั้นให้ลากดำข้อมูลช่อง B ให้หมด แล้ว copy จากนั้นให้เอาเคอร์เซอร์ไปวางในช่องถัดไป คือ C แล้วไปที่เมนู Edit>Paste Special...>เลือก Values ในช่อง Paste เพื่อให้ paste แบบไม่มีสูตรติดมาด้วย จากนั้นให้ copy ข้อมูลจากช่อง c แล้วนำมา paste แทนข้อมูลในช่อง A หลังจากนั้นก็โอนเข้าไปใน Access ได้ อย่าลืมให้ copy ข้อมูลใน Excel นี้ไว้ก่อนที่จะทำตามขั้นตอนที่ผมได้แนะนำไปข้างต้น กันผิดพลาดครับ ส่วนถ้าเป็นใน Access ก็ใช้ Update Query ช่วย จาก SQL ข้างล่าง สมมติว่าตารางที่นำเข้าจาก Excel ชื่อ Sheet1 และฟีลด์ชื่อ Field1 คือฟีลด์ที่ต้องการจะแปลงให้เป็นตัวเลข จะได้ SQL ดังนี้ UPDATE Sheet1 SET Sheet1.Field1 = CInt([Field1]);
2 @R00572
เรียนอาจารย์ ผมลองทำแบบที่อาจารย์แนะนำแล้วนครับ แต่ว่ามันทำได้เฉพาะเลข Int แล้วถ้าเป็นเลข ที่มีจุดทศนิยมละครับ ผมลอง Update ผ่าน Query โดยลองสร้าง Field ขึ้นมาใหม่ แล้วตั้ง Data Type เป็น Doble แล้วลอง Update เข้าไปมัน Error ครับ สมมุตินะครับ Table : Sheet1 Field1 คือ Text xx35.00 (xx คือมี space อยู่ 2 เคาะ) ผมสร้าง Field2 เป็น Double แล้วผม Update Query UPDATE Sheet1 SET [Sheet1].Field2 = [Sheet]![Field1]; มันขึ้น Error ว่า Microsoft Access didn't update 139 fields due to a type conversion failure, 0 due to key violation.....
3 @R00573
ใช้นี่แทนครับ UPDATE Sheet1 SET Sheet1.Field1 = CDbl([Field1]);
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0599s