Данни, данни, данни - без тях базата данни би била доста безполезна. Така че не е изненада, че един от most често задавани въпроси, когато става въпрос за получаване на тези данни във вашата таблица (и) на Access, е - как мога да улесня живота си, когато трябва редовно да импортирам много (и много!) файлове? Тъй като това е толкова често срещана задача, очевидно има редица начини за одиране на тази конкретна котка, но тук ще разгледаме само един - по мое мнение най-лесният - особено ако правите това редовно или дори планирана времева рамка. Малко планиране (и имам предвид малко!) И малко VBA магия и ще бъдете добре да тръгнете - прочетете за, за да получите starТед ...
Импортиране на всички файлове на 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