Adatok, adatok, adatok – enélkül egy adatbázis elég haszontalan lenne. Így nem meglepő, hogy az egyik most Gyakran ismételt kérdések, amikor az adatoknak az Access táblá(k)ba kerül(nek) – hogyan könnyíthetem meg az életemet, ha rendszeresen sok (és sok!) fájlt kell importálnom? Mivel ez nagyon gyakori feladat, nyilvánvalóan számos módja van az adott macska megnyúzására, de most csak egyet fogunk megvizsgálni – szerintem a legegyszerűbbet –, különösen, ha rendszeresen csinálod, vagy akár ütemezett időkeret. Egy kis tervezés (és úgy értem egy kicsit!) és egy kis VBA varázslat, és már indulhat is – olvassa el atarted…
Az összes Excel fájl importálása egy mappába

Először is határozzuk meg, mit akarunk a kódtól:
„Az összes fájlt egy adott mappából egy létező táblába szeretnénk importálni – azt is meg akarjuk adni, hogy a fájloknak van-e fejléce vagy sem”
Elég egyszerűnek tűnik, ezért nézzük meg a kódot ehhez:
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
Problémák keresése…

OK – először a dolgok. Annak érdekében, hogy a kód a lehető legkülönbözőbb körülmények között használható legyen, meg kell adni az elérési utat (ahol a fájlok tárolják), annak a táblának a nevét, amelybe importálni kívánja ezeket a fájlokat, és azt, hogy a mappában lévő fájlok mindegyike rendelkezik-e fejléc vagy sem (azaz a mezőnevek megjelennek-e a táblázat első sorában).
Észreveheti, hogy a kódnak a fájlokat kereső része – Dir(elérési út & „\*.xls”) – helyettesítő karaktert és fájlkiterjesztést fűz a megadott elérési úthoz. Ezt azért említem meg, mert nagyon könnyű lenne megváltoztatni a kódot, ha például csak olyan fájlokat szeretne importálni, amelyek megfelelnek egy adott elnevezési konvenciónak (pl. minden olyan fájl, amelynek a fájlnév része a „január” vagy a „2017” ). Ha akarja, ezt a szűrőt akár paraméterként is hozzáadhatja a szubrutinhíváshoz.
Mindenesetre, ha egy fájl megfelel a megadott feltételeknek (ebben az esetben a mappában található bármely „.xls” fájl), amely a fájlt használja, azonnal megpróbálja importálni a fájlt a TransferSpreadsheet paranccsal.
Hol módosíthatja a kódot az igényeinek megfelelően…
Ezen a ponton módosíthatja a kódot úgy, hogy a táblázat importálása helyett csv fájlokat importáljon (a „TransferText” paranccsal) stb.
A kód ezután ismétlődik, amíg nem lesz további importálandó fájl a mappában.
Ez egy kis kódrészlet, de biztos vagyok benne, hogy újra és újra használni fogod!
Szerző Bevezetés:
Mitchell Pond adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve az SQL korrupció javítása és Excel helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com