Dane, dane, dane – bez nich baza danych byłaby praktycznie bezużyteczna. Nic więc dziwnego, że jednym z najczęściej zadawanych pytań dotyczących importowania danych do tabel w Accessie jest: jak ułatwić sobie życie, skoro regularnie importuję mnóstwo (i to mnóstwo!) plików? Ponieważ jest to tak powszechne zadanie, istnieje oczywiście wiele sposobów na jego rozwiązanie, ale tutaj przyjrzymy się tylko jednemu – moim zdaniem najłatwiejszemu – zwłaszcza jeśli robisz to regularnie, a nawet według harmonogramu. Trochę planowania (i naprawdę mam na myśli trochę!) i odrobina magii VBA i będzie dobrze – czytaj dalej, aby zacząć…
Importowanie wszystkich plików Excela w folderze
W tym artykule przyjrzymy się zaimportowaniu wielu plików Excela w danym folderze, ale równie łatwo możesz zaimportować pliki csv itp. - wkrótce omówimy, jak zmienić kod do obsługi plików CSV.
Po pierwsze, zdefiniujmy, co chcemy, aby kod robił:
„Chcemy zaimportować wszystkie pliki z danego folderu do istniejącej tabeli - chcemy również określić, czy pliki mają wiersz nagłówka, czy nie”
Wydaje się to dość proste, więc spójrzmy na kod, aby to zrobić:
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
Sprawdzam problemy…

OK - najpierw najważniejsze. Aby kod był jak najbardziej użyteczny w różnych okolicznościach, pytamy o nazwę ścieżki (gdzie są przechowywane pliki), nazwę tabeli, do której chcesz zaimportować te pliki oraz czy wszystkie pliki w tym folderze mają nagłówek czy nie (tzn. czy nazwy pól pojawiają się w pierwszym wierszu arkusza kalkulacyjnego).
Zauważysz, że część kodu wyszukująca pliki - Dir (ścieżka & „\ *. Xls”) - dołącza symbol wieloznaczny i rozszerzenie pliku do podanej ścieżki. Wspominam o tym, ponieważ zmiana kodu byłaby bardzo łatwa, gdybyś na przykład chciał importować tylko pliki zgodne z określoną konwencją nazewnictwa (np. Wszystkie pliki, które mają „styczeń” lub „2017” jako część nazwy pliku ). Mógłbyś, jeśli chcesz, nawet dodać ten filtr jako parametr do wywołania podprogramu.
W każdym razie, jeśli plik spełniający podane kryteria (dowolny plik „.xls” w folderze używającym w tym przypadku), natychmiast próbuje zaimportować ten plik za pomocą polecenia TransferSpreadsheet.
Gdzie zmienić kod, aby odpowiadał Twoim potrzebom…
W tym momencie możesz zmienić kod, aby zamiast importować arkusz kalkulacyjny, importował pliki csv (za pomocą polecenia „TransferText”) itp.
Następnie kod jest zapętlony, dopóki nie będzie już żadnych plików do zaimportowania w tym folderze.
To mały fragment kodu, ale jestem pewien, że taki, którego będziesz używać w kółko!
Wprowadzenie autora:
Mitchell Pond jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym napraw uszkodzenie kodu SQL i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com