ข้อมูลข้อมูลข้อมูล - หากไม่มีฐานข้อมูลก็คงไร้ประโยชน์ จึงไม่แปลกใจที่หนึ่งในมost คำถามที่พบบ่อยเกี่ยวกับการรับข้อมูลนั้นลงในตาราง Access ของคุณคือ - ฉันจะทำให้ชีวิตง่ายขึ้นได้อย่างไรเมื่อต้องนำเข้าไฟล์จำนวนมาก (และจำนวนมาก!) เป็นประจำ เนื่องจากเป็นงานทั่วไปจึงเห็นได้ชัดว่ามีหลายวิธีในการสกินแมวตัวนั้น แต่ที่นี่เราจะดูเพียงวิธีเดียวในความคิดของฉันเป็นวิธีที่ง่ายที่สุดโดยเฉพาะอย่างยิ่งถ้าคุณทำสิ่งนี้เป็นประจำหรือแม้กระทั่ง กรอบเวลาที่กำหนด การวางแผนเล็กน้อย (และฉันหมายความว่าน้อย!) และเวทมนตร์ VBA เล็กน้อยแล้วคุณจะไปได้ดี - อ่านต่อเพื่อรับ starเท็ด…
นำเข้าไฟล์ Excel ทั้งหมดในโฟลเดอร์

ก่อนอื่นให้กำหนดสิ่งที่เราต้องการให้โค้ดทำ:
“ เราต้องการนำเข้าไฟล์ทั้งหมดจากโฟลเดอร์ที่กำหนดไปยังตารางที่มีอยู่ - เราต้องการระบุด้วยว่าไฟล์นั้นมีบรรทัดส่วนหัวหรือไม่”
ดูเหมือนง่ายพอสมควรลองดูรหัสเพื่อทำสิ่งนี้:
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ด้วย.