Cách nhập tất cả các tệp trong một thư mục vào bảng truy cập của bạn

Chia sẻ ngay bây giờ:

Dữ liệu, dữ liệu, dữ liệu – nếu không có nó thì cơ sở dữ liệu sẽ trở nên vô dụng. Vì vậy, không có gì ngạc nhiên khi một trong những most câu hỏi thường gặp khi nhận dữ liệu đó vào (các) bảng Access của bạn là – làm cách nào để giúp cuộc sống của tôi dễ dàng hơn khi tôi phải thường xuyên nhập nhiều (và rất nhiều!) tệp? Vì đây là một nhiệm vụ phổ biến nên rõ ràng có một số cách để lột da con mèo cụ thể đó, nhưng ở đây chúng ta sẽ chỉ xem xét một cách - theo ý kiến ​​của tôi là cách dễ nhất - đặc biệt nếu bạn làm việc này thường xuyên hoặc thậm chí khung thời gian dự kiến. Một chút lập kế hoạch (và ý tôi là một chút!) Và một chút phép thuật VBA và bạn sẽ ổn thôi – hãy đọc tiếp để biếttarđã…

Nhập tất cả các tệp Excel trong một thư mục

Nhập tệp Excel để truy cậpĐối với bài viết này, chúng ta sẽ xem xét việc nhập một số tệp Excel trong một thư mục nhất định, nhưng bạn có thể dễ dàng nhập tệp csv, v.v. – chúng ta sẽ sớm thảo luận về cách thay đổi mã để xử lý tệp csv.

Đầu tiên, hãy xác định những gì chúng ta muốn mã thực hiện:

“Chúng tôi muốn nhập tất cả các tệp từ một thư mục nhất định vào một bảng hiện có – chúng tôi cũng muốn chỉ định xem các tệp có dòng tiêu đề hay không”

Có vẻ đủ đơn giản, vì vậy hãy xem mã để làm điều này:

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

Đang kiểm tra sự cố…

Truy cập cơ sở dữ liệu tham nhũngTrước khi chúng tôi đi vào chi tiết về cách thức hoạt động của mã này, điều quan trọng cần lưu ý là không có lỗi kiểm tra nào được bao gồm trong mã ở trên – điều này là có chủ ý để mã được giữ dễ đọc nhưng tôi thực sự khuyên bạn nên thêm mã xử lý lỗi vào cơ sở dữ liệu của bạn để bạn giữ cơ hội Truy cập cơ sở dữ liệu tham nhũng đến mức tối thiểu!

OK - điều đầu tiên đầu tiên. Để giữ cho mã có thể sử dụng được trong các trường hợp khác nhau nhất có thể, chúng tôi yêu cầu tên đường dẫn (nơi lưu trữ các tệp), tên của bảng bạn muốn nhập các tệp này vào và liệu tất cả các tệp trong thư mục này có một tiêu đề hay không (nghĩa là tên trường có xuất hiện trên hàng đầu tiên của bảng tính).

Bạn sẽ nhận thấy rằng phần mã tìm kiếm tệp – Dir(path & “\*.xls”) – nối thêm ký tự đại diện và phần mở rộng tệp vào đường dẫn được cung cấp. Tôi đề cập đến điều này vì sẽ rất dễ dàng để thay đổi mã nếu, ví dụ: bạn chỉ muốn nhập các tệp khớp với một quy ước đặt tên cụ thể (ví dụ: tất cả các tệp có “tháng 2017” hoặc “XNUMX” trong tên tệp ). Bạn có thể, nếu muốn, thậm chí thêm bộ lọc đó làm tham số cho lệnh gọi chương trình con.

Dù sao đi nữa, nếu một tệp phù hợp với tiêu chí đã cho (bất kỳ tệp “.xls” nào trong thư mục sử dụng trong trường hợp này), nó sẽ ngay lập tức cố gắng nhập tệp đó bằng cách sử dụng lệnh TransferSpreadsheet.

Thay đổi mã ở đâu cho phù hợp với nhu cầu của bạn…

Tại thời điểm này, bạn có thể thay đổi mã để thay vì nhập một bảng tính, nó sẽ nhập các tệp csv (sử dụng lệnh “TransferText”), v.v.

Sau đó, mã sẽ lặp lại cho đến khi không còn tệp nào để nhập trong thư mục đó.

Đó là một đoạn mã nhỏ, nhưng tôi chắc chắn rằng bạn sẽ thấy mình sử dụng đi sử dụng lại nhiều lần!

Giới thiệu tác giả:

Mitchell Pond là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa chữa tham nhũng SQL và các sản phẩm phần mềm phục hồi excel. Để biết thêm thông tin, hãy truy cập www.datanumennăm

Chia sẻ ngay bây giờ:

Được đóng lại.