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