Adatok, adatok, adatok – nélkülük egy adatbázis gyakorlatilag haszontalan lenne. Nem meglepő tehát, hogy az Access-táblákba történő adatbevitellel kapcsolatban az egyik leggyakrabban feltett kérdés a következő: hogyan könnyíthetném meg az életemet, amikor rendszeresen rengeteg (és rengeteg!) fájlt kell importálnom? Mivel ez egy ilyen gyakori feladat, nyilvánvalóan számos módja van annak, hogy megszabaduljunk ettől a feladattól, de itt csak egyet fogunk megvizsgálni – véleményem szerint a legegyszerűbbet –, különösen, ha ezt rendszeresen, vagy akár ütemezett időkeretben csináljuk. Egy kis tervezés (és tényleg egy kis!) és egy kis VBA varázslat, és már indulhat is – olvasson tovább, hogy elkezdhesse…
Az összes Excel fájl importálása egy mappába
Ebben a cikkben megvizsgáljuk, hogyan importálhat számos Excel-fájlt egy adott mappán belül, de ugyanilyen egyszerűen importálhat csv-fájlokat stb. – hamarosan megvitatjuk, hogyan módosítható a kód a csv-fájlok kezeléséhez.
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