Kuinka tuoda kaikki kansiossa olevat tiedostot pääsytaulukkoosi

Data, data, data - ilman sitä tietokanta olisi melko hyödytön. Joten ei ole yllätys, että yksi most Usein kysyttyjä kysymyksiä tietojen saamisesta Access-taulukoihisi on - kuinka voin tehdä elämästäni helpompaa, kun minun on tuotava säännöllisesti paljon (ja paljon!) tiedostoja? Koska se on niin yleinen tehtävä, on tietysti useita tapoja kuorita kyseinen kissa, mutta tässä tarkastelemme vain yhtä - mielestäni helpoin - varsinkin jos teet tämän säännöllisesti tai jopa aikataulun mukainen aikataulu. Pieni suunnittelu (ja tarkoitan vähän!) Ja pieni VBA-taika ja sinulla on hyvä mennä - lue eteenpäin saadaksesi started…

Kaikkien Excel-tiedostojen tuominen kansioon

Tuo Excel-tiedosto käytettäväksiTässä artikkelissa tarkastellaan useiden Excel-tiedostojen tuomista tiettyyn kansioon, mutta voit tuoda yhtä helposti csv-tiedostoja jne. - keskustelemme koodin muuttamisesta käsittelemään csv-tiedostoja pian.

Ensinnäkin määritellään, mitä haluamme koodin tekevän:

"Haluamme tuoda kaikki tiedostot tietystä kansiosta olemassa olevaan taulukkoon - haluamme myös määrittää, onko tiedostoissa otsikkorivi vai ei"

Näyttää tarpeeksi yksinkertaiselta, joten katsotaanpa koodi tehdä tämä:

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

Tarkistetaan ongelmia ...

Access-tietokannan vioittuminenEnnen kuin tutustumme yksityiskohtaisesti tämän koodin toimintaan, on tärkeää huomata, että yllä olevaan koodiin ei sisälly virheiden tarkistusta - tämä on tarkoituksellista, jotta koodi pysyy helposti luettavissa, mutta suosittelen vahvasti, että lisäät virhekäsittelykoodin tietokantaan, joten pidät mahdollisuudet Access-tietokannan vioittuminen minimiin!

OK - ensin asiat ensin. Jotta koodi pysyisi käyttökelpoisena eri olosuhteissa, pyydämme polun nimeä (missä tiedostot on tallennettu), taulukon nimeä, johon haluat tuoda nämä tiedostot, ja onko kaikilla tämän kansion tiedostoilla otsikko vai ei (ts. näkyvätkö kenttien nimet laskentataulukon ensimmäisellä rivillä).

Huomaat, että tiedostoja hakeva koodin osa - Dir (polku & "\ *. Xls") - lisää yleismerkin ja tiedostopääte toimitettuun polkuun. Mainitsen tämän, koska koodin muuttaminen olisi erittäin helppoa, jos esimerkiksi halusit tuoda vain tiedostoja, jotka vastasivat tiettyä nimeämiskäytäntöä (esim. Kaikki tiedostot, joissa tiedostonimi on "tammikuu" tai "2017") ). Voit halutessasi jopa lisätä kyseisen suodattimen parametrina aliohjelmakutsuun.

Joka tapauksessa, jos tiedosto, joka vastaa annettuja ehtoja (mikä tahansa .xls-tiedosto kansiossa käyttää tässä tapauksessa), se yrittää tuoda kyseisen tiedoston välittömästi TransferSpreadsheet-komennolla.

Missä koodi vaihdetaan tarpeidesi mukaan ...

Tässä vaiheessa voit muuttaa koodia siten, että laskentataulukon tuonnin sijaan se tuo csv-tiedostoja (käyttäen "TransferText" -komentoa) jne.

Koodi silmukkaa sitten, kunnes kyseiseen kansioon ei ole enää tuotavia tiedostoja.

Se on pieni osa koodia, mutta sellaisen, jonka huomaat käyttävän yhä uudelleen, olen varma!

Tekijän esittely:

Mitchell Pond on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien korjata SQL-vioittuminen ja Excel-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com

Kommenttien lisääminen on estetty.