Import CSV into Access Table
กระทู้เก่าบอร์ด อ.Yeadram

 5,121   11
URL.หัวข้อ / URL
Import CSV into Access Table

รบกวนผู้รู้ทุกท่านค่ะ
คือมี text file .csv ที่มีจำนวน column >255 แล้วทีนี้อยาก import เข้ามาใน access จะต้องใช้ในการทำงานหน่ะค่ะ
ใครมี code หรือ วิธีแนะนำบ้างมั๊ยคะ T^T

ปล. อาจจะเป็นในลักษณะ แบ่งเป็น 2 table แต่มี key link ให้ ก็ได้ค่ะ
หรืออาจะเป็นลักษณะ เลือก import เอาเฉพาะ column ที่เราต้องการก็ได้ค่ะ

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

1 @R13697
ไม่มีใครเข้ามาโพสต์อะไรเลย ทำอะไรผิดขั้นตอนหรือป่าวเนี่ย
2 @R13698
ไฟล์ นามสกุล .csv ไม่รู้จักครับ อ่านคำถามแล้ว มันก็แค่ Import เข้ามา ก็ไม่น่ายาก เพียงแต่ไม่ทราบว่า ไฟล์นามสกุลนี้ import ได้หรือเปล่า
แต่มาอ่านตรง ปล.ยิ่ง งง ว่าทำอะไร เกรงว่า ถามรายละเอียดไปแล้ว ทำไม่ได้เลยรอ อาจารย์มาตอบ
ควรลองทำไปเรื่อยๆ หรือ อธิบายเพิ่มขึ้นมา พอ อาจารย์ว่าง เดี๋ยวท่านก็เข้ามาตอบครับ คนถามเยอะคนตอบน้อย ใจเย็นๆ ครับ
3 @R13701
อธิบาย File .csv
CSV = Comma Separated Value
ที่จริงเป็น text file ธรรมดา แต่วางโครงสร้างไว้ว่าจะมีเครื่องหมาย comma (ลูกน้ำ) คั่นข้อมูลแต่ละค่า
ซึ่ง Excel สามารถอ่าน file แบบนี้แล้วแปลงข้อมูลแยกลง cell ได้เลย
ส่วน Access ก็สามารถอ่าน file แล้วแยกข้อมูลแต่ละค่าออกมาเป็นค่าใน field ได้เช่นกัน

สาเหตุที่ไม่ได้ตอบ
เนื่องจากที่จริงเวลาเลือก import ข้อมูลเราสามารถ check box ได้ว่าจะ import field ใดหรือไม่ได้ ซึ่งจุดนี้(เดาว่า)ผู้ถามน่าจะรู้อยู่แล้ว แล้วปัญหามันอยู่ตรงไหนกันแน่ หรือเป็นเพราะว่า เมื่อมี column มาก ตัว import wizard ไม่ยอมทำงาน? อันนี้ไม่ทราบเหมือนกัน ก็เลยคิดว่าจะทดลองสร่้าง file ที่มี column มากกว่า 255 ขึ้นมา แต่เวลาไม่อำนวย จึงไม่ได้กระทำการใดๆต่อครับ

หากให้แนะนำเลย
ก็คงแนะนำว่า เปิด file ด้วย Excel ก่อน แล้วตัด column ตาม table ที่อยากให้เป็น แยก sheet หรือแยก file เลยก็ได้ แล้วค่อย import
ไม่เช่นนั้นก็คงต้องเขียน code อ่านทีละ cell ซึ่งจะคุ้มค่าก็ต่อเมื่อต้องทำบ่อยๆ
4 @R13703
ปัญหาน่าจะเป็นที่ข้อจำกัดของ Excel
- Excel ไม่สามารถมีคอลัมน์ได้มากกว่า 254 คอลัมน์ได้ ดังนั้น แม้จะสามารถเปิดไฟล์ csv ตัวปัญหานี้ได้ แต่ก็จะไม่สามารถมองเห็นได้ครบทุกคอลัมน์
- ไม่เคยได้ลองได้รู้มาก่อน ว่ามันจะยากเย็นเพียงนี้ อยากรู้วิธีทำเช่นกัน อยากลองทำเช่นกัน แต่ไม่มีตัวอย่างไฟล์ให้ทำการทดสอบ (ไฟล์ที่มีจำนวนคอลัมน์เยอะๆ อย่างนั้น) พอจะตัดทอนตัวอย่าง ให้เหลือจำนวนเรคคอร์ดน้อยลง แล้วส่งมาให้ทดลองได้ไหมครับ

ถ้าสามารถส่งได้ ช่วยส่งไปที่ gmail นะครับ
ขอบคุณครับ
5 @R13705
ผมใช้ Excel 2007 อยู่
column มีได้ถึง 16,384 column ครับ
6 @R13710
ขอบคุณ คุณUn & อ.PichaiTC & คุณyeadram สำหรับคำแนะนำ
ขอเพิ่มเติมคำถามที่บอกว่ายังไม่ละเอียดนะคะ
     1. ปัญหามันอยู่ตรง ตัว import wizard มันสามารถให้เลือกได้ว่าจะ import field ใด แต่นั่นคือภายใน column 1- 255 ที่เหลือไม่ให้เลือกค่ะ และไม่ใช่ว่า สมมุติ column ที่ 1- 100 เราเลือกที่จะไม่ import ตัว wizard ก็ไม่ได้ขยับเอาตัวที่ 256 -356 มา แทนที่นะคะ มันจะ import เข้ามาให้แค่ 155 column จาก 255 (ของ column แรก)เท่านั้น
7 @R13711
     2. ไฟล์ .CSV ที่ได้มามันจะมีภาษาอื่นที่ไม่ใช่ภาษาอังกฤษด้วยเวลาเปิดผ่านตัว Excel มันจะแสดงเป็นภาษาต่างดาวค่ะ (ปกติ ถ้าจำนวน record ไม่มาก ( มากกว่า 255 column) ต้อง import จะเปลี่ยนให้เป็น UTF-8 ก่อนค่ะ)
     3. อยากได้ code อ่านทีละ cell ค่ะ เพราะต้องทำเป็น mothly report ส่งหัวหน้า แล้วจำนวนของ record มีเป็นหลักแสน พยายามมาหลายวิธีแล้วยังไม่ได้เลยคะ
     4. สามารถส่งไฟล์ตัวอย่างให้ดูได้ ขอเมล์ด้วยค่ะ
8 @R13713
mail ประจำ board นี้
accboard@gmail.com ครับ

ฝากคุณ yeadram ปรับแก้หน้า home ให้เห็น mail ได้ถูกต้อง (ตอนนี้แสดงเป็น accboard_gmail.com อยู่ครับ) และดูเด่นกว่านี้ เพราะไม่ค่อยมีใครอ่านหรือเห็นกันครับ
9 @R13719
ส่งไฟล์ตัวอย่างไปให้แล้วนะคะ
ขอบคุณมากค่ะสำหรับความกรุณา
10 @R13771
สวัสดีครับ เพิ่งมีโอกาสโหลดไฟล์มาทดสอบ

ไฟล์ที่ผมได้รับมา หลังจากทดสอบตรวจทานดู มีข้อสงสัยครับ
บรรทัดแรก (ผมใช้สคริปต์ตรวจนับเอา) มีแค่ 318 ฟิลด์ ซึ่งผมเดาว่า น่าจะเป็นชื่อฟิลด์
ส่วนบรรทัดอื่นๆ (อีก 14 บรรทัด) มีจำนวนฟิลด์ ถึง 321 ฟิลด์

มันต่างกันอยู่ 3 ฟิลด์
ตรวจสอบ หรือคลายข้อสงสัยด้วยครับ
11 @R13789
ตอบคุณ yeadram นะคะ

จากที่ตรวจข้อมูล เข้าใจว่าคุณ yeadram คงจะทำการแบ่ง column ด้วยตัว ',' แต่เนื่องจากข้อมูล ในบาง column มีการเก็บค่าที่มีตัว ',' ร่วมอยู่ด้วย จึงเกิดการแบ่งเป็นอีก 1 column หน่ะค่ะ

ยกตัวอย่าง ฟิลด์ Modified มีค่าเป็น Pholpat Jainkiatfu, 08/20/2012 17:04:50 เป็นต้น

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