Kuidas importida kõiki kaustas olevaid faile juurdepääsutabelisse

Andmed, andmed, andmed – ilma nendeta oleks andmebaas üsna kasutu. Seega pole üllatav, et üks sagedamini esitatavaid küsimusi andmete Accessi tabelisse/tabelitesse toomise kohta on – kuidas saaksin oma elu lihtsamaks teha, kui pean regulaarselt importima palju (ja palju!) faile? Kuna see on nii tavaline ülesanne, on selle konkreetse ülesande lahendamiseks ilmselgelt mitu võimalust, kuid siin vaatleme vaid ühte – minu arvates kõige lihtsamat – eriti kui teete seda regulaarselt või isegi plaanipäraselt. Natuke planeerimist (ja ma tõesti mõtlen natuke!) ja natuke VBA maagiat ning oletegi valmis alustama – lugege edasi, et alustada...

Kõigi Exceli failide importimine kaustas

Importige juurdepääsuks Exceli failSelle artikli puhul vaatleme mitme Exceli faili importimist antud kaustas, kuid sama lihtsalt saate importida ka csv-faile jne – peagi arutame, kuidas muuta CSV-failide käsitlemise koodi.

Esiteks määratleme, mida me tahame, et kood teeks:

"Soovime importida kõik failid antud kaustast olemasolevasse tabelisse – tahame ka määrata, kas failidel on päisrida või mitte"

Tundub piisavalt lihtne, nii et vaatame selle tegemiseks koodi:

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

Probleemide kontrollimine…

Juurdepääsu andmebaasi korruptsioonEnne selle koodi toimimise üksikasjadesse laskumist on oluline märkida, et ülaltoodud kood ei sisalda veakontrolli – see on tahtlik, et kood oleks hõlpsasti loetav, kuid soovitan tungivalt lisada veakäsitluskood oma andmebaasi, nii et teil säiliks võimalus Juurdepääs andmebaasi korruptsioonile miinimumini!

OK – esimesed asjad kõigepealt. Et kood oleks erinevates olukordades võimalikult kasutatav, küsime tee nime (kus failid on salvestatud), tabeli nime, kuhu soovite need failid importida ja kas kõik selles kaustas olevad failid sisaldavad päis või mitte (st kas väljade nimed kuvatakse arvutustabeli esimesel real).

Märkate, et faile otsiv koodiosa – Dir(tee & “\*.xls”) – lisab kaasasolevale teele metamärgi ja faililaiendi. Mainin seda, kuna koodi oleks väga lihtne muuta, kui näiteks soovite importida ainult teatud nimetavale vastavaid faile (nt kõik failid, mille nimes on "jaanuar" või "2017". ). Soovi korral võiksite selle filtri isegi alamprogrammi kutse parameetrina lisada.

Igatahes, kui fail vastab antud kriteeriumidele (antud juhul mis tahes ".xls"-fail kaustas, mis kasutab seda), proovib see kohe importida seda faili käsuga TransferSpreadsheet.

Kus saab koodi vastavalt oma vajadustele muuta…

Siinkohal saate koodi muuta nii, et arvutustabeli importimise asemel impordiks see csv-faile (kasutades käsku "TransferText") jne.

Seejärel toimub kood silmuseid, kuni selles kaustas pole enam importivaid faile.

Olen kindel, et see on väike kooditükk, kuid mida leiad end ikka ja jälle kasutamast!

Autori sissejuhatus:

Mitchell Pond on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas SQL-i korruptsiooni parandamine ja Exceli taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom

Kommentaarid on suletud.