Import ข้อมูลเข้า Access ปกติก็ไม่ยากอยู่แล้ว คือแค่คลิกไม่เท่าไหร่ก็สามารถนำเข้าตารางใน Access ได้แล้ว แต่มีปัญหาว่า ถ้าต้องนำเข้าข้อมูลเดิมซ้ำ ๆ เข้ามาสู่ตารางใน Access บ่อย ๆ จะมีวิธีลัดขั้นตอนหรือไม่? เพราะการนำเข้าข้อมูลไม่ยากก็จริง แต่ถ้าเป็นการทำสเต็ปเดิมซ้ำ ๆ เสียเวลาในการนำเข้าข้อมูลก็อยากได้วิธีที่ง่ายดายกว่าเดิม
Import ข้อมูลเข้า Access
สมมติว่า เราต้องนำ Text File จำนวน 3 file เข้าสู่ตารางใน Access มันจะมีขั้นตอนอะไรบ้าง? จะลองยกตัวอย่างการนำ C.txt เข้าเป็นตาราง C ใน Access วิธีการนำเข้าตารางก็คือ
- คลิก External Data > New Data Sauce > From File > Text File
- เลือกไฟล์ C.txt และเลือก import a source data to a new… (แต่ถ้าเลือกเข้าตารางที่มีอยู่แล้ว ก็เลือก Append…)
- เลือก Delimited คลิก Next (เพราะจะนำเข้าแบบมีตัวคั่น)
- ถ้าที่ text file ที่จะนำเข้ามีหัวคอลัมน์ติดมาด้วย ให้เลือก Column Contains Field Names แต่ในตัวอย่างนี้ไม่มีหัวตาราง
- เนื่องจาก c.txt ไม่มีหัวตาราง จึงต้องมาตั้งชื่อตารางและกำหนด Type ของข้อมูลใน field นั้นด้วย
- คลิก เลือกไม่เอา primary key (หรือจะเอาก็ได้ แล้วแต่) คลิก Next คลิก Finish
จะเห็นว่าไม่ยากหรอก เพียงแค่มันเสียเวลาปรับแต่งเล็กน้อยตอนนำเข้า บางตาราง อาจจะต้องเข้า Advance อย่างเช่น Language เป็น All และเลือก Code Page เป็น UTF-8 แล้วก็จะมีพวกวันที่ซึ่งจะต้องเปลี่ยนให้เป็น YMD (ปีเดือนวัน) เพราะทางต้นฉบับทำออกมาแบบนั้น บางตารางก็เป็น MDY (เดือนวันปี) ซึ่งต้องมาเลือกรูปแบบทุกครั้งที่นำเข้า งานที่ไม่ยาก แต่มีเรื่องปลึกย่อยต้องทำซ้ำ ๆ กันหลายไฟล์ และมีรายละเอียดปลีกย่อยต่างกันไป การนำเข้าด้วยวิธีนี้จึงออกจะน่าเบื่อเล็กน้อย มันคงดีกว่าถ้าสามารถคลิกเดียวแล้วนำเข้าข้อมูลได้เลย
เอาจริงมันทำได้ และไม่ยากด้วย
สร้าง Macro
ถ้าใครจำได้ เวลาเรา import ไฟล์เข้ามาสู่ตารางใดใดก็ตาม ขั้นสุดท้ายมันจะมีขึ้นให้ติ๊กว่าจะ Save Import Steps หรือไม่
อันนี้แหละที่ช่วยได้มาก ถ้าเราต้องทำอะไรซ้ำ ๆ เดิม ๆ หมายถึง ถ้าเราต้องนำเข้าตารางชื่อเดิม เก็บไว้ที่เดิม คือทุกอย่างเหมือนเดิมหมด แค่จะทำซ้ำมันอีกรอบก็เพียงแค่ติ๊กถูกตรงนี้ไว้ มันจะเก็บสเต็ปที่เราจัดการกับไฟล์นี้ทั้งหมด โดยที่เราไม่ต้องทำอะไรเลย ขอแค่ติ๊กถูกตรง Save Import Steps เพื่อเก็บขั้นตอนต่าง ๆ ไว้ก็แล้วกัน
เมื่อตั้งชื่อเสร็จแล้วเรียบร้อย ต่อไป ถ้าอยากใช้งาน ก็แค่ไปที่แท็บ External Data คลิกที่เมนู Saved Imported เลือกที่เราตั้งชื่อเก็บไว้ แล้วกด Run ข้างล่าง แค่นี้เอง ง่ายมาก!
วิธีนี้ใช้งานได้ทั้งการ Import Export ทั้งการนำเข้าแบบนำเข้ามาเป็นตารางใหม่ หรือว่า Append เข้าตารางที่มีอยู่แล้วก็ได้ ขอเพียงแค่ทำขั้นตอนต่าง ๆ แล้วกดติ๊กถูกตรง Save Import Steps (หรือ Save Export Steps ถ้าเป็น export)
สร้างปุ่มอัตโนมัติ
จะลองทำให้ดูอีกสักตัวอย่าง คราวนี้เราจะรวบให้ออกมาเป็น 1 ปุ่ม ให้คลิกทีเดียวนำเข้าทุกตารางได้เลย
เปลี่ยนใหม่ สมมติว่า เรามีตาราง A B C อยู่แล้ว เราจะนำ text file เข้ามายังตารางที่มีอยู่แล้ว วิธีก็จะไม่ต่างจากที่เขียนด้านบน เพียงแต่เปลี่ยนจาก import a source data to a new… ให้เป็น Append to แล้วเลือกตารางที่เป็นเป้าหมายปลายทาง จากนั้นก็ Save Import Steps เอาไว้
ทำให้ครบทั้ง 3 ตาราง จะ Save Import ไว้ในชื่อ Append_A Append_B Append_C
สร้างฟอร์ม
จากนั้นเราจะสร้างฟอร์มให้นำเข้ามา ในที่นี้จะสร้างฟอร์มขึ้นมา 1 ฟอร์ม ตั้งชื่อฟอร์มว่า dashboard โดยไปที่ Create > Form Design
ไปที่แท็บ Design แล้วเพิ่มปุ่ม (Botton) ตั้งชื่อตามใจชอบ ในตัวอย่างตั้งชื่อว่า Imp คลิก Cancel ไปไม่ต้องไปทำอะไรกับมันเพราะเดี๋ยวจะเขียนโค้ดเข้าไปอีกทีหนึ่ง
ที่ปุ่มที่สร้างขึ้น ไปที่ Property แล้วไปที่แท็บ Event เลือก On Click แล้วคลิกที่ สามจุด (…) เพื่อเรียกหน้าต่างเขียนโค้ดขึ้นมา เราจะใส่โค้ดเพื่อ Import ข้อมูลเข้า Access โดยอัตโนมัติ ไม่ต้องไปทำ 5 ขั้นตอนแรกซ้ำ ๆ ให้เหนื่อยใจ
Coding
จากนั้นใส่คำสั่งนี้
DoCmd.RunSavedImportExport ("Append_A")
DoCmd ก็คือ เราจะให้มันรัน Save Import Steps ที่เราเก็บไว้ ซึ่งในที่นี้เราใส่ในชื่อ Append_A และอื่น ๆ ที่เราอยากให้มัน Run
แต่นี่คือคำสั่งให้นำไฟล์เข้าตารางเท่านั้น ถ้าเป็นการนำเข้าต่อกัน ก็ทำเพียงเท่านี้ จบ
แต่ถ้า เป็นการแทนที่ไฟล์เดิม คือต้องลบของเก่าทิ้งเพื่อไม่ให้มีข้อมูลซ้ำเดิม ก็จะต้องเพิ่มคำสั่งเข้าไป คือคำสั่งการลบฐานข้อมูลของ SQL ธรรมดานี่เอง
DoCmd.RunSQL "DELETE * FROM A;"
นี่คือคำสั่งให้ลบข้อมูลทั้งหมดในตาราง A
ดังนั้นเราจะเรียงคำสั่งตามที่ควรจะเป็นก็คือ
DoCmd.RunSQL "DELETE * FROM A;"
DoCmd.RunSavedImportExport ("Append_A")
ทำ Massage Box
ยังไม่พอ คือ ถ้ามันจบไปเฉย ๆ บางทีเราไม่แน่ใจว่ามันทำงานตามคำสั่งเสร็จแล้วหรือยัง (เผื่อต้องรอเวลา ดังนั้นเราจะสั่งให้มันขึ้นข้อความเมื่อ Run คำสั่งต่าง ๆ จบสิ้นแล้ว นั่นก็คือ
MsgBox "เสร็จแล้วจ้ะ"
หน้าตาเมื่อเสร็จเรียบร้อย
ดังนั้น การ Import ข้อมูลเข้า Access ตามตัวอย่าง คือ นำเข้า Text file จำนวน 3 ไฟล์ เข้าตาราง 3 ตาราง โดยลบข้อมูลก่อนหน้า และเพิ่มเข้าไปใหม่ พร้อมกล่องข้อความบอกว่าเสร็จแล้ว จะเขียนโค้ดฝังในปุ่มเพื่อกดสั่งให้ดำเนินการอัตโนมัติ ดังนี้
Private Sub IMP_Click()
DoCmd.RunSQL "DELETE * FROM A"
DoCmd.RunSQL "DELETE * FROM B"
DoCmd.RunSQL "DELETE * FROM C"
DoCmd.RunSavedImportExport ("Append_A")
DoCmd.RunSavedImportExport ("Append_B")
DoCmd.RunSavedImportExport ("Append_C")
MsgBox "เสร็จแล้วจ้ะ Finished บาย"
End Sub
เพียงเท่านี้เอง สาธุชน เรื่องนี้เป็นการขยายต่อจากเรื่อง การสร้าง DMS ใน Access ในส่วนการนำเข้าข้อมูลว่าจะทำง่าย ๆ อย่างไร
Discover more from Data Revol
Subscribe to get the latest posts sent to your email.