ข้อมูล ข้อมูล และข้อมูล – หากไม่มีข้อมูลแล้ว ฐานข้อมูลก็แทบจะไร้ประโยชน์ ดังนั้นจึงไม่น่าแปลกใจที่หนึ่งในคำถามที่พบบ่อยที่สุดเกี่ยวกับการนำข้อมูลเข้าสู่ตาราง Access ของคุณคือ – ฉันจะทำให้ชีวิตง่ายขึ้นได้อย่างไรเมื่อต้องนำเข้าไฟล์จำนวนมาก (และจำนวนมาก!) เป็นประจำ? เนื่องจากเป็นงานทั่วไป จึงมีหลายวิธีที่จะจัดการกับงานนี้ แต่ในที่นี้เราจะมาดูเพียงวิธีเดียว – ซึ่งในความคิดของผมคือวิธีที่ง่ายที่สุด – โดยเฉพาะอย่างยิ่งหากคุณทำสิ่งนี้เป็นประจำ หรือแม้แต่กำหนดเวลาไว้ล่วงหน้า การวางแผนเล็กน้อย (และผมหมายถึงเล็กน้อยจริงๆ!) และเวทมนตร์ VBA เล็กน้อย คุณก็พร้อมแล้ว – อ่านต่อเพื่อเริ่มต้น…
นำเข้าไฟล์ Excel ทั้งหมดในโฟลเดอร์
สำหรับบทความนี้เราจะดูการนำเข้าไฟล์ Excel จำนวนหนึ่งภายในโฟลเดอร์ที่กำหนด แต่คุณสามารถนำเข้าไฟล์ csv และอื่น ๆ ได้อย่างง่ายดายเราจะพูดถึงวิธีการเปลี่ยนรหัสเพื่อจัดการไฟล์ csv ในไม่ช้า
ก่อนอื่นให้กำหนดสิ่งที่เราต้องการให้โค้ดทำ:
“ เราต้องการนำเข้าไฟล์ทั้งหมดจากโฟลเดอร์ที่กำหนดไปยังตารางที่มีอยู่ - เราต้องการระบุด้วยว่าไฟล์นั้นมีบรรทัดส่วนหัวหรือไม่”
ดูเหมือนง่ายพอสมควรลองดูรหัสเพื่อทำสิ่งนี้:
Sub ImportfromPath(path As String, intoTable As String, hasHeader As Boolean) Dim fileName As String 'Loop through the folder & import each file fileName = Dir(path & "\*.xls") While fileName <> "" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, intoTable, path & fileName, hasHeader 'check whether there are any more files to import fileName = Dir() Wend End Sub
กำลังตรวจสอบปัญหา ...

ตกลง - สิ่งแรกก่อน เพื่อให้โค้ดใช้งานได้ในสถานการณ์ต่างๆให้มากที่สุดเราจะขอชื่อพา ธ (ที่เก็บไฟล์) ชื่อของตารางที่คุณต้องการนำเข้าไฟล์เหล่านี้และไฟล์ในโฟลเดอร์นี้ทั้งหมดมีหรือไม่ ส่วนหัวหรือไม่ (เช่นชื่อฟิลด์ปรากฏในแถวแรกของสเปรดชีต)
คุณจะสังเกตเห็นว่าส่วนของโค้ดที่ค้นหาไฟล์ - Dir (path &“ \ *. xls”) - ต่อท้ายสัญลักษณ์แทนและนามสกุลไฟล์ในพา ธ ที่ให้มา ฉันพูดถึงสิ่งนี้เพราะมันจะง่ายมากในการแก้ไขโค้ดตัวอย่างเช่นหากคุณต้องการนำเข้าเฉพาะไฟล์ที่ตรงกับรูปแบบการตั้งชื่อที่เฉพาะเจาะจงเท่านั้น (เช่นไฟล์ทั้งหมดที่มี "มกราคม" หรือ "2017" เป็นส่วนหนึ่งของชื่อไฟล์ ). คุณสามารถเพิ่มตัวกรองนั้นเป็นพารามิเตอร์ให้กับการเรียกรูทีนย่อยได้หากต้องการ
อย่างไรก็ตามหากไฟล์ตรงกับเกณฑ์ที่กำหนด (ไฟล์ ".xls" ใด ๆ ในโฟลเดอร์โดยใช้กรณีนี้) ไฟล์นั้นจะพยายามอิมพอร์ตไฟล์นั้นทันทีโดยใช้คำสั่ง TransferSpreadsheet
จะเปลี่ยนรหัสที่ไหนให้เหมาะกับความต้องการของคุณ ...
ณ จุดนี้คุณสามารถแก้ไขโค้ดเพื่อที่ว่าแทนที่จะนำเข้าสเปรดชีตมันจะนำเข้าไฟล์ csv (โดยใช้คำสั่ง“ TransferText”) เป็นต้น
จากนั้นโค้ดจะวนซ้ำจนกว่าจะไม่มีไฟล์อื่นที่จะนำเข้าในโฟลเดอร์นั้น
เป็นโค้ดชิ้นเล็ก ๆ แต่เป็นโค้ดที่คุณจะต้องใช้ซ้ำแล้วซ้ำเล่าฉันแน่ใจ!
บทนำผู้เขียน:
Mitchell Pond เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซมความเสียหายของ SQL และผลิตภัณฑ์ซอฟต์แวร์กู้คืน excel ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.