วิธีการนำเข้าไฟล์ทั้งหมดภายในโฟลเดอร์ไปยังตารางการเข้าถึงของคุณ

แบ่งปันเลย:

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

นำเข้าไฟล์ Excel ทั้งหมดในโฟลเดอร์

นำเข้าไฟล์ 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ด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด