Дані, дані і ще раз дані – без них база даних була б досить марною. Тож не дивно, що одне з найчастіших запитань, коли йдеться про внесення цих даних до таблиці(ів) 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 (шлях & “\ *. Xls”) - додає підстановочний знак та розширення файлу до наданого шляху. Я згадую це, оскільки було б дуже легко змінити код, якщо, наприклад, ви хотіли б імпортувати лише ті файли, які відповідають певній умові іменування (наприклад, усі файли, які мають “Січень” або “2017” як частину імені файлу ). Ви можете, якщо хочете, навіть додати цей фільтр як параметр до виклику підпрограми.
У будь-якому випадку, якщо файл відповідає заданим критеріям (будь-який файл ".xls" у папці, використовуючи в даному випадку), він негайно намагається імпортувати цей файл за допомогою команди TransferSpreadsheet.
Де змінити код відповідно до ваших потреб ...
Саме на цьому етапі ви можете змінити код, щоб замість імпорту електронної таблиці він імпортував файли csv (за допомогою команди “TransferText”) тощо.
Потім код циклічно повторюється, доки в цій папці не буде додаткових файлів для імпорту.
Це невеликий шматок коду, але той, який ви знайдете, використовуючи знову і знову, я впевнений!
Вступ автора:
Мітчелл Понд - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі виправити пошкодження SQL - - та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com